go-jarvis / rum-gonic

a gin based RESTful web framework, inspired by cobra
MIT License
0 stars 0 forks source link

ADD OpenTelemetry Trace Support #25

Closed tangx closed 1 year ago

tangx commented 1 year ago

ADD OpenTelemetry Trace Support

OpenTelemetry Registry

  1. https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation
  2. https://opentelemetry.io/registry

Gin support

https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/github.com/gin-gonic/gin

tangx commented 1 year ago

Add Otelgin Support

import otelgin as an embeded middleware

middleware

// pkg/otelrum

func Middleware(appname string, opts ...otelgin.Option) server.HandlerFunc {
    return func(ctx *gin.Context) {
        otelgin.Middleware(appname, opts...)
    }
}

Usage

import (
    "github.com/go-jarvis/rum-gonic/pkg/otelrum"
)

func main() {
    appname := `my-rum-server-example`

    e := server.Default()

    // e.Use(otelgin.Middleware("my-rum-server-example"))
    e.Use(otelrum.Middleware(appname))

    e.AddRouter(api.RootApp)
    if err := e.Run(":8081"); err != nil {
        panic(err)
    }
}
tangx commented 1 year ago

add otelgin middleware