github.com/go-srvc/mods/metermod
go get github.com/go-srvc/mods/metermod@v1.0.2
README
metermod
metermod exports metrics to the otel endpoint and flushes buffers before the application exits. By default it also collects Go runtime metrics.
package main
import (
"fmt"
"net/http"
"os"
"github.com/go-srvc/mods/httpmod"
"github.com/go-srvc/mods/metermod"
"github.com/go-srvc/mods/sigmod"
"github.com/go-srvc/srvc"
)
func main() {
srvc.RunAndExit(
metermod.New(),
sigmod.New(os.Interrupt),
httpmod.New(
httpmod.WithAddr(":8080"),
httpmod.WithHandler(http.HandlerFunc(hello)),
),
)
}
func hello(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "ok")
}
Overview
Package metermod provides OpenTelemetry meter provider as a module.
Constants
const (
ErrMissingProvider = errStr("meter provider not set")
ErrFlushFailed = errStr("failed to flush remaining metrics")
)const ID = "metermod"Types
type Opt
type Opt func(*Provider) errortype Provider
type Provider struct {
// contains filtered or unexported fields
}func (*Provider) ID
func (p *Provider) ID() stringfunc (*Provider) Init
func (p *Provider) Init() errorfunc (*Provider) Run
func (p *Provider) Run() errorfunc (*Provider) Stop
func (p *Provider) Stop() errorExamples
ExampleNew
package main
import (
"github.com/go-srvc/mods/metermod"
"github.com/go-srvc/srvc"
)
func main() {
srvc.RunAndExit(
metermod.New(),
)
}