[receiver/mongodbreceiver] Add metric versioning checks to prevent partial errors #13266
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
In use or in the integration tests, many partial errors are being emitted. A metric versioning and storage engine check can be applied before metrics are recorded to prevent these partial errors from occurring.
Figuring what partial errors were slipping through was a pain so a more detailed partial error message and logging was added to prevent a generic
could not find key for metric
message.Link to tracking Issue:
#13155
Testing:
Documentation:
The readme metrics section has mongodb version and storage engine requirements to get certain metrics.
Also while collecting
mongodb.global_lock.time
, it appears that mongodb 2.6, 3.0, 4.0, and 5.0 all have the metric available so the old mongodb version check can be removed since it is available for all versions.opentelemetry-collector-contrib/receiver/mongodbreceiver/metrics.go
Lines 306 to 309 in 94d9600