otelbeego

package module
v0.15.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2020 License: Apache-2.0 Imports: 10 Imported by: 7

Documentation

Overview

Package otelbeego instruments the github.com/astaxie/beego package.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewOTelBeegoMiddleWare

func NewOTelBeegoMiddleWare(service string, options ...Option) beego.MiddleWare

NewOTelBeegoMiddleWare creates a MiddleWare that provides OpenTelemetry tracing and metrics to a Beego web app. Parameter service should describe the name of the (virtual) server handling the request. The OTelBeegoMiddleWare can be configured using the provided Options.

func Render

func Render(c *beego.Controller) error

Render traces beego.Controller.Render. Use this function if you want to add a child span for the rendering of a template file. Disable autorender before use, and call this function explicitly.

Example
package main

import (
	"github.com/astaxie/beego"
)

type ExampleController struct {
	beego.Controller
}

func (c *ExampleController) Get() {
	// name of the template in the views directory
	c.TplName = "index.tpl"

	// explicit call to Render
	if err := Render(&c.Controller); err != nil {
		c.Abort("500")
	}
}

func main() {
	//  Init the trace and meter provider

	// Disable autorender
	beego.BConfig.WebConfig.AutoRender = false

	// Create routes
	beego.Router("/", &ExampleController{})

	// Create the middleware
	mware := NewOTelBeegoMiddleWare("exampe-server")

	// Start the server using the OTel middleware
	beego.RunWithMiddleWares(":7777", mware)
}
Output:

func RenderBytes

func RenderBytes(c *beego.Controller) ([]byte, error)

RenderBytes traces beego.Controller.RenderBytes. Use this function if you want to add a child span for the rendering of a template file to its byte representation. Disable autorender before use, and call this function explicitly.

func RenderString

func RenderString(c *beego.Controller) (string, error)

RenderString traces beego.Controller.RenderString. Use this function if you want to add a child span for the rendering of a template file to its string representation. Disable autorender before use, and call this function explicitly.

func Template

func Template(name string) label.KeyValue

Template returns the template name as a KeyValue pair.

Types

type Filter

type Filter func(*http.Request) bool

Filter returns true if the request should be traced.

type Handler

type Handler struct {
	http.Handler
}

OTelBeegoHandler implements the http.Handler interface and provides trace and metrics to beego web apps.

func (*Handler) ServeHTTP

func (o *Handler) ServeHTTP(rr http.ResponseWriter, req *http.Request)

ServerHTTP calls the configured handler to serve HTTP for req to rr.

type Option

type Option interface {
	Apply(*config)
}

Option applies a configuration to the given config.

func WithMeterProvider

func WithMeterProvider(provider metric.MeterProvider) Option

WithMeterProvider specifies a meter provider to use for creating a meter. If none is specified, the global provider is used.

func WithTracerProvider

func WithTracerProvider(provider trace.TracerProvider) Option

WithTracerProvider specifies a tracer provider to use for creating a tracer. If none is specified, the global provider is used.

type OptionFunc

type OptionFunc func(c *config)

OptionFunc is a function type that applies a particular configuration to the beego middleware in question.

func WithFilter

func WithFilter(f Filter) OptionFunc

WithFilter adds the given filter for use in the middleware. Defaults to no filters.

func WithPropagators

func WithPropagators(propagators propagation.TextMapPropagator) OptionFunc

WithPropagators sets the propagators used in the middleware. Defaults to global.Propagators().

func WithSpanNameFormatter

func WithSpanNameFormatter(f SpanNameFormatter) OptionFunc

WithSpanNameFormatter sets the formatter to be used to format span names. Defaults to the path template.

func (OptionFunc) Apply

func (o OptionFunc) Apply(c *config)

Apply will apply the option to the config, c.

type SpanNameFormatter

type SpanNameFormatter func(operation string, req *http.Request) string

SpanNameFormatter creates a custom span name from the operation and request object.

Directories

Path Synopsis
example module
test module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL