Add a config to decode json-encoded strings in attribute values #2827
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:
This commit adds a config
parse_json_encoded_attr_values
which is the list of attributes whose values are json-encoded strings. The emf exporter will convert those json-encoded strings as json structures before putting them into the emf log events.This is to support the aws container insight use case in which json objects are used as field values. For example, like the
kubernetes
andSources
field in the following emf log event:Since the api
metric.LabelsMap()
in https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/awsemfexporter/datapoint.go#L106 returns a key value string map, a json object like thiscan't be used directly. To work around the limitation, we stringify the json value and save it as string attribute value in receiver and then restore the original json in emf exporter.
Link to tracking Issue:
#2307
Testing:
Updated the unit tests.
Documentation:
Updated the readme to include the new config.