Documentation
¶
Overview ¶
Package ginprom is a library to instrument a gin server and expose a /metrics endpoint for Prometheus to scrape, keeping a low cardinality by preserving the path parameters name in the prometheus label
Index ¶
- func Engine(e *gin.Engine) func(*Prometheus)
- func Ignore(paths ...string) func(*Prometheus)
- func Namespace(ns string) func(*Prometheus)
- func Path(path string) func(*Prometheus)
- func Subsystem(sub string) func(*Prometheus)
- func Token(token string) func(*Prometheus)
- type Prometheus
- func (p *Prometheus) AddCustomGauge(name, help string, labels []string)
- func (p *Prometheus) DecrementGaugeValue(name string, labelValues []string) error
- func (p *Prometheus) IncrementGaugeValue(name string, labelValues []string) error
- func (p *Prometheus) Instrument() gin.HandlerFunc
- func (p *Prometheus) SetGaugeValue(name string, labelValues []string, value float64) error
- func (p *Prometheus) Use(e *gin.Engine)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Engine ¶
func Engine(e *gin.Engine) func(*Prometheus)
Engine is an option allowing to set the gin engine when intializing with New. Example : r := gin.Default() p := ginprom.New(Engine(r))
func Ignore ¶
func Ignore(paths ...string) func(*Prometheus)
Ignore is used to disable instrumentation on some routes
func Namespace ¶ added in v1.1.0
func Namespace(ns string) func(*Prometheus)
Namespace is an option allowing to set the namespace when intitializing with New
func Path ¶
func Path(path string) func(*Prometheus)
Path is an option allowing to set the metrics path when intializing with New
Example ¶
Set the path (endpoint) where the metrics will be served
r := gin.New()
p := New(Engine(r), Path("/metrics"))
r.Use(p.Instrument())
func Subsystem ¶
func Subsystem(sub string) func(*Prometheus)
Subsystem is an option allowing to set the subsystem when intitializing with New
func Token ¶ added in v1.2.0
func Token(token string) func(*Prometheus)
Token is an option allowing to set the bearer token in prometheus with New. Example : ginprom.New(ginprom.Token("your_custom_token"))
Example ¶
Set a secret token that is required to access the endpoint
r := gin.New()
p := New(Engine(r), Token("supersecrettoken"))
r.Use(p.Instrument())
Types ¶
type Prometheus ¶
type Prometheus struct {
MetricsPath string
Namespace string
Subsystem string
Token string
Ignored pmapb
Engine *gin.Engine
PathMap pmap
// contains filtered or unexported fields
}
Prometheus contains the metrics gathered by the instance and its path
func New ¶
func New(options ...func(*Prometheus)) *Prometheus
New will initialize a new Prometheus instance with the given options. If no options are passed, sane defaults are used. If a router is passed using the Engine() option, this instance will automatically bind to it.
func (*Prometheus) AddCustomGauge ¶ added in v1.3.0
func (p *Prometheus) AddCustomGauge(name, help string, labels []string)
AddCustomGauge adds a custom gauge and registers it
func (*Prometheus) DecrementGaugeValue ¶ added in v1.3.0
func (p *Prometheus) DecrementGaugeValue(name string, labelValues []string) error
DecrementGaugeValue decrements a custom gauge
func (*Prometheus) IncrementGaugeValue ¶ added in v1.3.0
func (p *Prometheus) IncrementGaugeValue(name string, labelValues []string) error
IncrementGaugeValue increments a custom gauge
func (*Prometheus) Instrument ¶
func (p *Prometheus) Instrument() gin.HandlerFunc
Instrument is a gin middleware that can be used to generate metrics for a single handler
func (*Prometheus) SetGaugeValue ¶ added in v1.3.0
func (p *Prometheus) SetGaugeValue(name string, labelValues []string, value float64) error
SetGaugeValue set gauge to value
func (*Prometheus) Use ¶
func (p *Prometheus) Use(e *gin.Engine)
Use is a method that should be used if the engine is set after middleware initialization