Hertz 是一个 Golang 微服务 HTTP 框架,具有高易用性、高性能、高扩展性等特点。
Hertz 以中间件的方式,集成 opentelemetry sdk,可以生成、上报链路和指标数据。
import ( // ... "github.com/hertz-contrib/obs-opentelemetry/provider" hertztracing "github.com/hertz-contrib/obs-opentelemetry/tracing" ) func main() { p := provider.NewOpenTelemetryProvider( provider.WithInsecure(), ) defer p.Shutdown(context.Background()) tracer, cfg := hertztracing.NewServerTracer() h := server.Default(tracer) h.Use(hertztracing.ServerMiddleware(cfg)) // ... h.Spin() }
import ( // ... "github.com/hertz-contrib/obs-opentelemetry/provider" hertztracing "github.com/hertz-contrib/obs-opentelemetry/tracing" ) func main(){ serviceName := "echo-client" p := provider.NewOpenTelemetryProvider( provider.WithInsecure(), ) defer p.Shutdown(context.Background()) c, _ := client.NewClient() c.Use(hertztracing.ClientMiddleware()) // ... }
变量名 | 描述 |
---|---|
OTEL_SERVICE_NAME | 服务名 |
OTEL_EXPORTER_OTLP_ENDPOINT | otel 链路、指标数据上报地址 |
OTEL_EXPORTER_OTLP_HEADERS | 鉴权信息,格式如下: |
APMPlusOpenTelemetryCollector是APMPlus基于OpenTelemetryCollector二次开发的数据采集器。您可以在集群中安装 Opentelemetry Collector 做数据转发
变量名 | 描述 |
---|---|
OTEL_SERVICE_NAME | 服务名 |
OTEL_EXPORTER_OTLP_ENDPOINT | otel 链路、指标数据上报地址 |