From 9ea483cf76d5cf80e36f204034a8dee11cd83dad Mon Sep 17 00:00:00 2001 From: Dmitry Anoshin Date: Tue, 18 Jun 2024 13:35:31 -0700 Subject: [PATCH] [receover/mongodb] Graduate removeDatabaseAttr feature gate to stable It's been 8 versions since the feature gate moved to beta. Seems like a good to to graduate it to beta and remove the duplicated code --- ...e-receiver-mongodb-removeDatabaseAttr.yaml | 22 ++ receiver/mongodbreceiver/README.md | 7 +- .../metadata/metrics_database_attr_version.go | 260 ------------------ receiver/mongodbreceiver/metrics.go | 90 +----- receiver/mongodbreceiver/scraper.go | 46 +--- 5 files changed, 53 insertions(+), 372 deletions(-) create mode 100644 .chloggen/stable-receiver-mongodb-removeDatabaseAttr.yaml delete mode 100644 receiver/mongodbreceiver/internal/metadata/metrics_database_attr_version.go diff --git a/.chloggen/stable-receiver-mongodb-removeDatabaseAttr.yaml b/.chloggen/stable-receiver-mongodb-removeDatabaseAttr.yaml new file mode 100644 index 000000000000..01787d4c7e3d --- /dev/null +++ b/.chloggen/stable-receiver-mongodb-removeDatabaseAttr.yaml @@ -0,0 +1,22 @@ +# Use this changelog template to create an entry for release notes. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: breaking + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: receiver/mongodb + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: "Graduate receiver.mongodb.removeDatabaseAttr feature gate to stable" + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +issues: [24972] + +# If your change doesn't affect end users or the exported elements of any package, +# you should instead start your pull request title with [chore] or use the "Skip Changelog" label. +# Optional: The change log or logs in which this entry should be included. +# e.g. '[user]' or '[user, api]' +# Include 'user' if the change is relevant to end users. +# Include 'api' if there is a change to a library API. +# Default: '[user]' +change_logs: [user] diff --git a/receiver/mongodbreceiver/README.md b/receiver/mongodbreceiver/README.md index 5dfa54c2e300..5397aca56f2a 100644 --- a/receiver/mongodbreceiver/README.md +++ b/receiver/mongodbreceiver/README.md @@ -75,8 +75,7 @@ Details about the metrics produced by this receiver can be found in [metadata.ya See the [Collector feature gates](https://github.com/open-telemetry/opentelemetry-collector/blob/main/featuregate/README.md#collector-feature-gates) for an overview of feature gates in the collector. -**BETA**: `receiver.mongodb.removeDatabaseAttr` +**STABLE**: `receiver.mongodb.removeDatabaseAttr` -The feature gate `receiver.mongodb.removeDatabaseAttr` is enabled by default but may be disabled. -Unless disabled, it will remove the database name attribute from data points because it is already found on the resource. -This feature gate will eventually be removed. +The feature gate `receiver.mongodb.removeDatabaseAttr` will remove the database name attribute from data points +because it is already found on the resource. This feature gate cannot be changed and will be removed soon. diff --git a/receiver/mongodbreceiver/internal/metadata/metrics_database_attr_version.go b/receiver/mongodbreceiver/internal/metadata/metrics_database_attr_version.go deleted file mode 100644 index 038c051919e6..000000000000 --- a/receiver/mongodbreceiver/internal/metadata/metrics_database_attr_version.go +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -package metadata // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbreceiver/internal/metadata" - -import ( - "go.opentelemetry.io/collector/pdata/pcommon" -) - -func (m *metricMongodbCollectionCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) -} - -func (m *metricMongodbConnectionCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, connectionTypeAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("type", connectionTypeAttributeValue) -} - -func (m *metricMongodbDataSize) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) -} - -func (m *metricMongodbDocumentOperationCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, operationAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("operation", operationAttributeValue) -} - -func (m *metricMongodbExtentCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) -} - -func (m *metricMongodbIndexAccessCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, collectionAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("collection", collectionAttributeValue) -} - -func (m *metricMongodbIndexCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) -} - -func (m *metricMongodbIndexSize) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) -} - -func (m *metricMongodbLockAcquireCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue string, lockModeAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("lock_type", lockTypeAttributeValue) - dp.Attributes().PutStr("lock_mode", lockModeAttributeValue) -} - -func (m *metricMongodbLockAcquireTime) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue string, lockModeAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("lock_type", lockTypeAttributeValue) - dp.Attributes().PutStr("lock_mode", lockModeAttributeValue) -} - -func (m *metricMongodbLockAcquireWaitCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue string, lockModeAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("lock_type", lockTypeAttributeValue) - dp.Attributes().PutStr("lock_mode", lockModeAttributeValue) -} - -func (m *metricMongodbLockDeadlockCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue string, lockModeAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("lock_type", lockTypeAttributeValue) - dp.Attributes().PutStr("lock_mode", lockModeAttributeValue) -} - -func (m *metricMongodbMemoryUsage) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string, memoryTypeAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) - dp.Attributes().PutStr("type", memoryTypeAttributeValue) -} - -func (m *metricMongodbObjectCount) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) -} - -func (m *metricMongodbStorageSize) recordDataPointDatabaseAttr(start pcommon.Timestamp, ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - if !m.config.Enabled { - return - } - dp := m.data.Sum().DataPoints().AppendEmpty() - dp.SetStartTimestamp(start) - dp.SetTimestamp(ts) - dp.SetIntValue(val) - dp.Attributes().PutStr("database", databaseAttributeValue) -} - -// RecordMongodbCollectionCountDataPointDatabaseAttr adds a data point to mongodb.collection.count metric. -func (mb *MetricsBuilder) RecordMongodbCollectionCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - mb.metricMongodbCollectionCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue) -} - -// RecordMongodbDataSizeDataPointDatabaseAttr adds a data point to mongodb.data.size metric. -func (mb *MetricsBuilder) RecordMongodbDataSizeDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - mb.metricMongodbDataSize.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue) -} - -// RecordMongodbDocumentOperationCountDataPointDatabaseAttr adds a data point to mongodb.document.operation.count metric. -func (mb *MetricsBuilder) RecordMongodbDocumentOperationCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, operationAttributeValue AttributeOperation) { - mb.metricMongodbDocumentOperationCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, operationAttributeValue.String()) -} - -// RecordMongodbConnectionCountDataPointDatabaseAttr adds a data point to mongodb.connection.count metric. -func (mb *MetricsBuilder) RecordMongodbConnectionCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, connectionTypeAttributeValue AttributeConnectionType) { - mb.metricMongodbConnectionCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, connectionTypeAttributeValue.String()) -} - -// RecordMongodbExtentCountDataPointDatabaseAttr adds a data point to mongodb.extent.count metric. -func (mb *MetricsBuilder) RecordMongodbExtentCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - mb.metricMongodbExtentCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue) -} - -// RecordMongodbIndexAccessCountDataPointDatabaseAttr adds a data point to mongodb.index.access.count metric. -func (mb *MetricsBuilder) RecordMongodbIndexAccessCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, collectionAttributeValue string) { - mb.metricMongodbIndexAccessCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, collectionAttributeValue) -} - -// RecordMongodbIndexCountDataPointDatabaseAttr adds a data point to mongodb.index.count metric. -func (mb *MetricsBuilder) RecordMongodbIndexCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - mb.metricMongodbIndexCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue) -} - -// RecordMongodbIndexSizeDataPointDatabaseAttr adds a data point to mongodb.index.size metric. -func (mb *MetricsBuilder) RecordMongodbIndexSizeDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - mb.metricMongodbIndexSize.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue) -} - -// RecordMongodbLockAcquireCountDataPointDatabaseAttr adds a data point to mongodb.lock.acquire.count metric. -func (mb *MetricsBuilder) RecordMongodbLockAcquireCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue AttributeLockType, lockModeAttributeValue AttributeLockMode) { - mb.metricMongodbLockAcquireCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, lockTypeAttributeValue.String(), lockModeAttributeValue.String()) -} - -// RecordMongodbLockAcquireTimeDataPointDatabaseAttr adds a data point to mongodb.lock.acquire.time metric. -func (mb *MetricsBuilder) RecordMongodbLockAcquireTimeDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue AttributeLockType, lockModeAttributeValue AttributeLockMode) { - mb.metricMongodbLockAcquireTime.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, lockTypeAttributeValue.String(), lockModeAttributeValue.String()) -} - -// RecordMongodbLockAcquireWaitCountDataPointDatabaseAttr adds a data point to mongodb.lock.acquire.wait_count metric. -func (mb *MetricsBuilder) RecordMongodbLockAcquireWaitCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue AttributeLockType, lockModeAttributeValue AttributeLockMode) { - mb.metricMongodbLockAcquireWaitCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, lockTypeAttributeValue.String(), lockModeAttributeValue.String()) -} - -// RecordMongodbLockDeadlockCountDataPointDatabaseAttr adds a data point to mongodb.lock.deadlock.count metric. -func (mb *MetricsBuilder) RecordMongodbLockDeadlockCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, lockTypeAttributeValue AttributeLockType, lockModeAttributeValue AttributeLockMode) { - mb.metricMongodbLockDeadlockCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, lockTypeAttributeValue.String(), lockModeAttributeValue.String()) -} - -// RecordMongodbMemoryUsageDataPointDatabaseAttr adds a data point to mongodb.memory.usage metric. -func (mb *MetricsBuilder) RecordMongodbMemoryUsageDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string, memoryTypeAttributeValue AttributeMemoryType) { - mb.metricMongodbMemoryUsage.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue, memoryTypeAttributeValue.String()) -} - -// RecordMongodbObjectCountDataPointDatabaseAttr adds a data point to mongodb.object.count metric. -func (mb *MetricsBuilder) RecordMongodbObjectCountDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - mb.metricMongodbObjectCount.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue) -} - -// RecordMongodbStorageSizeDataPointDatabaseAttr adds a data point to mongodb.storage.size metric. -func (mb *MetricsBuilder) RecordMongodbStorageSizeDataPointDatabaseAttr(ts pcommon.Timestamp, val int64, databaseAttributeValue string) { - mb.metricMongodbStorageSize.recordDataPointDatabaseAttr(mb.startTime, ts, val, databaseAttributeValue) -} diff --git a/receiver/mongodbreceiver/metrics.go b/receiver/mongodbreceiver/metrics.go index 807a0a27b9ff..83f80ff17ca3 100644 --- a/receiver/mongodbreceiver/metrics.go +++ b/receiver/mongodbreceiver/metrics.go @@ -65,11 +65,7 @@ func (s *mongodbScraper) recordCollections(now pcommon.Timestamp, doc bson.M, db errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, dbName, err)) return } - if s.removeDatabaseAttr { - s.mb.RecordMongodbCollectionCountDataPoint(now, val) - } else { - s.mb.RecordMongodbCollectionCountDataPointDatabaseAttr(now, val, dbName) - } + s.mb.RecordMongodbCollectionCountDataPoint(now, val) } func (s *mongodbScraper) recordDataSize(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { @@ -80,11 +76,7 @@ func (s *mongodbScraper) recordDataSize(now pcommon.Timestamp, doc bson.M, dbNam errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, dbName, err)) return } - if s.removeDatabaseAttr { - s.mb.RecordMongodbDataSizeDataPoint(now, val) - } else { - s.mb.RecordMongodbDataSizeDataPointDatabaseAttr(now, val, dbName) - } + s.mb.RecordMongodbDataSizeDataPoint(now, val) } func (s *mongodbScraper) recordStorageSize(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { @@ -95,11 +87,7 @@ func (s *mongodbScraper) recordStorageSize(now pcommon.Timestamp, doc bson.M, db errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, dbName, err)) return } - if s.removeDatabaseAttr { - s.mb.RecordMongodbStorageSizeDataPoint(now, val) - } else { - s.mb.RecordMongodbStorageSizeDataPointDatabaseAttr(now, val, dbName) - } + s.mb.RecordMongodbStorageSizeDataPoint(now, val) } func (s *mongodbScraper) recordObjectCount(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { @@ -110,11 +98,7 @@ func (s *mongodbScraper) recordObjectCount(now pcommon.Timestamp, doc bson.M, db errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, dbName, err)) return } - if s.removeDatabaseAttr { - s.mb.RecordMongodbObjectCountDataPoint(now, val) - } else { - s.mb.RecordMongodbObjectCountDataPointDatabaseAttr(now, val, dbName) - } + s.mb.RecordMongodbObjectCountDataPoint(now, val) } func (s *mongodbScraper) recordIndexCount(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { @@ -125,11 +109,7 @@ func (s *mongodbScraper) recordIndexCount(now pcommon.Timestamp, doc bson.M, dbN errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, dbName, err)) return } - if s.removeDatabaseAttr { - s.mb.RecordMongodbIndexCountDataPoint(now, val) - } else { - s.mb.RecordMongodbIndexCountDataPointDatabaseAttr(now, val, dbName) - } + s.mb.RecordMongodbIndexCountDataPoint(now, val) } func (s *mongodbScraper) recordIndexSize(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { @@ -140,11 +120,7 @@ func (s *mongodbScraper) recordIndexSize(now pcommon.Timestamp, doc bson.M, dbNa errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, dbName, err)) return } - if s.removeDatabaseAttr { - s.mb.RecordMongodbIndexSizeDataPoint(now, val) - } else { - s.mb.RecordMongodbIndexSizeDataPointDatabaseAttr(now, val, dbName) - } + s.mb.RecordMongodbIndexSizeDataPoint(now, val) } func (s *mongodbScraper) recordExtentCount(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { @@ -159,11 +135,7 @@ func (s *mongodbScraper) recordExtentCount(now pcommon.Timestamp, doc bson.M, db errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, dbName, err)) return } - if s.removeDatabaseAttr { - s.mb.RecordMongodbExtentCountDataPoint(now, val) - } else { - s.mb.RecordMongodbExtentCountDataPointDatabaseAttr(now, val, dbName) - } + s.mb.RecordMongodbExtentCountDataPoint(now, val) } } @@ -178,11 +150,7 @@ func (s *mongodbScraper) recordConnections(now pcommon.Timestamp, doc bson.M, db errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, metricAttributes, err)) continue } - if s.removeDatabaseAttr { - s.mb.RecordMongodbConnectionCountDataPoint(now, val, ct) - } else { - s.mb.RecordMongodbConnectionCountDataPointDatabaseAttr(now, val, dbName, ct) - } + s.mb.RecordMongodbConnectionCountDataPoint(now, val, ct) } } @@ -198,11 +166,7 @@ func (s *mongodbScraper) recordMemoryUsage(now pcommon.Timestamp, doc bson.M, db } // convert from mebibytes to bytes memUsageBytes := val * int64(1048576) - if s.removeDatabaseAttr { - s.mb.RecordMongodbMemoryUsageDataPoint(now, memUsageBytes, mt) - } else { - s.mb.RecordMongodbMemoryUsageDataPointDatabaseAttr(now, memUsageBytes, dbName, mt) - } + s.mb.RecordMongodbMemoryUsageDataPoint(now, memUsageBytes, mt) } } @@ -216,11 +180,7 @@ func (s *mongodbScraper) recordDocumentOperations(now pcommon.Timestamp, doc bso errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, metricAttributes, err)) continue } - if s.removeDatabaseAttr { - s.mb.RecordMongodbDocumentOperationCountDataPoint(now, val, metadataKey) - } else { - s.mb.RecordMongodbDocumentOperationCountDataPointDatabaseAttr(now, val, dbName, metadataKey) - } + s.mb.RecordMongodbDocumentOperationCountDataPoint(now, val, metadataKey) } } @@ -416,11 +376,7 @@ func (s *mongodbScraper) recordLockAcquireCounts(now pcommon.Timestamp, doc bson errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, metricAttributes, err)) continue } - if s.removeDatabaseAttr { - s.mb.RecordMongodbLockAcquireCountDataPoint(now, val, lockTypeAttribute, lockModeAttribute) - } else { - s.mb.RecordMongodbLockAcquireCountDataPointDatabaseAttr(now, val, dBName, lockTypeAttribute, lockModeAttribute) - } + s.mb.RecordMongodbLockAcquireCountDataPoint(now, val, lockTypeAttribute, lockModeAttribute) } } } @@ -450,11 +406,7 @@ func (s *mongodbScraper) recordLockAcquireWaitCounts(now pcommon.Timestamp, doc errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, metricAttributes, err)) continue } - if s.removeDatabaseAttr { - s.mb.RecordMongodbLockAcquireWaitCountDataPoint(now, val, lockTypeAttribute, lockModeAttribute) - } else { - s.mb.RecordMongodbLockAcquireWaitCountDataPointDatabaseAttr(now, val, dBName, lockTypeAttribute, lockModeAttribute) - } + s.mb.RecordMongodbLockAcquireWaitCountDataPoint(now, val, lockTypeAttribute, lockModeAttribute) } } } @@ -484,11 +436,7 @@ func (s *mongodbScraper) recordLockTimeAcquiringMicros(now pcommon.Timestamp, do errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, metricAttributes, err)) continue } - if s.removeDatabaseAttr { - s.mb.RecordMongodbLockAcquireTimeDataPoint(now, val, lockTypeAttribute, lockModeAttribute) - } else { - s.mb.RecordMongodbLockAcquireTimeDataPointDatabaseAttr(now, val, dBName, lockTypeAttribute, lockModeAttribute) - } + s.mb.RecordMongodbLockAcquireTimeDataPoint(now, val, lockTypeAttribute, lockModeAttribute) } } } @@ -518,11 +466,7 @@ func (s *mongodbScraper) recordLockDeadlockCount(now pcommon.Timestamp, doc bson errs.AddPartial(1, fmt.Errorf(collectMetricWithAttributes, metricName, metricAttributes, err)) continue } - if s.removeDatabaseAttr { - s.mb.RecordMongodbLockDeadlockCountDataPoint(now, val, lockTypeAttribute, lockModeAttribute) - } else { - s.mb.RecordMongodbLockDeadlockCountDataPointDatabaseAttr(now, val, dBName, lockTypeAttribute, lockModeAttribute) - } + s.mb.RecordMongodbLockDeadlockCountDataPoint(now, val, lockTypeAttribute, lockModeAttribute) } } } @@ -546,11 +490,7 @@ func (s *mongodbScraper) recordIndexAccess(now pcommon.Timestamp, documents []bs } indexAccessTotal += indexAccessValue } - if s.removeDatabaseAttr { - s.mb.RecordMongodbIndexAccessCountDataPoint(now, indexAccessTotal, collectionName) - } else { - s.mb.RecordMongodbIndexAccessCountDataPointDatabaseAttr(now, indexAccessTotal, dbName, collectionName) - } + s.mb.RecordMongodbIndexAccessCountDataPoint(now, indexAccessTotal, collectionName) } // Top Stats diff --git a/receiver/mongodbreceiver/scraper.go b/receiver/mongodbreceiver/scraper.go index f8f99b7e3c4b..2e7772b41866 100644 --- a/receiver/mongodbreceiver/scraper.go +++ b/receiver/mongodbreceiver/scraper.go @@ -22,20 +22,16 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbreceiver/internal/metadata" ) -const ( - readmeURL = "https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/mongodbreceiver/README.md" - removeDatabaseAttrID = "receiver.mongodb.removeDatabaseAttr" -) - var ( unknownVersion = func() *version.Version { return version.Must(version.NewVersion("0.0")) } - removeDatabaseAttrFeatureGate = featuregate.GlobalRegistry().MustRegister( - removeDatabaseAttrID, - featuregate.StageBeta, + _ = featuregate.GlobalRegistry().MustRegister( + "receiver.mongodb.removeDatabaseAttr", + featuregate.StageStable, featuregate.WithRegisterDescription("Remove duplicate database name attribute"), featuregate.WithRegisterReferenceURL("https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/24972"), - featuregate.WithRegisterFromVersion("v0.90.0")) + featuregate.WithRegisterFromVersion("v0.90.0"), + featuregate.WithRegisterToVersion("v0.104.0")) ) type mongodbScraper struct { @@ -44,27 +40,15 @@ type mongodbScraper struct { client client mongoVersion *version.Version mb *metadata.MetricsBuilder - - // removeDatabaseAttr if enabled, will remove database attribute on database metrics - removeDatabaseAttr bool } func newMongodbScraper(settings receiver.Settings, config *Config) *mongodbScraper { - ms := &mongodbScraper{ - logger: settings.Logger, - config: config, - mb: metadata.NewMetricsBuilder(config.MetricsBuilderConfig, settings), - mongoVersion: unknownVersion(), - removeDatabaseAttr: removeDatabaseAttrFeatureGate.IsEnabled(), + return &mongodbScraper{ + logger: settings.Logger, + config: config, + mb: metadata.NewMetricsBuilder(config.MetricsBuilderConfig, settings), + mongoVersion: unknownVersion(), } - - if !ms.removeDatabaseAttr { - settings.Logger.Warn( - fmt.Sprintf("Feature gate %s is not enabled. Please see the README for more information: %s", removeDatabaseAttrID, readmeURL), - ) - } - - return ms } func (s *mongodbScraper) start(ctx context.Context, _ component.Host) error { @@ -180,13 +164,9 @@ func (s *mongodbScraper) collectIndexStats(ctx context.Context, now pcommon.Time } s.recordIndexStats(now, indexStats, databaseName, collectionName, errs) - if s.removeDatabaseAttr { - rb := s.mb.NewResourceBuilder() - rb.SetDatabase(databaseName) - s.mb.EmitForResource(metadata.WithResource(rb.Emit())) - } else { - s.mb.EmitForResource() - } + rb := s.mb.NewResourceBuilder() + rb.SetDatabase(databaseName) + s.mb.EmitForResource(metadata.WithResource(rb.Emit())) } func (s *mongodbScraper) recordDBStats(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) {