Azuredataexplorer Exporter
contrib
Maintainers: @ag-ramachandran
Source: opentelemetry-collector-contrib
Supported Telemetry
Overview
This exporter sends metrics, logs and trace data to Azure Data Explorer, Azure Synapse Data Explorer and Real time analytics in FabricConfiguration
The following settings are required:cluster_uri(no default): The cluster name of the provisioned ADX cluster to ingest the data.
- Service principal:
application_id(no default): The client id to connect to the cluster and ingest data.application_key(no default): The cluster secret corresponding to the client id.tenant_id(no default): The tenant id where the application_id is referenced from.
- Managed identity:
managed_identity_id(no default): The managed identity id to authenticate with. Set to “system” for system-assigned managed identity. Set the MI client ID (GUID) for user-assigned managed identity.
- Default authentication:
use_azure_auth(default: false): Set to true to use the Azure default authentication.
Note that the database tables are expected to be created upfront before the exporter is in operation , the definition of these are in the section Database and Table definition scripts
-
db_name(default = “oteldb”): The ADX database where the tables are present to ingest the data. -
metrics_table_name(default = OTELMetrics): The target table in the databasedb_namethat stores exported metric data. -
logs_table_name(default = OTELLogs): The target table in the databasedb_namethat stores exported logs data. -
traces_table_name(default = OTELTraces): The target table in the databasedb_namethat stores exported traces data. Optionally the following table mappings can be specified if the data needs to be mapped to a different table on ADX. This uses json table mapping that can be used to map attributes to target tables -
metrics_table_json_mapping(optional, no default): The table mapping name to be used for the tabledb_name.metrics_table_name -
logs_table_json_mapping(optional, no default): The table mapping name to be used for the tabledb_name.logs_table_name -
traces_table_json_mapping(optional, no default): The table mapping name to be used for the tabledb_name.traces_table_name -
ingestion_type(possible values=queued/managed, default = queued): ADX ingest can happen in managed streaming or queued modes.
Note: Streaming ingestion has to be enabled on ADX [configure the ADX cluster] in case of streaming option. Refer the query below to check if streaming is enabled
Attribute mapping
This exporter maps OpenTelemetry trace, metric and log attributes to specific structures in the ADX tables. These can then be extended by usage of update policies in ADX if neededTraces
| ADX Table column | Description / OpenTelemetry attribute |
|---|---|
| TraceId | A valid trace identifier is a 16-byte array with at least one non-zero byte. |
| SpanId | A valid span identifier is an 8-byte array with at least one non-zero byte. |
| ParentId | A parent spanId, for the current span |
| SpanName | The span name |
| SpanStatus | Status Code of the Span. |
| SpanStatusMessage | Status Message of the Span |
| SpanKind | SpanKind describes the relationship between the Span, its parents, and its children in a Trace |
| StartTime | A start timestamp |
| EndTime | An end timestamp |
| TraceAttributes | Custom metric attributes set from the application. Also contains the instrumentation scope name and version |
| ResourceAttributes | The resource attributes JSON map as specified in open telemetry resource semantics |
| Events | A list of timestamped Events |
| Links | A list of Links to other Spans |
Metrics
| ADX Table column | Description / OpenTelemetry attribute |
|---|---|
| Timestamp | The timestamp of the datapoint |
| MetricName | The name of the datapoint |
| MetricType | The type / datapoint type of the metric (e.g. Sum, Histogram, Gauge etc.) |
| MetricUnit | Unit of measure of the metric |
| MetricDescription | Description about the metric |
| MetricValue | The metric value measured for the datapoint |
| MetricAttributes | Custom metric attributes set from the application. Also contains the instrumentation scope name and version |
| Host | The host.name extracted from Host resource semantics. If empty , the hostname of the exporter is used |
| ResourceAttributes | The resource attributes JSON map as specified in open telemetry resource semantics |
Logs
| ADX Table column | Description / OpenTelemetry attribute |
|---|---|
| Timestamp | The timestamp of the datapoint |
| ObservedTimestamp | Time when the event was observed. |
| TraceId | Request trace id. |
| SpanId | Request span id. |
| SeverityText | The severity text (also known as log level) |
| SeverityNumber | Numerical value of the severity. |
| Body | The body of the log record. |
| LogsAttributes | Custom metric attributes set from the application. Also contains the instrumentation scope name and version |
| ResourceAttributes | The resource attributes JSON map as specified in open telemetry resource semantics |
Database and Table definition scripts
The following tables need to be created in the database specified in the configuration.Optional configurations/Enhancements suggestions
- Using update policies , the collected data can further be processed as per application need. The following is an example where histogram metrics are exported to a histo specific table (buckets and aggregates)
OpenTelemetry Exporter Helper Configurations
The ADX exporter now includes support for OpenTelemetry exporter helper configurations. This feature allows you to leverage the exporter helper capabilities(retries, timeout etc.) provided natively by Otel. Read more about the exporterhelper. Please note that this configuration is not enabled by default. To utilize the OpenTelemetry exporter helper, you will need to add it manually to the configuration.Example Configuration
Last generated: 2026-04-13