When ingesting OpenTelemetry logs, the following transformation rules and ingestion limitations apply.
Dynatrace supports OpenTelemetry data types as described in the sections below.
Scalar values are transformed as such:
Logs on Grail with OpenPipeline custom processing (Dynatrace SaaS version 1.295+, Environment ActiveGate version 1.295+): All JSON data types (string, number, boolean, null) are supported. All attributes can be used in queries. Keys are case-sensitive.
Logs on Grail with OpenPipeline routed to Classic Pipeline: All attribute keys are lowercased and all attribute values are stringified. All attributes can be used in queries.
Log Monitoring Classic: All attribute keys are lowercased and all attribute values are stringified. Custom attributes and semantic attributes can generally be used in queries.
Byte arrays are converted to base64-encoded strings. For example, the following array
[0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64]
is transformed and ingested as aGVsbG8gd29yZA==.
Array attribute values are converted to arrays of a uniform type. The target type is chosen according to the following rules:
Maps are ingested by extracting their keys recursively and storing the values as separate attributes, with names reflecting their position in the map hierarchy and prefixed with the map name.
For example, this attribute map planet:
{"name": "earth""system" : {"name": "solar","galaxy": {"name": "milky way","group": {"name": "local"}}}}
would be flattened into four attributes:
"planet.name": "earth""planet.system.name": "solar""planet.system.galaxy.name": "milky way""planet.system.galaxy.group.name": "local"
Any arrays are ingested as lists, with values being transformed as arraysA number of attribute names are automatically recognized by Dynatrace and mapped to the respective Dynatrace log fields.
For example, if you provide an attribute Timestamp, its value is automatically parsed as the date and time for that log record.
For a full list of attributes and their names, see "Supported semantic attribute keys" at Log Monitoring API v2 - POST ingest logs.
OpenTelemetry supports attributes at different levels in an OpenTelemetry log request, such as the resource level, scope level, and record level.