diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a908a0e40..13ff316031 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,10 @@ Main (unreleased) - In `prometheus.exporter.kafka`, the interpolation table used to compute estimated lag metrics is now pruned on `metadata_refresh_interval` instead of `prune_interval_seconds`. (@wildum) +### Bugfixes + +- Fixed issue with defaults for Beyla component not being applied correctly. (marctc) + v1.0.0 (2024-04-09) ------------------- diff --git a/internal/component/beyla/ebpf/beyla_linux.go b/internal/component/beyla/ebpf/beyla_linux.go index 5a041d0fc6..ede212c04b 100644 --- a/internal/component/beyla/ebpf/beyla_linux.go +++ b/internal/component/beyla/ebpf/beyla_linux.go @@ -62,11 +62,11 @@ func (args Routes) Convert() *transform.RoutesConfig { } func (args Attributes) Convert() beyla.Attributes { - return beyla.Attributes{ - Kubernetes: transform.KubernetesDecorator{ - Enable: transform.KubeEnableFlag(args.Kubernetes.Enable), - }, + attrs := beyla.DefaultConfig.Attributes + if args.Kubernetes.Enable != "" { + attrs.Kubernetes.Enable = transform.KubeEnableFlag(args.Kubernetes.Enable) } + return attrs } func (args Discovery) Convert() (services.DiscoveryConfig, error) { diff --git a/internal/component/beyla/ebpf/beyla_linux_test.go b/internal/component/beyla/ebpf/beyla_linux_test.go index a644c8dd06..ad1b6c30c8 100644 --- a/internal/component/beyla/ebpf/beyla_linux_test.go +++ b/internal/component/beyla/ebpf/beyla_linux_test.go @@ -5,6 +5,7 @@ package beyla import ( "errors" "testing" + "time" "github.com/grafana/alloy/syntax" "github.com/grafana/beyla/pkg/beyla" @@ -58,6 +59,24 @@ func TestArguments_UnmarshalSyntax(t *testing.T) { require.Equal(t, "default", cfg.Discovery.Services[0].Namespace) } +func TestArguments_ConvertDefaultConfig(t *testing.T) { + args := Arguments{} + cfg, err := args.Convert() + require.NoError(t, err) + require.Equal(t, cfg.ChannelBufferLen, beyla.DefaultConfig.ChannelBufferLen) + require.Equal(t, cfg.LogLevel, beyla.DefaultConfig.LogLevel) + require.Equal(t, cfg.EBPF, beyla.DefaultConfig.EBPF) + require.Equal(t, cfg.NetworkFlows, beyla.DefaultConfig.NetworkFlows) + require.Equal(t, cfg.Grafana, beyla.DefaultConfig.Grafana) + require.Equal(t, cfg.Attributes, beyla.DefaultConfig.Attributes) + require.Equal(t, cfg.Routes, beyla.DefaultConfig.Routes) + require.Equal(t, cfg.Metrics, beyla.DefaultConfig.Metrics) + require.Equal(t, cfg.Traces, beyla.DefaultConfig.Traces) + require.Equal(t, cfg.Prometheus, beyla.DefaultConfig.Prometheus) + require.Equal(t, cfg.InternalMetrics, beyla.DefaultConfig.InternalMetrics) + require.Equal(t, cfg.NetworkFlows, beyla.DefaultConfig.NetworkFlows) +} + func TestArguments_UnmarshalInvalidSyntax(t *testing.T) { var tests = []struct { testname string @@ -117,8 +136,10 @@ func TestConvert_Attribute(t *testing.T) { } expectedConfig := beyla.Attributes{ + InstanceID: beyla.DefaultConfig.Attributes.InstanceID, Kubernetes: transform.KubernetesDecorator{ - Enable: transform.KubeEnableFlag(args.Kubernetes.Enable), + Enable: transform.KubeEnableFlag(args.Kubernetes.Enable), + InformersSyncTimeout: 30 * time.Second, }, }