You need to enable JavaScript to run this app.
导航
Hertz接入
最近更新时间:2025.01.22 10:55:01首次发布时间:2025.01.22 10:55:01

Hertz 是一个 Golang 微服务 HTTP 框架,具有高易用性、高性能、高扩展性等特点。

通过OpenTelemetry接入

步骤一:初始化 Hertz

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())

    // ...

}

步骤二:数据上报

方式一:直接上报至 ApmPlus 服务端

  1. 获取数据上报地址 endpoint 以及鉴权信息 appKey

Image

  1. 设置环境变量并启动 Hertz 应用

变量名

描述

OTEL_SERVICE_NAME

服务名

OTEL_EXPORTER_OTLP_ENDPOINT

otel 链路、指标数据上报地址

OTEL_EXPORTER_OTLP_HEADERS

鉴权信息,格式如下:
OTEL_EXPORTER_OTLP_HEADERS=X-ByteAPM-AppKey={{appKey}}

方式二:Otel Collector 转发

APMPlusOpenTelemetryCollector是APMPlus基于OpenTelemetryCollector二次开发的数据采集器。您可以在集群中安装 Opentelemetry Collector 做数据转发

  1. 安装 vke-addon:APMPlusOpenTelemetryCollector
  • 选择即将部署应用的集群
  • 组件管理 > 监控 > apmplus-opentelemetry-collector

Image

  1. 设置环境变量启动 Hertz 应用

变量名

描述

OTEL_SERVICE_NAME

服务名

OTEL_EXPORTER_OTLP_ENDPOINT

otel 链路、指标数据上报地址