Add RetryConfig for OtelTracer
All checks were successful
Server Check Build (NixCN CMS) TeamCity build finished

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2026-02-19 12:00:45 +08:00
parent 79fbbd1862
commit 37f06fe98a

View File

@@ -34,10 +34,22 @@ func Init(ctx context.Context) func(context.Context) error {
slog.Error("[OTEL] Failed to create resource", "err", err)
}
traceExporter, _ := otlptracegrpc.New(ctx,
retryConfig := otlptracegrpc.RetryConfig{
Enabled: true,
InitialInterval: 1 * time.Second,
MaxInterval: 10 * time.Second,
}
// Trace Exporter
traceExporter, err := otlptracegrpc.New(ctx,
otlptracegrpc.WithEndpoint(endpoint),
otlptracegrpc.WithInsecure(),
otlptracegrpc.WithRetry(retryConfig),
)
if err != nil {
slog.Error("[OTEL] Failed to create trace exporter", "err", err)
}
tp := sdktrace.NewTracerProvider(
sdktrace.WithBatcher(traceExporter),
sdktrace.WithResource(res),
@@ -45,10 +57,16 @@ func Init(ctx context.Context) func(context.Context) error {
)
otel.SetTracerProvider(tp)
metricExporter, _ := otlpmetricgrpc.New(ctx,
// Metric Exporter
metricExporter, err := otlpmetricgrpc.New(ctx,
otlpmetricgrpc.WithEndpoint(endpoint),
otlpmetricgrpc.WithInsecure(),
otlpmetricgrpc.WithRetry(otlpmetricgrpc.RetryConfig(retryConfig)),
)
if err != nil {
slog.Error("[OTEL] Failed to create metric exporter", "err", err)
}
mp := sdkmetric.NewMeterProvider(
sdkmetric.WithResource(res),
sdkmetric.WithReader(sdkmetric.NewPeriodicReader(metricExporter,
@@ -56,10 +74,16 @@ func Init(ctx context.Context) func(context.Context) error {
)
otel.SetMeterProvider(mp)
logExporter, _ := otlploggrpc.New(ctx,
// Log Exporter
logExporter, err := otlploggrpc.New(ctx,
otlploggrpc.WithEndpoint(endpoint),
otlploggrpc.WithInsecure(),
otlploggrpc.WithRetry(otlploggrpc.RetryConfig(retryConfig)),
)
if err != nil {
slog.Error("[OTEL] Failed to create log exporter", "err", err)
}
lp := sdklog.NewLoggerProvider(
sdklog.WithResource(res),
sdklog.WithProcessor(sdklog.NewBatchProcessor(logExporter)),