loic-go/main.go

49 lines
1.2 KiB
Go
Raw Normal View History

2025-03-25 16:53:35 +00:00
package main
import (
"context"
"forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/Daniel.Sy/loic-go/cmd"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/stdout/stdoutmetric"
"go.opentelemetry.io/otel/sdk/metric"
"go.opentelemetry.io/otel/sdk/resource"
semconv "go.opentelemetry.io/otel/semconv/v1.17.0"
"log"
"time"
)
func main() {
// Ressource definieren
res, err := resource.New(context.Background(),
resource.WithAttributes(
semconv.ServiceNameKey.String("loic"),
semconv.ServiceVersionKey.String("0.1.0"),
),
)
if err != nil {
log.Fatalf("failed to create resource: %v", err)
}
// Exporter erstellen (stdout für Tests)
exporter, err := stdoutmetric.New()
if err != nil {
log.Fatalf("failed to create stdout exporter: %v", err)
}
// Periodic Reader erstellen
reader := metric.NewPeriodicReader(exporter, metric.WithInterval(10*time.Second))
// MeterProvider initialisieren
meterProvider := metric.NewMeterProvider(
metric.WithResource(res),
metric.WithReader(reader),
)
defer meterProvider.Shutdown(context.Background())
// Globalen MeterProvider setzen
otel.SetMeterProvider(meterProvider)
// CLI ausführen
cmd.Execute()
}