AIX OpenTelemetry
AIX OpenTelemetry receives standard OTLP HTTP/gRPC data, including traces, metrics, and logs.
Configuration¶
OpenTelemetry is disabled by default:
[otel]
# Whether to enable the OpenTelemetry receiver.
enabled = false
# Concurrency and per-request converted-point limits.
max_concurrent_requests = 8
max_points_per_request = 50000
[otel.tags]
# Appended only to data received by OpenTelemetry.
# app_env = "prod"
[otel.self_monitor]
# Whether to report OpenTelemetry receiver self metrics.
enabled = true
interval = "30s"
[otel.http]
# Whether to enable the OTLP HTTP receiver.
enabled = false
addr = "127.0.0.1:4318"
# Custom OTLP HTTP paths. Standard /v1/traces, /v1/metrics, and /v1/logs are also supported.
trace_path = "/otel/v1/traces"
metric_path = "/otel/v1/metrics"
log_path = "/otel/v1/logs"
# Maximum HTTP request body size in bytes.
max_body_size = 16777216
read_timeout = "10s"
write_timeout = "30s"
[otel.grpc]
# Whether to enable the OTLP gRPC receiver.
enabled = false
addr = "127.0.0.1:4317"
# Maximum gRPC payload size in bytes.
max_payload = 16777216
HTTP supports both the configured /otel/v1/* paths and the standard OTLP HTTP paths /v1/traces, /v1/metrics, and /v1/logs.
Endpoints¶
| Type | Address |
|---|---|
| HTTP traces | http://<host>:4318/v1/traces |
| HTTP metrics | http://<host>:4318/v1/metrics |
| HTTP logs | http://<host>:4318/v1/logs |
| gRPC | <host>:4317 |
HTTP listens on 127.0.0.1:4318 by default, and gRPC listens on 127.0.0.1:4317 by default. For remote access, change the listen address to 0.0.0.0 and make sure the corresponding ports are allowed by network policy.
Metrics, Objects, and Logs¶
After receiving OpenTelemetry data, DataKit writes each data type to the corresponding DataWay category:
| OpenTelemetry Type | DataWay Category | Description |
|---|---|---|
| traces | /v1/write/tracing |
The measurement is opentelemetry. |
| metrics | /v1/write/metric |
The measurement is otel_service. |
| logs | /v1/write/logging |
The measurement uses log.source, service.name, or the default log source. |
Traces are written to opentelemetry. Common fields include trace_id, span_id, parent_id, resource, duration, and message; common tags include service, status, span_kind, span_type, and source_type.
metrics are written to otel_service. The metric name is used as the field name; resource, scope, and datapoint attributes are converted to tags, and . in attribute names is converted to _.
Log source precedence is log.source, service.name, then the default source otel_logs. The log body is written to the message field, and trace_id and span_id are preserved as fields.
Self Metrics¶
datakitaix_otel_receiver¶
After enabling OpenTelemetry, [otel.self_monitor] controls whether receiver self metrics are reported and the reporting interval.
| Tags & Fields | Description |
|---|---|
| host ( tag) |
Hostname. |
| receiver ( tag) |
Fixed to otel. |
| requests | Number of processed requests. Type: int | (count) Unit: count |
| points | Number of converted points. Type: int | (count) Unit: count |
| parse_errors | Number of parse errors. Type: int | (count) Unit: count |
| upload_errors | Number of upload errors. Type: int | (count) Unit: count |
| spool_success | Number of successful spool writes. Type: int | (count) Unit: count |
| spool_errors | Number of spool write failures. Type: int | (count) Unit: count |
| rejected_requests | Number of requests rejected by rate limiting or size limits. Type: int | (count) Unit: count |