Exporters
Envie dados de telemetria para o OpenTelemetry Collector para garantir que estes dados sejam exportados corretamente. A utilização de um Collector em ambientes de produção é a melhor prática. Para visualizar os dados de telemetria que foram gerados, exporte-os para um backend como Jaeger, Zipkin, Prometheus, ou um backend específico de um fornecedor.
Exportadores disponíveis
O registro oferece uma lista de exportadores para Go.
Entre os exportadores, os exportadores do OpenTelemetry Protocol (OTLP) são projetados tendo em mente o modelo de dados do OpenTelemetry, emitindo dados OTel sem qualquer perda de informação. Além disso, muitas ferramentas que operam com dados de telemetria suportam o formato OTLP (como Prometheus, Jaeger e a maioria dos fornecedores), proporcionando um alto grau de flexibilidade quando necessário. Para saber mais sobre o OTLP, consulte a Especificação do OTLP.
Esta página reúne informações sobre os principais exportadores do OpenTelemetry Go e como configurá-los.
Console
O exportador do console é útil para tarefas de desenvolvimento e depuração, e é o mais simples de configurar.
Rastros no Console
O pacote
go.opentelemetry.io/otel/exporters/stdout/stdouttrace
possui uma implementação do Exporter de Rastros para o console.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
"go.opentelemetry.io/otel/sdk/trace"
)
func newExporter() (trace.SpanExporter, error) {
return stdouttrace.New()
}
Métricas no Console
O pacote
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric
possui uma implementação do Exporter de Métricas para o console.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"go.opentelemetry.io/otel/exporters/stdout/stdoutmetric"
"go.opentelemetry.io/otel/sdk/metric"
)
func newExporter() (metric.Exporter, error) {
return stdoutmetric.New()
}
Logs no Console (Experimental)
O pacote
go.opentelemetry.io/otel/exporters/stdout/stdoutlog
possui uma implementação do Exporter de Logs para o console.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"go.opentelemetry.io/otel/exporters/stdout/stdoutlog"
"go.opentelemetry.io/otel/sdk/log"
)
func newExporter() (log.Exporter, error) {
return stdoutlog.New()
}
OTLP
Para enviar dados de rastreamento para um endpoint OTLP (como o collector ou Jaeger >= v1.35.0), você precisará configurar um Exporter OTLP que envie os dados para o seu endpoint.
Rastros OTLP via HTTP
O pacote
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
possui uma implementação do Exporter de Rastros OTLP utilizando o protocolo HTTP
com payloads binários protobuf.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"context"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
"go.opentelemetry.io/otel/sdk/trace"
)
func newExporter(ctx context.Context) (trace.SpanExporter, error) {
return otlptracehttp.New(ctx)
}
Rastros OTLP via gRPC
O pacote
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
possui uma implementação do Exporter de Rastros OTLP utilizando o protocolo
gRPC.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"context"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/sdk/trace"
)
func newExporter(ctx context.Context) (trace.SpanExporter, error) {
return otlptracegrpc.New(ctx)
}
Jaeger
Para testar o exportador OTLP, a partir da versão v1.35.0 você pode executar o Jaeger como um endpoint OTLP e visualizar os rastros em um contêiner 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
Métricas OTLP via HTTP
O pacote
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
possui uma implementação do Exporter de Métricas OTLP utilizando o protocolo
HTTP com payloads binários protobuf.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"context"
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp"
"go.opentelemetry.io/otel/sdk/metric"
)
func newExporter(ctx context.Context) (metric.Exporter, error) {
return otlpmetrichttp.New(ctx)
}
Métricas OTLP via gRPC
O pacote
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
possui uma implementação do Exporter de Métricas OTLP utilizando o protocolo
gRPC.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"context"
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc"
"go.opentelemetry.io/otel/sdk/metric"
)
func newExporter(ctx context.Context) (metric.Exporter, error) {
return otlpmetricgrpc.New(ctx)
}
Prometheus (Experimental)
O Exporter do Prometheus é utilizado para reportar métricas através do scraping realizado pelo Prometheus em um endpoint HTTP.
O pacote
go.opentelemetry.io/otel/exporters/prometheus
possui uma implementação do Exporter de Métricas do Prometheus.
Por exemplo, aqui está como é possível criar um Exporter (que também é um leitor de métricas) com as configurações padrão:
import (
"context"
"go.opentelemetry.io/otel/exporters/prometheus"
"go.opentelemetry.io/otel/sdk/metric"
)
func newExporter(ctx context.Context) (metric.Reader, error) {
// prometheus.DefaultRegisterer é utilizado por padrão, de modo que
// as métricas fiquem disponíveis via promhttp.Handler.
return prometheus.New()
}
Para saber mais sobre como usar o Exporter do Prometheus, veja o exemplo do prometheus
Logs OTLP via HTTP (Experimental)
O pacote
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp
possui uma implementação do Exporter de Logs OTLP utilizando o protocolo HTTP
com payloads binários protobuf.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"context"
"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp"
"go.opentelemetry.io/otel/sdk/log"
)
func newExporter(ctx context.Context) (log.Exporter, error) {
return otlploghttp.New(ctx)
}
Logs OTLP via gRPC (Experimental)
O pacote
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc
possui uma implementação do Exporter de Logs OTLP utilizando o protocolo gRPC.
Por exemplo, aqui está como é possível criar um Exporter com as configurações padrão:
import (
"context"
"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc"
"go.opentelemetry.io/otel/sdk/log"
)
func newExporter(ctx context.Context) (log.Exporter, error) {
return otlploggrpc.New(ctx)
}
Feedback
Was this page helpful?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!