cloudflare/pint

Public

mirrored from https://github.com/cloudflare/pintAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v0.22.2

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

internal/promapi/metrics.go

62lines · modecode

1package promapi
2
3import (
4 "errors"
5 "fmt"
6 "net"
7
8 v1 "github.com/prometheus/client_golang/api/prometheus/v1"
9 "github.com/prometheus/client_golang/prometheus"
10)
11
12var (
13 prometheusQueriesRunning = prometheus.NewGaugeVec(
14 prometheus.GaugeOpts{
15 Name: "pint_prometheus_queries_running",
16 Help: "Total number of in-flight prometheus queries",
17 },
18 []string{"name", "endpoint"},
19 )
20 prometheusCacheHitsTotal = prometheus.NewCounterVec(
21 prometheus.CounterOpts{
22 Name: "pint_prometheus_cache_hits_total",
23 Help: "Total number of all prometheus queries served from a cache",
24 },
25 []string{"name", "endpoint"},
26 )
27 prometheusQueriesTotal = prometheus.NewCounterVec(
28 prometheus.CounterOpts{
29 Name: "pint_prometheus_queries_total",
30 Help: "Total number of all prometheus queries",
31 },
32 []string{"name", "endpoint"},
33 )
34 prometheusQueryErrorsTotal = prometheus.NewCounterVec(
35 prometheus.CounterOpts{
36 Name: "pint_prometheus_query_errors_total",
37 Help: "Total number of failed prometheus queries",
38 },
39 []string{"name", "endpoint", "reason"},
40 )
41)
42
43func RegisterMetrics() {
44 prometheus.MustRegister(prometheusQueriesRunning)
45 prometheus.MustRegister(prometheusCacheHitsTotal)
46 prometheus.MustRegister(prometheusQueriesTotal)
47 prometheus.MustRegister(prometheusQueryErrorsTotal)
48}
49
50func errReason(err error) string {
51 var neterr net.Error
52 if ok := errors.As(err, &neterr); ok && neterr.Timeout() {
53 return "connection/timeout"
54 }
55
56 var v1err *v1.Error
57 if ok := errors.As(err, &v1err); ok {
58 return fmt.Sprintf("api/%s", v1err.Type)
59 }
60
61 return "connection/error"
62}
63