telemetry名称

This commit is contained in:
Jerry Yan 2025-04-13 11:45:37 +08:00
parent 3d989c2f47
commit 4f47689253

View File

@ -4,10 +4,12 @@ import (
"context"
"errors"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/sdk/resource"
"go.opentelemetry.io/otel/sdk/trace"
"time"
semconv "go.opentelemetry.io/otel/semconv/v1.30.0"
)
func InitTelemetry(ctx context.Context) (shutdown func(context.Context) error, err error) {
@ -55,15 +57,28 @@ func newPropagator() propagation.TextMapPropagator {
func newJaegerTraceProvider(ctx context.Context) (*trace.TracerProvider, error) {
// 创建一个使用 HTTP 协议连接本机Jaeger的 Exporter
traceExporter, err := otlptracehttp.New(ctx,
otlptracehttp.WithEndpointURL("https://oltp.jerryyan.top/v1/traces"))
res, err := resource.New(ctx,
resource.WithFromEnv(),
resource.WithProcess(),
resource.WithTelemetrySDK(),
resource.WithHost(),
resource.WithAttributes(
// 在可观测链路 OpenTelemetry 版后端显示的服务名称。
semconv.ServiceNameKey.String("VPT"),
),
)
if err != nil {
return nil, err
}
traceProvider := trace.NewTracerProvider(
trace.WithBatcher(traceExporter,
// 默认为 5s。为便于演示设置为 1s。
trace.WithBatchTimeout(time.Second)),
traceClientHttp := otlptracehttp.NewClient(
otlptracehttp.WithEndpointURL("https://oltp.jerryyan.top/v1/traces"))
otlptracehttp.WithCompression(1)
traceExp, err := otlptrace.New(ctx, traceClientHttp)
bsp := trace.NewBatchSpanProcessor(traceExp)
tracerProvider := trace.NewTracerProvider(
trace.WithSampler(trace.AlwaysSample()),
trace.WithResource(res),
trace.WithSpanProcessor(bsp),
)
return traceProvider, nil
return tracerProvider, nil
}