Перейти к содержанию

OpenTelemetry и Grafana


OpenTelemetry (OTel) — не проект внутри Grafana Labs. Это открытый стандарт всего индустрии для сбора и отправки телеметрии. Grafana Labs — один из главных контрибьюторов и поддерживает OTel на всех уровнях стека.

OTel унифицирует, как приложения рождают метрики, трейсы, логи. SDK OTel встраивается в ваш код (Java, Go, Python, .NET, Node.js, Rust, C++). Все данные поступают в Collector, который отдаёт их в Loki/Mimir/Tempo.


OTLP endpoint

OTLP (OpenTelemetry Protocol) — стандартный протокол передачи телеметрии. Grafana поддерживает нативный приём через OTLP-эндпоинт прямо на порте 4318 (HTTP) или 4317 (gRPC):

datasources:
  - name: OTel
    type: grafana-opentelemetry-datasource
    url: "http://otelcol:4317"

Приложение отправляет все данные через OTLP → otelcol → Loki, Mimir, Tempo.


Настройка OTel SDK (пример Go)

import (
  "go.opentelemetry.io/otel"
  "go.opentelemetry.io/otel/sdk/metric"
  "go.opentelemetry.io/otel/sdk/trace"
  "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp"
  "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
)

// Трейсы -> OTLP -> Tempo
traceExp, _ := otlptracehttp.New(
  context.Background(),
  otlptracehttp.WithEndpoint("tempo:4317"),
  otlptracehttp.WithInsecure(),
)

// Метрики -> OTLP -> Mimir через otelcol
metricExp, _ := otlpmetrichttp.New(
  context.Background(),
  otlpmetrichttp.WithEndpoint("otelcol:4318"),
  otlpmetrichttp.WithInsecure(),
)

Все три сигнала (traces, metrics, logs) уходят по одному протоколу к одному collector'у. Больше никаких eksport'еров.

Это стандарт. Когда вы перейдёте с self-hosted Grafana на Grafana Cloud или другого облачного провайдера Observability — приложение переписывать не нужно, только смените endpoint.


Correlation OTel → Loki

В OTel SDK можно указать, что trace_id выводится в атрибут логов (через OTEL_LOG_TRACE_ID_KEY). Тогда Loki связывает traceID с логами — стандартный flow Grafana = метрика (Mimir) → trace (Tempo) → log (Loki).



Далее: Kubernetes Monitoring