prome

package module
v0.0.12 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2021 License: MIT Imports: 9 Imported by: 0

README

prome [Deprecated]

Go GoDoc Go Report Card

Deprecated. This repository has been merged into goutil.

Prometheus Client for easy use.

Why

I wrote this library so i can easily use it in my Go projects.

Features

  • Easy easy.
  • Provide basic Go runtime metrics.
  • Support gin middleware for providing API request counts and duration metrics.
  • Easy for developer to add custom metrics.

Usage

The simplest usage:

func main() {
	client := prome.NewClient("test", "/foo")
	if err := client.ListenAndServe(":9000"); err != nil {
		panic(err)
	}
}

Just include the code above already provides you the Go runtime metrics info. You can run curl "http://127.0.0.1:9000/foo" and get the prometheus data.

11:57 tmp ➜  curl "http://127.0.0.1:9000/foo"
# HELP test_runtime_gomaxprocs Runtime GOMAXPROCS
# TYPE test_runtime_gomaxprocs gauge
test_runtime_gomaxprocs 4
# HELP test_runtime_memstats_alloc Runtime memstats alloc (Unit: byte)
# TYPE test_runtime_memstats_alloc gauge
test_runtime_memstats_alloc 1.346416e+06
# HELP test_runtime_memstats_last_gc Runtime memstats last GC pause (Unit: ns)
# TYPE test_runtime_memstats_last_gc gauge
test_runtime_memstats_last_gc 0
# HELP test_runtime_memstats_sys Runtime memstats sys (Unit: byte)
# TYPE test_runtime_memstats_sys gauge
test_runtime_memstats_sys 7.2827136e+07
# HELP test_runtime_num_cpu Runtime number of CPUs
# TYPE test_runtime_num_cpu gauge
test_runtime_num_cpu 4
# HELP test_runtime_num_goroutine Runtime number of goroutines
# TYPE test_runtime_num_goroutine gauge
test_runtime_num_goroutine 3
# HELP test_runtime_os_threads Runtime number of OS threads
# TYPE test_runtime_os_threads gauge
test_runtime_os_threads 7

Examples

You can get more examples in the examples directory to find more advenced usage.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultRequestDurationSummaryObjectives = map[float64]float64{
	0.5:  0.05,
	0.9:  0.01,
	0.95: 0.005,
	0.99: 0.001,
}

DefaultRequestDurationSummaryObjectives represents objectives of request duration middleware summary.

Functions

This section is empty.

Types

type Client

type Client struct {
	ServiceName string
	Path        string

	// Enable metrics of runtime. Default enabled.
	EnableRuntime bool

	// Labels which will always be attached to metrics.
	ConstLabels prometheus.Labels
	// contains filtered or unexported fields
}

Client represents the client for prometheus server to pull data from.

func NewClient

func NewClient(serviceName string, path string) *Client

NewClient creates and returns a new Client instance.

func (*Client) AddCounter

func (c *Client) AddCounter(opts prometheus.CounterOpts) prometheus.Counter

AddCounter creates a new Counter based on the provided CounterOpts which will be registered automatically when client serves.

func (*Client) AddCounterVec

func (c *Client) AddCounterVec(
	opts prometheus.CounterOpts, labelNames []string,
) *prometheus.CounterVec

AddCounterVec creates a new CounterVec based on the provided CounterOpts and partitioned by the given label names which will be registered automatically when client serves.

func (*Client) AddGauge

func (c *Client) AddGauge(opts prometheus.GaugeOpts) prometheus.Gauge

AddGauge creates a new Gauge based on the provided GaugeOpts which will be registered automatically when client serves.

func (*Client) AddGaugeVec

func (c *Client) AddGaugeVec(
	opts prometheus.GaugeOpts, labelNames []string,
) *prometheus.GaugeVec

AddGaugeVec creates a new GaugeVec based on the provided GaugeOpts and partitioned by the given label names which will be registered automatically when client serves.

func (*Client) AddHistogram

func (c *Client) AddHistogram(opts prometheus.HistogramOpts) prometheus.Histogram

AddHistogram creates a new Histogram based on the provided HistogramOpts which will be registered automatically when client serves.

func (*Client) AddHistogramVec

func (c *Client) AddHistogramVec(
	opts prometheus.HistogramOpts, labelNames []string,
) *prometheus.HistogramVec

AddHistogramVec creates a new HistogramVec based on the provided HistogramOpts and partitioned by the given label names which will be registered automatically when client serves.

func (*Client) AddSummary

func (c *Client) AddSummary(opts prometheus.SummaryOpts) prometheus.Summary

AddSummary creates a new Summary based on the provided SummaryOpts which will be registered automatically when client serves.

func (*Client) AddSummaryVec

func (c *Client) AddSummaryVec(
	opts prometheus.SummaryOpts, labelNames []string,
) *prometheus.SummaryVec

AddSummaryVec creates a new SummaryVec based on the provided SummaryOpts and partitioned by the given label names which will be registered automatically when client serves.

func (*Client) Close added in v0.0.5

func (c *Client) Close() error

Close shutdown of listening.

func (*Client) Handler added in v0.0.2

func (c *Client) Handler() http.Handler

Handler returns the http handler which can be used for fetch metrics data.

func (*Client) ListenAndServe

func (c *Client) ListenAndServe(addr string) error

ListenAndServe listen on the addr and provide access for prometheus server to pull data.

func (*Client) MiddlewareRequestCount added in v0.0.7

func (c *Client) MiddlewareRequestCount(metricsName string) gin.HandlerFunc

MiddlewareRequestCount returns a gin HandlerFunc which can be used as middleware to capture request count.

func (*Client) MiddlewareRequestDuration added in v0.0.7

func (c *Client) MiddlewareRequestDuration(
	metricsName string, objectives map[float64]float64,
) gin.HandlerFunc

MiddlewareRequestDuration returns a gin handler which can be used as middleware to capture request duration summary.

Directories

Path Synopsis
examples
gin

Jump to

Keyboard shortcuts

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