diff --git a/receiver/mongodbreceiver/README.md b/receiver/mongodbreceiver/README.md index e7079fa3fcbe..68254f6283c7 100644 --- a/receiver/mongodbreceiver/README.md +++ b/receiver/mongodbreceiver/README.md @@ -25,7 +25,6 @@ This receiver supports MongoDB versions: Mongodb recommends to set up a least privilege user (LPU) with a [`clusterMonitor` role](https://www.mongodb.com/docs/v5.0/reference/built-in-roles/#mongodb-authrole-clusterMonitor) in order to collect metrics. Please refer to [lpu.sh](./testdata/integration/scripts/lpu.sh) for an example of how to configure these permissions. -Collecting metrics `mongodb.global_lock.time` and `mongodb.index.access.count` are only available for mongodb 4.0+. ## Configuration @@ -61,6 +60,13 @@ The full list of settings exposed for this receiver are documented [here](./conf ## Metrics +The following metric are available with versions: +- `mongodb.extent.count` < 4.4 with mmapv1 storage engine +- `mongodb.session.count` >= 3.0 with wiredTiger storage engine +- `mongodb.cache.operations` >= 3.0 with wiredTiger storage engine +- `mongodb.connection.count` with attribute `active` is available >= 4.0 +- `mongodb.index.access.count` >= 4.0 + Details about the metrics produced by this receiver can be found in [metadata.yaml](./metadata.yaml) [beta]:https://github.com/open-telemetry/opentelemetry-collector#beta diff --git a/receiver/mongodbreceiver/metrics.go b/receiver/mongodbreceiver/metrics.go index 14ea66260643..1ac3f511e7c0 100644 --- a/receiver/mongodbreceiver/metrics.go +++ b/receiver/mongodbreceiver/metrics.go @@ -135,23 +135,34 @@ func (s *mongodbScraper) recordIndexSize(now pcommon.Timestamp, doc bson.M, dbNa } func (s *mongodbScraper) recordExtentCount(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { - extentsPath := []string{"numExtents"} - extents, err := dig(doc, extentsPath) - if err != nil { - errs.AddPartial(1, err) - return - } - extentsVal, err := parseInt(extents) - if err != nil { - errs.AddPartial(1, err) - return + // Mongo version 4.4+ no longer returns numExtents since it is part of the obsolete MMAPv1 + // https://www.mongodb.com/docs/manual/release-notes/4.4-compatibility/#mmapv1-cleanup + mongo44, _ := version.NewVersion("4.4") + if s.mongoVersion.LessThan(mongo44) { + extentsPath := []string{"numExtents"} + extents, err := dig(doc, extentsPath) + if err != nil { + errs.AddPartial(1, err) + return + } + extentsVal, err := parseInt(extents) + if err != nil { + errs.AddPartial(1, err) + return + } + s.mb.RecordMongodbExtentCountDataPoint(now, extentsVal, dbName) } - s.mb.RecordMongodbExtentCountDataPoint(now, extentsVal, dbName) } // ServerStatus func (s *mongodbScraper) recordConnections(now pcommon.Timestamp, doc bson.M, dbName string, errs *scrapererror.ScrapeErrors) { + mongo40, _ := version.NewVersion("4.0") for ctVal, ct := range metadata.MapAttributeConnectionType { + // Mongo version 4.0 added connections.active + // reference: https://www.mongodb.com/docs/v4.0/reference/command/serverStatus/#serverstatus.connections.active + if s.mongoVersion.LessThan(mongo40) && ctVal == "active" { + continue + } connKey := []string{"connections", ctVal} conn, err := dig(doc, connKey) if err != nil { @@ -206,7 +217,13 @@ func (s *mongodbScraper) recordDocumentOperations(now pcommon.Timestamp, doc bso } func (s *mongodbScraper) recordSessionCount(now pcommon.Timestamp, doc bson.M, errs *scrapererror.ScrapeErrors) { - // Collect session count + // Collect session count for version 3.0+ + // https://www.mongodb.com/docs/v3.0/reference/command/serverStatus/#serverStatus.wiredTiger.session + mongo30, _ := version.NewVersion("3.0") + if s.mongoVersion.LessThan(mongo30) { + return + } + storageEngine, err := dig(doc, []string{"storageEngine", "name"}) if err != nil { s.logger.Error("failed to find storage engine for session count", zap.Error(err)) @@ -254,6 +271,13 @@ func (s *mongodbScraper) recordOperations(now pcommon.Timestamp, doc bson.M, err func (s *mongodbScraper) recordCacheOperations(now pcommon.Timestamp, doc bson.M, errs *scrapererror.ScrapeErrors) { // Collect Cache Hits & Misses if wiredTiger storage engine is used + // WiredTiger.cache metrics are available in 3.0+ + // https://www.mongodb.com/docs/v4.0/reference/command/serverStatus/#serverstatus.wiredTiger.cache + mongo30, _ := version.NewVersion("3.0") + if s.mongoVersion.LessThan(mongo30) { + return + } + storageEngine, err := dig(doc, []string{"storageEngine", "name"}) if err != nil { s.logger.Error("failed to find storage engine for cache operation", zap.Error(err)) @@ -301,43 +325,19 @@ func (s *mongodbScraper) recordCacheOperations(now pcommon.Timestamp, doc bson.M } func (s *mongodbScraper) recordGlobalLockTime(now pcommon.Timestamp, doc bson.M, errs *scrapererror.ScrapeErrors) { - var heldTimeUs int64 - - // Mongo version greater than or equal to 4.0 have it in the serverStats at "globalLock", "totalTime" - // reference: https://docs.mongodb.com/v4.0/reference/command/serverStatus/#server-status-global-lock - mongo40, _ := version.NewVersion("4.0") - if s.mongoVersion.GreaterThanOrEqual(mongo40) { - val, err := dig(doc, []string{"globalLock", "totalTime"}) - if err != nil { - errs.AddPartial(1, err) - return - } - parsedVal, err := parseInt(val) - if err != nil { - errs.AddPartial(1, err) - return - } - heldTimeUs = parsedVal - } else { - for _, lockType := range []string{"W", "R", "r", "w"} { - waitTime, err := dig(doc, []string{"locks", ".", "timeAcquiringMicros", lockType}) - if err != nil { - continue - } - waitTimeVal, err := parseInt(waitTime) - if err != nil { - errs.AddPartial(1, err) - } - heldTimeUs += waitTimeVal - } + val, err := dig(doc, []string{"globalLock", "totalTime"}) + if err != nil { + errs.AddPartial(1, err) + return } - if heldTimeUs != 0 { - htMilliseconds := heldTimeUs / 1000 - s.mb.RecordMongodbGlobalLockTimeDataPoint(now, htMilliseconds) + parsedVal, err := parseInt(val) + if err != nil { + errs.AddPartial(1, err) return } - errs.AddPartial(1, fmt.Errorf("was unable to calculate global lock time")) + heldTimeMilliseconds := parsedVal / 1000 + s.mb.RecordMongodbGlobalLockTimeDataPoint(now, heldTimeMilliseconds) } func (s *mongodbScraper) recordCursorCount(now pcommon.Timestamp, doc bson.M, errs *scrapererror.ScrapeErrors) { diff --git a/receiver/mongodbreceiver/scraper_test.go b/receiver/mongodbreceiver/scraper_test.go index 7ae98b64caf0..b72245ebf953 100644 --- a/receiver/mongodbreceiver/scraper_test.go +++ b/receiver/mongodbreceiver/scraper_test.go @@ -24,11 +24,8 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo/integration/mtest" "go.opentelemetry.io/collector/component/componenttest" - "go.opentelemetry.io/collector/pdata/pcommon" - "go.opentelemetry.io/collector/receiver/scrapererror" "go.uber.org/zap" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/scrapertest" @@ -118,37 +115,6 @@ func TestScrapeNoClient(t *testing.T) { require.Error(t, err) } -func TestGlobalLockTimeOldFormat(t *testing.T) { - cfg := createDefaultConfig().(*Config) - cfg.Metrics = metadata.DefaultMetricsSettings() - scraper := newMongodbScraper(componenttest.NewNopReceiverCreateSettings(), cfg) - mong26, err := version.NewVersion("2.6") - require.NoError(t, err) - scraper.mongoVersion = mong26 - doc := primitive.M{ - "locks": primitive.M{ - ".": primitive.M{ - "timeLockedMicros": primitive.M{ - "R": 122169, - "W": 132712, - }, - "timeAcquiringMicros": primitive.M{ - "R": 116749, - "W": 14340, - }, - }, - }, - } - - now := pcommon.NewTimestampFromTime(time.Now()) - scraper.recordGlobalLockTime(now, doc, &scrapererror.ScrapeErrors{}) - expectedValue := (int64(116749+14340) / 1000) - - metrics := scraper.mb.Emit().ResourceMetrics().At(0).ScopeMetrics().At(0).Metrics() - collectedValue := metrics.At(0).Sum().DataPoints().At(0).IntVal() - require.Equal(t, expectedValue, collectedValue) -} - func TestTopMetricsAggregation(t *testing.T) { mont := mtest.New(t, mtest.NewOptions().ClientType(mtest.Mock)) defer mont.Close() diff --git a/receiver/mongodbreceiver/testdata/integration/expected.3_0.json b/receiver/mongodbreceiver/testdata/integration/expected.3_0.json index 22efaf5e497b..b77c54e376b1 100644 --- a/receiver/mongodbreceiver/testdata/integration/expected.3_0.json +++ b/receiver/mongodbreceiver/testdata/integration/expected.3_0.json @@ -13,8 +13,8 @@ "dataPoints": [ { "asInt": "0", - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -28,8 +28,8 @@ "dataPoints": [ { "asInt": "0", - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -43,13 +43,29 @@ "dataPoints": [ { "asInt": "2", - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, "unit": "{databases}" }, + { + "description": "The time the global lock has been held.", + "name": "mongodb.global_lock.time", + "sum": { + "aggregationTemporality": "AGGREGATION_TEMPORALITY_CUMULATIVE", + "dataPoints": [ + { + "asInt": "60917", + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" + } + ], + "isMonotonic": true + }, + "unit": "ms" + }, { "description": "The number of bytes received.", "name": "mongodb.network.io.receive", @@ -58,8 +74,8 @@ "dataPoints": [ { "asInt": "2105", - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -73,8 +89,8 @@ "dataPoints": [ { "asInt": "4716", - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -88,8 +104,8 @@ "dataPoints": [ { "asInt": "23", - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -107,25 +123,25 @@ { "key": "operation", "value": { - "stringValue": "update" + "stringValue": "insert" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { - "asInt": "0", + "asInt": "1", "attributes": [ { "key": "operation", "value": { - "stringValue": "delete" + "stringValue": "query" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -133,25 +149,25 @@ { "key": "operation", "value": { - "stringValue": "getmore" + "stringValue": "update" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { - "asInt": "24", + "asInt": "0", "attributes": [ { "key": "operation", "value": { - "stringValue": "command" + "stringValue": "delete" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -159,25 +175,25 @@ { "key": "operation", "value": { - "stringValue": "insert" + "stringValue": "getmore" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { - "asInt": "1", + "asInt": "24", "attributes": [ { "key": "operation", "value": { - "stringValue": "query" + "stringValue": "command" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ], "isMonotonic": true @@ -204,17 +220,17 @@ "aggregationTemporality": "AGGREGATION_TEMPORALITY_CUMULATIVE", "dataPoints": [ { - "asInt": "295177", + "asInt": "0", "attributes": [ { "key": "operation", "value": { - "stringValue": "command" + "stringValue": "delete" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -222,25 +238,25 @@ { "key": "operation", "value": { - "stringValue": "insert" + "stringValue": "getmore" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { - "asInt": "29", + "asInt": "65779", "attributes": [ { "key": "operation", "value": { - "stringValue": "query" + "stringValue": "command" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -248,25 +264,25 @@ { "key": "operation", "value": { - "stringValue": "update" + "stringValue": "insert" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { - "asInt": "0", + "asInt": "29", "attributes": [ { "key": "operation", "value": { - "stringValue": "delete" + "stringValue": "query" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -274,12 +290,12 @@ { "key": "operation", "value": { - "stringValue": "getmore" + "stringValue": "update" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ], "isMonotonic": true @@ -324,8 +340,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -353,8 +369,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "3", @@ -372,8 +388,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -395,8 +411,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -420,12 +436,12 @@ { "key": "operation", "value": { - "stringValue": "insert" + "stringValue": "update" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -439,12 +455,12 @@ { "key": "operation", "value": { - "stringValue": "update" + "stringValue": "delete" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -458,12 +474,12 @@ { "key": "operation", "value": { - "stringValue": "delete" + "stringValue": "insert" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -485,8 +501,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -508,8 +524,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -531,8 +547,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -545,7 +561,7 @@ "aggregationTemporality": "AGGREGATION_TEMPORALITY_CUMULATIVE", "dataPoints": [ { - "asInt": "81788928", + "asInt": "79691776", "attributes": [ { "key": "database", @@ -560,8 +576,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "543162368", @@ -579,8 +595,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -602,8 +618,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -625,8 +641,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ], "isMonotonic": true @@ -671,8 +687,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -700,8 +716,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "3", @@ -719,8 +735,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -742,8 +758,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -771,8 +787,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -790,8 +806,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { "asInt": "0", @@ -809,8 +825,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -832,8 +848,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -855,8 +871,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -878,8 +894,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -892,7 +908,7 @@ "aggregationTemporality": "AGGREGATION_TEMPORALITY_CUMULATIVE", "dataPoints": [ { - "asInt": "543162368", + "asInt": "79691776", "attributes": [ { "key": "database", @@ -903,15 +919,15 @@ { "key": "type", "value": { - "stringValue": "virtual" + "stringValue": "resident" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" }, { - "asInt": "81788928", + "asInt": "543162368", "attributes": [ { "key": "database", @@ -922,12 +938,12 @@ { "key": "type", "value": { - "stringValue": "resident" + "stringValue": "virtual" } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -949,8 +965,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ] }, @@ -972,8 +988,8 @@ } } ], - "startTimeUnixNano": "1659372711430846000", - "timeUnixNano": "1659372771440281000" + "startTimeUnixNano": "1660574530315941000", + "timeUnixNano": "1660574590325232000" } ], "isMonotonic": true diff --git a/unreleased/mongodbreceiver-add-metric-version-checks.yaml b/unreleased/mongodbreceiver-add-metric-version-checks.yaml new file mode 100755 index 000000000000..a18ca1e369cb --- /dev/null +++ b/unreleased/mongodbreceiver-add-metric-version-checks.yaml @@ -0,0 +1,16 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: bug_fix + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: mongodbreceiver + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Adds metric versioning checks to prevent partial errors + +# One or more tracking issues related to the change +issues: [13155] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: