Categorygithub.com/rongduan-zhu/opentelemetry-collector-azuremonitor

# README

Azure Monitor Exporter

This exporter sends trace data to Azure Monitor.

Configuration

The following settings are required:

  • instrumentation_key (no default): Application Insights instrumentation key, which can be found in the Application Insights resource in the Azure Portal.

The following settings can be optionally configured:

  • endpoint (default = "https://dc.services.visualstudio.com/v2/track"): The endpoint URL where data will be submitted.
  • maxbatchsize (default = 1024): The maximum number of telemetry items that can be submitted in each request. If this many items are buffered, the buffer will be flushed before maxbatchinterval expires.
  • maxbatchinterval (default = 10s): The maximum time to wait before sending a batch of telemetry.
  • shutdown_timeout (default = 5s): The maximum time to wait to flush any remaining telemetry before giving up and shutting down.

Example:

exporters:
  azuremonitor:
    instrumentation_key: b1cd0778-85fc-4677-a3fa-79d3c23e0efd

Attribute mapping

This exporter maps OpenTelemetry trace data to Application Insights data model using the following schema.

The OpenTelemetry SpanKind determines the Application Insights telemetry type.

OpenTelemetry SpanKindApplication Insights telemetry type
CLIENT, PRODUCER, INTERNALDependency
SERVER, CONSUMERRequest

The exporter follows the semantic conventions to fill the Application Insights specific telemetry properties. The following table shows a basic mapping.

Application Insights propertyOpenTelemetry attributeDefault
Request.Namehttp.method, http.route or rpc.systemspan name
Request.Urlhttp.scheme, http.host, http.target
Request.Sourcehttp.client_ip or net.peer.name
Request.ResponseCodehttp.status_code or status_code"0"
Request.Successhttp.status_code or status_codetrue
Dependency.Namehttp.method, http.routespan name
Dependency.Datahttp.url or span name or db.statement
Dependency.Type"HTTP" or rpc.system or db.system or "InProc"
Dependency.Targethost of http.url or net.peer.name
Dependency.ResultCodehttp.status_code or status_code"0"
Dependency.Successhttp.status_code or status_codetrue

The exact mapping can be found here.

All attributes are also mapped to custom properties if they are booleans or strings and to custom measurements if they are ints or doubles.