in image/resources/knfsd-fsidd/internal/metrics/provider.go [48:80]
func Start(ctx context.Context, cfg Config) Provider {
var err error = nil
if !cfg.Enabled {
return empty{}
}
res, err := resource.New(ctx,
resource.WithFromEnv(),
resource.WithHost(),
resource.WithTelemetrySDK(),
resource.WithAttributes(
semconv.ServiceName("knfsd-fsidd"),
),
)
if err != nil {
log.Warn.Printf("could not load all otel resources: %v", err)
}
exporter, err := newExporter(ctx, cfg)
if err != nil {
log.Warn.Printf("could not initialize metric exporter: %v", err)
return empty{}
}
reader := metric.NewPeriodicReader(exporter, metric.WithInterval(cfg.Interval))
provider := metric.NewMeterProvider(
metric.WithResource(res),
metric.WithReader(reader),
)
global.SetMeterProvider(provider)
return provider
}