Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/loki/source/gcplog/internal/gcplogtarget/metrics.go
4096 views
1
package gcplogtarget
2
3
// This code is copied from Promtail. The gcplogtarget package is used to
4
// configure and run the targets that can read log entries from cloud resource
5
// logs like bucket logs, load balancer logs, and Kubernetes cluster logs
6
// from GCP.
7
8
import "github.com/prometheus/client_golang/prometheus"
9
10
// Metrics stores gcplog entry metrics.
11
type Metrics struct {
12
// reg is the Registerer used to create this set of metrics.
13
reg prometheus.Registerer
14
15
gcplogEntries *prometheus.CounterVec
16
gcplogErrors *prometheus.CounterVec
17
gcplogTargetLastSuccessScrape *prometheus.GaugeVec
18
19
gcpPushEntries *prometheus.CounterVec
20
gcpPushErrors *prometheus.CounterVec
21
}
22
23
// NewMetrics creates a new set of metrics. Metrics will be registered to reg.
24
func NewMetrics(reg prometheus.Registerer) *Metrics {
25
var m Metrics
26
m.reg = reg
27
28
// Pull subscription metrics
29
m.gcplogEntries = prometheus.NewCounterVec(prometheus.CounterOpts{
30
Name: "loki_source_gcplog_pull_entries_total",
31
Help: "Number of entries received by the gcplog target",
32
}, []string{"project"})
33
34
m.gcplogErrors = prometheus.NewCounterVec(prometheus.CounterOpts{
35
Name: "loki_source_gcplog_pull_parsing_errors_total",
36
Help: "Total number of parsing errors while receiving gcplog messages",
37
}, []string{"project"})
38
39
m.gcplogTargetLastSuccessScrape = prometheus.NewGaugeVec(prometheus.GaugeOpts{
40
Name: "loki_source_gcplog_pull_last_success_scrape",
41
Help: "Timestamp of target's last successful poll",
42
}, []string{"project", "target"})
43
44
// Push subscription metrics
45
m.gcpPushEntries = prometheus.NewCounterVec(prometheus.CounterOpts{
46
Name: "loki_source_gcplog_push_entries_total",
47
Help: "Number of entries received by the gcplog target",
48
}, []string{})
49
50
m.gcpPushErrors = prometheus.NewCounterVec(prometheus.CounterOpts{
51
Name: "loki_source_gcplog_push_parsing_errors_total",
52
Help: "Number of parsing errors while receiving gcplog messages",
53
}, []string{"reason"})
54
55
reg.MustRegister(
56
m.gcplogEntries,
57
m.gcplogErrors,
58
m.gcplogTargetLastSuccessScrape,
59
m.gcpPushEntries,
60
m.gcpPushErrors,
61
)
62
return &m
63
}
64
65