Експортери

Надсилайте телеметрію до 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.

Цей пакунок надає функції фабрики, які зчитують змінні середовища селектора експортера для вибору та ініціалізації відповідного експортера під час виконання:

ФункціяЗмінна середовищаОпис
NewSpanExporterOTEL_TRACES_EXPORTERСтворює експорт трасування
NewMetricReaderOTEL_METRICS_EXPORTERСтворює читача метрик
NewLogExporterOTEL_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),
	)
}

Повний перелік змінних середовища, що підтримуються 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


Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (091c99cf)