echo-contrib icon indicating copy to clipboard operation
echo-contrib copied to clipboard

Support Open-Telemetry middleware in contrib

Open n9te9 opened this issue 8 months ago • 0 comments

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)
  // ...
}

n9te9 avatar Jun 12 '25 02:06 n9te9