From 421b8cfaa89edff7e4c4b91be40bf864e88ef231 Mon Sep 17 00:00:00 2001 From: james hughes Date: Wed, 17 May 2023 16:16:35 -0700 Subject: [PATCH] Honor enabled resource attributes --- .../redisreceiver-honor-enabled-resource-attrs.yaml | 10 ++++++++++ receiver/redisreceiver/redis_scraper.go | 8 +++++++- receiver/redisreceiver/redis_scraper_test.go | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100755 .chloggen/redisreceiver-honor-enabled-resource-attrs.yaml diff --git a/.chloggen/redisreceiver-honor-enabled-resource-attrs.yaml b/.chloggen/redisreceiver-honor-enabled-resource-attrs.yaml new file mode 100755 index 000000000000..0fe22ed90884 --- /dev/null +++ b/.chloggen/redisreceiver-honor-enabled-resource-attrs.yaml @@ -0,0 +1,10 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: "enhancement" + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: "redisreceiver" + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: "Honor the enabled flag for resource attributes (flag was introduced after creation of this receiver)" + +issues: [22044] diff --git a/receiver/redisreceiver/redis_scraper.go b/receiver/redisreceiver/redis_scraper.go index 60c7f72e45e5..2fa456363da3 100644 --- a/receiver/redisreceiver/redis_scraper.go +++ b/receiver/redisreceiver/redis_scraper.go @@ -28,6 +28,7 @@ type redisScraper struct { settings component.TelemetrySettings mb *metadata.MetricsBuilder uptime time.Duration + cfg *Config } const redisMaxDbs = 16 // Maximum possible number of redis databases @@ -52,6 +53,7 @@ func newRedisScraperWithClient(client client, settings receiver.CreateSettings, redisSvc: newRedisSvc(client), settings: settings.TelemetrySettings, mb: metadata.NewMetricsBuilder(cfg.MetricsBuilderConfig, settings), + cfg: cfg, } return scraperhelper.NewScraper( metadata.Type, @@ -93,7 +95,11 @@ func (rs *redisScraper) Scrape(context.Context) (pmetric.Metrics, error) { rs.recordKeyspaceMetrics(now, inf) rs.recordRoleMetrics(now, inf) rs.recordCmdStatsMetrics(now, inf) - return rs.mb.Emit(metadata.WithRedisVersion(rs.getRedisVersion(inf))), nil + var resourceMetricOptions []metadata.ResourceMetricsOption + if rs.cfg.MetricsBuilderConfig.ResourceAttributes.RedisVersion.Enabled { + resourceMetricOptions = append(resourceMetricOptions, metadata.WithRedisVersion(rs.getRedisVersion(inf))) + } + return rs.mb.Emit(resourceMetricOptions...), nil } // recordCommonMetrics records metrics from Redis info key-value pairs. diff --git a/receiver/redisreceiver/redis_scraper_test.go b/receiver/redisreceiver/redis_scraper_test.go index c3f55d518b32..21698c243000 100644 --- a/receiver/redisreceiver/redis_scraper_test.go +++ b/receiver/redisreceiver/redis_scraper_test.go @@ -33,6 +33,8 @@ func TestRedisRunnable(t *testing.T) { ilm := rm.ScopeMetrics().At(0) il := ilm.Scope() assert.Equal(t, "otelcol/redisreceiver", il.Name()) + // Only version should be enabled by default at this moment + assert.Equal(t, 1, rm.Resource().Attributes().Len()) } func TestNewReceiver_invalid_auth_error(t *testing.T) {