-
Notifications
You must be signed in to change notification settings - Fork 98
Open
Description
Abstract / Background
Microservice architecture is often required integrated observability.
Open-Telemetry is attracted attention one of the integrated observability method.
What
- Support open-telemetry middleware in echo-contrib
Example
I suppose below echo-contrib API.
import (
"go.opentelemetry.io/otel/trace"
"github.com/labstack/echo-contrib/otelecho"
)
func newTracerProvider() (*sdktrace.TracerProvider, error) {
exp, err := stdouttrace.New(stdouttrace.WithPrettyPrint())
if err != nil {
return nil, err
}
tp := sdktrace.NewTracerProvider(
sdktrace.WithBatcher(exp),
sdktrace.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceName("echo-service"),
)),
)
return tp, nil
}
func main() {
tp, err := newTracerProvider()
if err != nil {
log.Fatalf("failed to create tracer provider: %v", err)
}
otelMiddleware := otelecho.Middleware("echo-service", otelecho.WithTraceProvider(tp))
e := echo.New()
e.Use(otelMiddleware)
// ...
}
Metadata
Metadata
Assignees
Labels
No labels