Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/loki/source/syslog/internal/syslogtarget/metrics.go
4097 views
1
package syslogtarget
2
3
// This code is copied from Promtail. The syslogtarget package is used to
4
// configure and run the targets that can read syslog entries and forward them
5
// to other loki components.
6
7
import "github.com/prometheus/client_golang/prometheus"
8
9
// Metrics holds a set of syslog metrics.
10
type Metrics struct {
11
reg prometheus.Registerer
12
13
syslogEntries prometheus.Counter
14
syslogParsingErrors prometheus.Counter
15
syslogEmptyMessages prometheus.Counter
16
}
17
18
// NewMetrics creates a new set of syslog metrics. If reg is non-nil, the
19
// metrics will be registered.
20
func NewMetrics(reg prometheus.Registerer) *Metrics {
21
var m Metrics
22
m.reg = reg
23
24
m.syslogEntries = prometheus.NewCounter(prometheus.CounterOpts{
25
Name: "loki_source_syslog_entries_total",
26
Help: "Total number of successful entries sent to the syslog target",
27
})
28
m.syslogParsingErrors = prometheus.NewCounter(prometheus.CounterOpts{
29
Name: "loki_source_syslog_parsing_errors_total",
30
Help: "Total number of parsing errors while receiving syslog messages",
31
})
32
m.syslogEmptyMessages = prometheus.NewCounter(prometheus.CounterOpts{
33
Name: "loki_source_syslog_empty_messages_total",
34
Help: "Total number of empty messages received from syslog",
35
})
36
37
if reg != nil {
38
reg.MustRegister(
39
m.syslogEntries,
40
m.syslogParsingErrors,
41
m.syslogEmptyMessages,
42
)
43
}
44
45
return &m
46
}
47
48