Skip to content

OpenTelemetry trace middleware for Fiber that adds traces to requests.

License

Notifications You must be signed in to change notification settings

hyperon-team/fiber-opentelemetry

This branch is 4 commits ahead of, 43 commits behind psmarcin/fiber-opentelemetry:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c19b85b · Aug 29, 2021

History

34 Commits
Jul 24, 2021
Aug 26, 2021
Aug 29, 2021
Nov 18, 2020
Dec 26, 2020
Aug 25, 2021
Aug 23, 2021
Aug 26, 2021
Aug 26, 2021
Jul 23, 2021

Repository files navigation

Fiber OpenTelemetry

OpenTelemetry trace middleware for Fiber that adds traces to requests.

Table of Contents

Signatures

func New(config ...Config) fiber.Handler

Examples

Import the middleware package that is part of the Fiber web framework

import (
    "github.com/gofiber/fiber/v2"
    "go.opentelemetry.io/otel/api/trace"
    "go.opentelemetry.io/otel/label"
    fiberOpentelemetry "github.com/psmarcin/fiber-opentelemetry"
)

After you initiate your Fiber app, you can use the following possibilities:

// Default middleware config
tracer := trace.NoopTracerProvider().Tracer("test")
app.Use(fiberOpentelemetry.New(fiberOpentelemetry.Config{
    Tracer: trace,
}))

app.Get("/", func(ctx *fiber.Ctx) error {
    c := fiber_opentelemetry.FromCtx(ctx)
    
    ctx, span := tracer.Start(ctx, "trace-name")
    defer span.End()
    
    // attribute
    span.SetAttributes(label.String("attribute-name", "123"))
	
    // error
    span.RecordError(ctx, err)
    
    // event
    span.AddEvent(ctx, "event-name")
})

Config

// Config defines the config for middleware.
type Config struct {
    Tracer                trace.Tracer
    TracerStartAttributes []trace.SpanStartOption
    SpanName              string
    LocalKeyName          string
}

Default Config

var ConfigDefault = Config{
    SpanName:     "http/request",
    LocalKeyName: LocalsCtxKey,
    TracerStartAttributes: []trace.SpanStartOption{
        trace.WithSpanKind(trace.SpanKindServer),
        trace.WithNewRoot(),
        trace.WithRecord(),
    },
}

About

OpenTelemetry trace middleware for Fiber that adds traces to requests.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%