49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
![]() |
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()
|
||
|
}
|