Експортери
Надсилайте телеметрію до OpenTelemetry Collector, щоб переконатися, що вона експортується правильно. Використання Collector у виробничих середовищах є найкращою практикою. Щоб візуалізувати вашу телеметрію, експортуйте її до бекенду, такого як Jaeger, Zipkin, Prometheus або бекенд, специфічний для постачальника.
Доступні експортери
Реєстр містить список експортерів для Go.
Серед експортерів, експортери OpenTelemetry Protocol (OTLP) розроблені з урахуванням моделі даних OpenTelemetry, що передають дані OTel без втрати інформації. Крім того, багато інструментів, які працюють з телеметричними даними, підтримують OTLP (таких як Prometheus, Jaeger і більшість постачальників), надаючи вам високий ступінь гнучкості, коли це потрібно. Щоб дізнатися більше про OTLP, дивіться Специфікацію OTLP.
Ця сторінка охоплює основні експортери OpenTelemetry Go та як їх налаштувати.
Автоматична конфігурація експортера за допомогою змінних середовища
Ви можете використовувати пакунок go.opentelemetry.io/contrib/exporters/autoexport для автоматичної конфігурації експортерів за допомогою стандартних змінних середовища OpenTelemetry.
Цей пакунок надає функції фабрики, які зчитують змінні середовища селектора експортера для вибору та ініціалізації відповідного експортера під час виконання:
| Функція | Змінна середовища | Опис |
|---|---|---|
NewSpanExporter | OTEL_TRACES_EXPORTER | Створює експорт трасування |
NewMetricReader | OTEL_METRICS_EXPORTER | Створює читача метрик |
NewLogExporter | OTEL_LOGS_EXPORTER | Створює експорт журналів |
Підтримувані значення для змінних селектора — otlp (стандартно) та none. Для OTEL_METRICS_EXPORTER також підтримується prometheus. Після вибору експортера його конфігурація (точка доступу, заголовки, час очікування, протокол тощо) зчитується з стандартних змінних середовища експортера OTLP базовим пакунком експорту OTLP.
Приклад використання:
import (
"context"
"go.opentelemetry.io/contrib/exporters/autoexport"
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
)
func main() {
ctx := context.Background()
// Створити експортер трасування за допомогою змінних середовища
spanExporter, err := autoexport.NewSpanExporter(ctx)
if err != nil {
// обробка помилок
}
// Створити постачальника трасування з експортером
tracerProvider := sdktrace.NewTracerProvider(
sdktrace.WithBatcher(spanExporter),
)
// Створити читача метрик за допомогою змінних середовища
metricReader, err := autoexport.NewMetricReader(ctx)
if err != nil {
// обробка помилок
}
// Створити постачальника метрик з читачем
meterProvider := sdkmetric.NewMeterProvider(
sdkmetric.WithReader(metricReader),
)
}
Стандартні пакунки експортера OTLP (otlptracegrpc, otlptracehttp тощо) вже читають більшість змінних середовища OTLP, таких як OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_HEADERS, OTEL_EXPORTER_OTLP_TIMEOUT та OTEL_EXPORTER_OTLP_COMPRESSION.
Пакунок autoexport додає підтримку змінних селектора експортера (OTEL_TRACES_EXPORTER, OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER), які вибирають, яку реалізацію експортера використовувати. Це розділення дозволяє зменшити розмір бінарних файлів, оскільки залежності експортера (наприклад, gRPC) не обʼєднуються, якщо їх явно не імпортувати.
Також зверніть увагу, що OTEL_SDK_DISABLED наразі не підтримується Go SDK.
Повний перелік змінних середовища, що підтримуються Go SDK та пакунками contrib, див. у матриці відповідності специфікаціям OpenTelemetry.
Консоль
Консольний експортер корисний для розробки та налагодження, і є найпростішим у налаштуванні.
Консольні трасування
Пакунок go.opentelemetry.io/otel/exporters/stdout/stdouttrace містить реалізацію консольного експортера трасування.
Консольні метрики
Пакунок go.opentelemetry.io/otel/exporters/stdout/stdoutmetric містить реалізацію консольного експортера метрик.
Консольні логи (Експериментально)
Пакунок go.opentelemetry.io/otel/exporters/stdout/stdoutlog містить реалізацію консольного експортера логів.
OTLP
Щоб відправити дані трасування на точку доступу OTLP (наприклад, колектор або Jaeger >= v1.35.0), вам потрібно налаштувати OTLP експортер, який відправляє дані на вашу точку доступу.
OTLP трасування через HTTP
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp містить реалізацію OTLP експортера трасування з використанням HTTP з бінарними protobuf навантаженнями.
OTLP трасування через gRPC
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc містить реалізацію OTLP експортера трасування з використанням gRPC.
Jaeger
Щоб спробувати OTLP експортер, з версії v1.35.0 ви можете запустити Jaeger як точку доступу OTLP для візуалізації трасування в Docker контейнері:
docker run -d --name jaeger \
-e COLLECTOR_OTLP_ENABLED=true \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
jaegertracing/all-in-one:latest
OTLP метрики через HTTP
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp містить реалізацію OTLP експортера метрик з використанням HTTP з бінарними protobuf навантаженнями.
OTLP метрики через gRPC
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc містить реалізацію OTLP експортера метрик з використанням gRPC.
OTLP логи через HTTP (Експериментально)
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp містить реалізацію експортера журналів OTLP за допомогою HTTP з двійковим корисним навантаженням protobuf.
OTLP логи через gRPC (Експериментально)
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc містить реалізацію експортера журналів OTLP з використанням gRPC.
Prometheus (Експериментально)
Експортер Prometheus використовується для звітування метрик через HTTP кінцеву точку збору Prometheus.
go.opentelemetry.io/otel/exporters/prometheus містить реалізацію експортера метрик Prometheus.
Щоб дізнатися більше про використання експортера Prometheus, спробуйте приклад prometheus
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!