From 3adef90ad88ede2536cacfa2d80d475113089d13 Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:01:35 +0100 Subject: [PATCH 01/19] Add logger to ConnectionInfo --- .../mysql/collector/connection_info.go | 8 ++++++++ .../component/database_observability/mysql/component.go | 1 + 2 files changed, 9 insertions(+) diff --git a/internal/component/database_observability/mysql/collector/connection_info.go b/internal/component/database_observability/mysql/collector/connection_info.go index 5b9aec35b2..be65cf3e86 100644 --- a/internal/component/database_observability/mysql/collector/connection_info.go +++ b/internal/component/database_observability/mysql/collector/connection_info.go @@ -6,9 +6,12 @@ import ( "regexp" "strings" + "github.com/go-kit/log" "github.com/go-sql-driver/mysql" "github.com/prometheus/client_golang/prometheus" "go.uber.org/atomic" + + "github.com/grafana/alloy/internal/runtime/logging/level" ) var rdsRegex = regexp.MustCompile(`(?P[^\.]+)\.([^\.]+)\.(?P[^\.]+)\.rds\.amazonaws\.com`) @@ -16,6 +19,7 @@ var rdsRegex = regexp.MustCompile(`(?P[^\.]+)\.([^\.]+)\.(?P type ConnectionInfoArguments struct { DSN string Registry *prometheus.Registry + Logger log.Logger } type ConnectionInfo struct { @@ -24,6 +28,7 @@ type ConnectionInfo struct { InfoMetric *prometheus.GaugeVec running *atomic.Bool + logger log.Logger } func NewConnectionInfo(args ConnectionInfoArguments) (*ConnectionInfo, error) { @@ -39,6 +44,7 @@ func NewConnectionInfo(args ConnectionInfoArguments) (*ConnectionInfo, error) { Registry: args.Registry, InfoMetric: infoMetric, running: &atomic.Bool{}, + logger: log.With(args.Logger, "collector", "ConnectionInfo"), }, nil } @@ -52,6 +58,8 @@ func (c *ConnectionInfo) Start(ctx context.Context) error { return err } + level.Debug(c.logger).Log("msg", "ConnectionInfo collector started") + c.running.Store(true) var ( diff --git a/internal/component/database_observability/mysql/component.go b/internal/component/database_observability/mysql/component.go index 72fcd47560..b2ca3e3147 100644 --- a/internal/component/database_observability/mysql/component.go +++ b/internal/component/database_observability/mysql/component.go @@ -261,6 +261,7 @@ func (c *Component) startCollectors() error { ciCollector, err := collector.NewConnectionInfo(collector.ConnectionInfoArguments{ DSN: string(c.args.DataSourceName), Registry: c.registry, + Logger: c.opts.Logger, }) if err != nil { level.Error(c.opts.Logger).Log("msg", "failed to create ConnectionInfo collector", "err", err) From 4f8fb7318b455e6cc54cc48e074c48ffc7562780 Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:19:25 +0100 Subject: [PATCH 02/19] Add enable collectors option --- .../database_observability/mysql/component.go | 77 +++++++++++++------ .../mysql/component_test.go | 43 +++++++++++ 2 files changed, 96 insertions(+), 24 deletions(-) create mode 100644 internal/component/database_observability/mysql/component_test.go diff --git a/internal/component/database_observability/mysql/component.go b/internal/component/database_observability/mysql/component.go index b2ca3e3147..02f9d7f686 100644 --- a/internal/component/database_observability/mysql/component.go +++ b/internal/component/database_observability/mysql/component.go @@ -49,18 +49,16 @@ var ( _ syntax.Validator = (*Arguments)(nil) ) -// TODO(cristian) consider using something like "enabled_collectors" -// to allow users to enable/disable collectors. type Arguments struct { - DataSourceName alloytypes.Secret `alloy:"data_source_name,attr"` - CollectInterval time.Duration `alloy:"collect_interval,attr,optional"` - QuerySamplesEnabled bool `alloy:"query_samples_enabled,attr,optional"` - ForwardTo []loki.LogsReceiver `alloy:"forward_to,attr"` + DataSourceName alloytypes.Secret `alloy:"data_source_name,attr"` + CollectInterval time.Duration `alloy:"collect_interval,attr,optional"` + ForwardTo []loki.LogsReceiver `alloy:"forward_to,attr"` + EnableCollectors []string `alloy:"enable_collectors,attr,optional"` + //DisableCollectors []string `alloy:"disable_collectors,attr,optional"` } var DefaultArguments = Arguments{ - CollectInterval: 10 * time.Second, - QuerySamplesEnabled: true, + CollectInterval: 10 * time.Second, } func (a *Arguments) SetToDefault() { @@ -206,6 +204,33 @@ func (c *Component) Update(args component.Arguments) error { return nil } +func getCollectors(a Arguments) map[string]bool { + collectors := map[string]bool{ + "QuerySample": false, + "SchemaTable": false, + } + + // Explicitly disable/enable specific collectors. + //for _, disabled := range a.DisableCollectors { + // for c := range collectors { + // if c == disabled { + // collectors[c] = false + // break + // } + // } + //} + for _, enabled := range a.EnableCollectors { + for c := range collectors { + if c == enabled { + collectors[c] = true + break + } + } + } + + return collectors +} + func (c *Component) startCollectors() error { dbConnection, err := sql.Open("mysql", formatDSN(string(c.args.DataSourceName), "parseTime=true")) if err != nil { @@ -222,7 +247,9 @@ func (c *Component) startCollectors() error { entryHandler := loki.NewEntryHandler(c.handler.Chan(), func() {}) - if c.args.QuerySamplesEnabled { + collectors := getCollectors(c.args) + + if _, ok := collectors["QuerySample"]; ok { qsCollector, err := collector.NewQuerySample(collector.QuerySampleArguments{ DB: dbConnection, InstanceKey: c.instanceKey, @@ -241,22 +268,24 @@ func (c *Component) startCollectors() error { c.collectors = append(c.collectors, qsCollector) } - stCollector, err := collector.NewSchemaTable(collector.SchemaTableArguments{ - DB: dbConnection, - InstanceKey: c.instanceKey, - CollectInterval: c.args.CollectInterval, - EntryHandler: entryHandler, - Logger: c.opts.Logger, - }) - if err != nil { - level.Error(c.opts.Logger).Log("msg", "failed to create SchemaTable collector", "err", err) - return err - } - if err := stCollector.Start(context.Background()); err != nil { - level.Error(c.opts.Logger).Log("msg", "failed to start SchemaTable collector", "err", err) - return err + if _, ok := collectors["SchemaTable"]; ok { + stCollector, err := collector.NewSchemaTable(collector.SchemaTableArguments{ + DB: dbConnection, + InstanceKey: c.instanceKey, + CollectInterval: c.args.CollectInterval, + EntryHandler: entryHandler, + Logger: c.opts.Logger, + }) + if err != nil { + level.Error(c.opts.Logger).Log("msg", "failed to create SchemaTable collector", "err", err) + return err + } + if err := stCollector.Start(context.Background()); err != nil { + level.Error(c.opts.Logger).Log("msg", "failed to start SchemaTable collector", "err", err) + return err + } + c.collectors = append(c.collectors, stCollector) } - c.collectors = append(c.collectors, stCollector) ciCollector, err := collector.NewConnectionInfo(collector.ConnectionInfoArguments{ DSN: string(c.args.DataSourceName), diff --git a/internal/component/database_observability/mysql/component_test.go b/internal/component/database_observability/mysql/component_test.go new file mode 100644 index 0000000000..70cbc5c6d9 --- /dev/null +++ b/internal/component/database_observability/mysql/component_test.go @@ -0,0 +1,43 @@ +package mysql + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/grafana/alloy/syntax" +) + +func Test_getCollectors(t *testing.T) { + t.Run("nothing specified (default behavior)", func(t *testing.T) { + var exampleDBO11yAlloyConfig = ` + data_source_name = "" + forward_to = [] + ` + + var args Arguments + err := syntax.Unmarshal([]byte(exampleDBO11yAlloyConfig), &args) + require.NoError(t, err) + + actualCollectors := getCollectors(args) + + assert.Equal(t, map[string]bool{"QuerySample": false, "SchemaTable": false}, actualCollectors) + }) + + t.Run("enableCollectors", func(t *testing.T) { + var exampleDBO11yAlloyConfig = ` + data_source_name = "" + forward_to = [] + enable_collectors = ["QuerySample", "SchemaTable"] + ` + + var args Arguments + err := syntax.Unmarshal([]byte(exampleDBO11yAlloyConfig), &args) + require.NoError(t, err) + + actualCollectors := getCollectors(args) + + assert.Equal(t, map[string]bool{"QuerySample": true, "SchemaTable": true}, actualCollectors) + }) +} From 6a20b35e243de1c1a358898c27ba5f9601171ada Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:47:47 +0100 Subject: [PATCH 03/19] Add logger to test --- .../mysql/collector/connection_info_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/component/database_observability/mysql/collector/connection_info_test.go b/internal/component/database_observability/mysql/collector/connection_info_test.go index 67ec6195c4..5b5061f333 100644 --- a/internal/component/database_observability/mysql/collector/connection_info_test.go +++ b/internal/component/database_observability/mysql/collector/connection_info_test.go @@ -3,9 +3,11 @@ package collector import ( "context" "fmt" + "os" "strings" "testing" + "github.com/go-kit/log" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/testutil" "github.com/stretchr/testify/require" @@ -44,6 +46,7 @@ func TestConnectionInfo(t *testing.T) { collector, err := NewConnectionInfo(ConnectionInfoArguments{ DSN: tc.dsn, Registry: reg, + Logger: log.NewLogfmtLogger(os.Stderr), }) require.NoError(t, err) require.NotNil(t, collector) From 2e6e6fc75be301f24c73f343ccd06a7772d8f4a5 Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:33:04 +0100 Subject: [PATCH 04/19] polish up PR and add disable collectors --- .../database_observability/mysql/component.go | 45 ++++++----- .../mysql/component_test.go | 77 +++++++++++++++++-- 2 files changed, 96 insertions(+), 26 deletions(-) diff --git a/internal/component/database_observability/mysql/component.go b/internal/component/database_observability/mysql/component.go index 02f9d7f686..8aab99f654 100644 --- a/internal/component/database_observability/mysql/component.go +++ b/internal/component/database_observability/mysql/component.go @@ -29,7 +29,11 @@ import ( "github.com/grafana/alloy/syntax/alloytypes" ) -const name = "database_observability.mysql" +const ( + name = "database_observability.mysql" + querySample = "QuerySample" + schemaTable = "SchemaTable" +) func init() { component.Register(component.Registration{ @@ -50,11 +54,11 @@ var ( ) type Arguments struct { - DataSourceName alloytypes.Secret `alloy:"data_source_name,attr"` - CollectInterval time.Duration `alloy:"collect_interval,attr,optional"` - ForwardTo []loki.LogsReceiver `alloy:"forward_to,attr"` - EnableCollectors []string `alloy:"enable_collectors,attr,optional"` - //DisableCollectors []string `alloy:"disable_collectors,attr,optional"` + DataSourceName alloytypes.Secret `alloy:"data_source_name,attr"` + CollectInterval time.Duration `alloy:"collect_interval,attr,optional"` + ForwardTo []loki.LogsReceiver `alloy:"forward_to,attr"` + EnableCollectors []string `alloy:"enable_collectors,attr,optional"` + DisableCollectors []string `alloy:"disable_collectors,attr,optional"` } var DefaultArguments = Arguments{ @@ -204,21 +208,21 @@ func (c *Component) Update(args component.Arguments) error { return nil } -func getCollectors(a Arguments) map[string]bool { +func enableOrDisableCollectors(a Arguments) map[string]bool { collectors := map[string]bool{ - "QuerySample": false, - "SchemaTable": false, + querySample: true, + schemaTable: true, } // Explicitly disable/enable specific collectors. - //for _, disabled := range a.DisableCollectors { - // for c := range collectors { - // if c == disabled { - // collectors[c] = false - // break - // } - // } - //} + for _, disabled := range a.DisableCollectors { + for c := range collectors { + if c == disabled { + collectors[c] = false + break + } + } + } for _, enabled := range a.EnableCollectors { for c := range collectors { if c == enabled { @@ -247,9 +251,9 @@ func (c *Component) startCollectors() error { entryHandler := loki.NewEntryHandler(c.handler.Chan(), func() {}) - collectors := getCollectors(c.args) + collectors := enableOrDisableCollectors(c.args) - if _, ok := collectors["QuerySample"]; ok { + if _, ok := collectors[querySample]; ok { qsCollector, err := collector.NewQuerySample(collector.QuerySampleArguments{ DB: dbConnection, InstanceKey: c.instanceKey, @@ -268,7 +272,7 @@ func (c *Component) startCollectors() error { c.collectors = append(c.collectors, qsCollector) } - if _, ok := collectors["SchemaTable"]; ok { + if _, ok := collectors[schemaTable]; ok { stCollector, err := collector.NewSchemaTable(collector.SchemaTableArguments{ DB: dbConnection, InstanceKey: c.instanceKey, @@ -287,6 +291,7 @@ func (c *Component) startCollectors() error { c.collectors = append(c.collectors, stCollector) } + // Connection Info collector is always enabled ciCollector, err := collector.NewConnectionInfo(collector.ConnectionInfoArguments{ DSN: string(c.args.DataSourceName), Registry: c.registry, diff --git a/internal/component/database_observability/mysql/component_test.go b/internal/component/database_observability/mysql/component_test.go index 70cbc5c6d9..dcffa6ece6 100644 --- a/internal/component/database_observability/mysql/component_test.go +++ b/internal/component/database_observability/mysql/component_test.go @@ -9,7 +9,7 @@ import ( "github.com/grafana/alloy/syntax" ) -func Test_getCollectors(t *testing.T) { +func Test_enableOrDisableCollectors(t *testing.T) { t.Run("nothing specified (default behavior)", func(t *testing.T) { var exampleDBO11yAlloyConfig = ` data_source_name = "" @@ -20,12 +20,15 @@ func Test_getCollectors(t *testing.T) { err := syntax.Unmarshal([]byte(exampleDBO11yAlloyConfig), &args) require.NoError(t, err) - actualCollectors := getCollectors(args) + actualCollectors := enableOrDisableCollectors(args) - assert.Equal(t, map[string]bool{"QuerySample": false, "SchemaTable": false}, actualCollectors) + assert.Equal(t, map[string]bool{ + querySample: true, + schemaTable: true, + }, actualCollectors) }) - t.Run("enableCollectors", func(t *testing.T) { + t.Run("enable collectors", func(t *testing.T) { var exampleDBO11yAlloyConfig = ` data_source_name = "" forward_to = [] @@ -36,8 +39,70 @@ func Test_getCollectors(t *testing.T) { err := syntax.Unmarshal([]byte(exampleDBO11yAlloyConfig), &args) require.NoError(t, err) - actualCollectors := getCollectors(args) + actualCollectors := enableOrDisableCollectors(args) - assert.Equal(t, map[string]bool{"QuerySample": true, "SchemaTable": true}, actualCollectors) + assert.Equal(t, map[string]bool{ + querySample: true, + schemaTable: true, + }, actualCollectors) + }) + + t.Run("disable collectors", func(t *testing.T) { + var exampleDBO11yAlloyConfig = ` + data_source_name = "" + forward_to = [] + disable_collectors = ["QuerySample", "SchemaTable"] + ` + + var args Arguments + err := syntax.Unmarshal([]byte(exampleDBO11yAlloyConfig), &args) + require.NoError(t, err) + + actualCollectors := enableOrDisableCollectors(args) + + assert.Equal(t, map[string]bool{ + querySample: false, + schemaTable: false, + }, actualCollectors) + }) + + t.Run("enable collectors takes precedence over disable collectors", func(t *testing.T) { + var exampleDBO11yAlloyConfig = ` + data_source_name = "" + forward_to = [] + disable_collectors = ["QuerySample", "SchemaTable"] + enable_collectors = ["QuerySample", "SchemaTable"] + ` + + var args Arguments + err := syntax.Unmarshal([]byte(exampleDBO11yAlloyConfig), &args) + require.NoError(t, err) + + actualCollectors := enableOrDisableCollectors(args) + + assert.Equal(t, map[string]bool{ + querySample: true, + schemaTable: true, + }, actualCollectors) + }) + + t.Run("enabling one and disabling one", func(t *testing.T) { + var exampleDBO11yAlloyConfig = ` + data_source_name = "" + forward_to = [] + disable_collectors = ["SchemaTable"] + enable_collectors = ["QuerySample"] + ` + + var args Arguments + err := syntax.Unmarshal([]byte(exampleDBO11yAlloyConfig), &args) + require.NoError(t, err) + + actualCollectors := enableOrDisableCollectors(args) + + assert.Equal(t, map[string]bool{ + querySample: true, + schemaTable: false, + }, actualCollectors) }) } From 2146423e39e485c8170078c8770aadf9e14c2cd9 Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:34:00 +0100 Subject: [PATCH 05/19] add collector --- internal/component/database_observability/mysql/component.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/component/database_observability/mysql/component.go b/internal/component/database_observability/mysql/component.go index 8aab99f654..98136b7593 100644 --- a/internal/component/database_observability/mysql/component.go +++ b/internal/component/database_observability/mysql/component.go @@ -209,6 +209,7 @@ func (c *Component) Update(args component.Arguments) error { } func enableOrDisableCollectors(a Arguments) map[string]bool { + // configurable collectors and their default enabled/disabled value collectors := map[string]bool{ querySample: true, schemaTable: true, From 3e3943a2291c9372fee448b8d34b7cf5dcda45ba Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:34:56 +0100 Subject: [PATCH 06/19] Remove a comment --- internal/component/database_observability/mysql/component.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/component/database_observability/mysql/component.go b/internal/component/database_observability/mysql/component.go index 98136b7593..b02d45dee6 100644 --- a/internal/component/database_observability/mysql/component.go +++ b/internal/component/database_observability/mysql/component.go @@ -215,7 +215,6 @@ func enableOrDisableCollectors(a Arguments) map[string]bool { schemaTable: true, } - // Explicitly disable/enable specific collectors. for _, disabled := range a.DisableCollectors { for c := range collectors { if c == disabled { From 07d577c47144a33521cdb3aba8b34d30667ca8bb Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:59:30 +0100 Subject: [PATCH 07/19] Revert "Add logger to ConnectionInfo" This reverts commit 3adef90ad88ede2536cacfa2d80d475113089d13. --- .../mysql/collector/connection_info.go | 8 -------- .../component/database_observability/mysql/component.go | 1 - 2 files changed, 9 deletions(-) diff --git a/internal/component/database_observability/mysql/collector/connection_info.go b/internal/component/database_observability/mysql/collector/connection_info.go index be65cf3e86..5b9aec35b2 100644 --- a/internal/component/database_observability/mysql/collector/connection_info.go +++ b/internal/component/database_observability/mysql/collector/connection_info.go @@ -6,12 +6,9 @@ import ( "regexp" "strings" - "github.com/go-kit/log" "github.com/go-sql-driver/mysql" "github.com/prometheus/client_golang/prometheus" "go.uber.org/atomic" - - "github.com/grafana/alloy/internal/runtime/logging/level" ) var rdsRegex = regexp.MustCompile(`(?P[^\.]+)\.([^\.]+)\.(?P[^\.]+)\.rds\.amazonaws\.com`) @@ -19,7 +16,6 @@ var rdsRegex = regexp.MustCompile(`(?P[^\.]+)\.([^\.]+)\.(?P type ConnectionInfoArguments struct { DSN string Registry *prometheus.Registry - Logger log.Logger } type ConnectionInfo struct { @@ -28,7 +24,6 @@ type ConnectionInfo struct { InfoMetric *prometheus.GaugeVec running *atomic.Bool - logger log.Logger } func NewConnectionInfo(args ConnectionInfoArguments) (*ConnectionInfo, error) { @@ -44,7 +39,6 @@ func NewConnectionInfo(args ConnectionInfoArguments) (*ConnectionInfo, error) { Registry: args.Registry, InfoMetric: infoMetric, running: &atomic.Bool{}, - logger: log.With(args.Logger, "collector", "ConnectionInfo"), }, nil } @@ -58,8 +52,6 @@ func (c *ConnectionInfo) Start(ctx context.Context) error { return err } - level.Debug(c.logger).Log("msg", "ConnectionInfo collector started") - c.running.Store(true) var ( diff --git a/internal/component/database_observability/mysql/component.go b/internal/component/database_observability/mysql/component.go index b02d45dee6..fd71cdedea 100644 --- a/internal/component/database_observability/mysql/component.go +++ b/internal/component/database_observability/mysql/component.go @@ -295,7 +295,6 @@ func (c *Component) startCollectors() error { ciCollector, err := collector.NewConnectionInfo(collector.ConnectionInfoArguments{ DSN: string(c.args.DataSourceName), Registry: c.registry, - Logger: c.opts.Logger, }) if err != nil { level.Error(c.opts.Logger).Log("msg", "failed to create ConnectionInfo collector", "err", err) From 26aec8d84bdd1f82c1f5578e142b412717a85ae2 Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Tue, 28 Jan 2025 18:01:06 +0100 Subject: [PATCH 08/19] Revert "Add logger to test" This reverts commit 6a20b35e243de1c1a358898c27ba5f9601171ada. --- .../mysql/collector/connection_info_test.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/internal/component/database_observability/mysql/collector/connection_info_test.go b/internal/component/database_observability/mysql/collector/connection_info_test.go index 5b5061f333..67ec6195c4 100644 --- a/internal/component/database_observability/mysql/collector/connection_info_test.go +++ b/internal/component/database_observability/mysql/collector/connection_info_test.go @@ -3,11 +3,9 @@ package collector import ( "context" "fmt" - "os" "strings" "testing" - "github.com/go-kit/log" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/testutil" "github.com/stretchr/testify/require" @@ -46,7 +44,6 @@ func TestConnectionInfo(t *testing.T) { collector, err := NewConnectionInfo(ConnectionInfoArguments{ DSN: tc.dsn, Registry: reg, - Logger: log.NewLogfmtLogger(os.Stderr), }) require.NoError(t, err) require.NotNil(t, collector) From 65ea414270991812715e3157e4d770c51bd1ed50 Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Tue, 28 Jan 2025 18:24:03 +0100 Subject: [PATCH 09/19] update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f5d830895..c0dcb93aad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ Main (unreleased) - Bump snmp_exporter and embedded modules to 0.27.0. Add support for multi-module handling by comma separation and expose argument to increase SNMP polling concurrency for `prometheus.exporter.snmp`. (@v-zhuravlev) +- (_Experimental_) Add enable/disable collector configurability to `database_observability.mysql` (@fridgepoet) + v1.6.1 ----------------- From ddf16072028ee64834eabb01c5195414dace87ad Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Wed, 29 Jan 2025 12:05:52 +0100 Subject: [PATCH 10/19] fix condition --- internal/component/database_observability/mysql/component.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/component/database_observability/mysql/component.go b/internal/component/database_observability/mysql/component.go index fd71cdedea..5668b64b45 100644 --- a/internal/component/database_observability/mysql/component.go +++ b/internal/component/database_observability/mysql/component.go @@ -253,7 +253,7 @@ func (c *Component) startCollectors() error { collectors := enableOrDisableCollectors(c.args) - if _, ok := collectors[querySample]; ok { + if collectors[querySample] { qsCollector, err := collector.NewQuerySample(collector.QuerySampleArguments{ DB: dbConnection, InstanceKey: c.instanceKey, @@ -272,7 +272,7 @@ func (c *Component) startCollectors() error { c.collectors = append(c.collectors, qsCollector) } - if _, ok := collectors[schemaTable]; ok { + if collectors[schemaTable] { stCollector, err := collector.NewSchemaTable(collector.SchemaTableArguments{ DB: dbConnection, InstanceKey: c.instanceKey, From 5ded38fae2937a27603b50758610754ff7fa8639 Mon Sep 17 00:00:00 2001 From: Shirley Leu <4163034+fridgepoet@users.noreply.github.com> Date: Wed, 29 Jan 2025 12:35:27 +0100 Subject: [PATCH 11/19] Update docs, change collector strings --- .../database_observability.mysql.md | 25 ++++++++++++++----- .../database_observability/mysql/component.go | 4 +-- .../mysql/component_test.go | 12 ++++----- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/docs/sources/reference/components/database_observability/database_observability.mysql.md b/docs/sources/reference/components/database_observability/database_observability.mysql.md index e24ba09ba1..55237f67c0 100644 --- a/docs/sources/reference/components/database_observability/database_observability.mysql.md +++ b/docs/sources/reference/components/database_observability/database_observability.mysql.md @@ -23,17 +23,30 @@ database_observability.mysql "