/
configuration.go
69 lines (61 loc) · 3.14 KB
/
configuration.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package metrics
import (
"fmt"
"github.com/moira-alert/moira/metrics/graphite"
)
// ConfigureFilterMetrics initialize graphite metrics
func ConfigureFilterMetrics(prefix string) *graphite.FilterMetrics {
return &graphite.FilterMetrics{
TotalMetricsReceived: registerCounter(metricNameWithPrefix(prefix, "received.total")),
ValidMetricsReceived: registerCounter(metricNameWithPrefix(prefix, "received.valid")),
MatchingMetricsReceived: registerCounter(metricNameWithPrefix(prefix, "received.matching")),
MatchingTimer: registerTimer(metricNameWithPrefix(prefix, "time.match")),
SavingTimer: registerTimer(metricNameWithPrefix(prefix, "time.save")),
BuildTreeTimer: registerTimer(metricNameWithPrefix(prefix, "time.buildtree")),
MetricChannelLen: registerHistogram(metricNameWithPrefix(prefix, "metricsToSave")),
LineChannelLen: registerHistogram(metricNameWithPrefix(prefix, "linesToMatch")),
}
}
// ConfigureNotifierMetrics is notifier metrics configurator
func ConfigureNotifierMetrics(prefix string) *graphite.NotifierMetrics {
return &graphite.NotifierMetrics{
SubsMalformed: registerMeter(metricNameWithPrefix(prefix, "subs.malformed")),
EventsReceived: registerMeter(metricNameWithPrefix(prefix, "events.received")),
EventsMalformed: registerMeter(metricNameWithPrefix(prefix, "events.malformed")),
EventsProcessingFailed: registerMeter(metricNameWithPrefix(prefix, "events.failed")),
SendingFailed: registerMeter(metricNameWithPrefix(prefix, "sending.failed")),
SendersOkMetrics: newMeterMap(),
SendersFailedMetrics: newMeterMap(),
}
}
// ConfigureCheckerMetrics is checker metrics configurator
func ConfigureCheckerMetrics(prefix string, remoteEnabled bool) *graphite.CheckerMetrics {
m := &graphite.CheckerMetrics{
LocalMetrics: configureCheckMetrics(prefix + ".local"),
MetricEventsChannelLen: registerHistogram(metricNameWithPrefix(prefix, "metricEvents")),
MetricEventsHandleTime: registerTimer(metricNameWithPrefix(prefix, "metricEventsHandle")),
UnusedTriggersCount: registerHistogram(metricNameWithPrefix(prefix, "triggers.unused")),
}
if remoteEnabled {
m.RemoteMetrics = configureCheckMetrics(prefix + ".remote")
}
return m
}
// ConfigureIndexMetrics in full-text search index metrics configurator
func ConfigureIndexMetrics(prefix string) *graphite.IndexMetrics {
return &graphite.IndexMetrics{
IndexedTriggersCount: registerHistogram(metricNameWithPrefix(prefix, "indexedTriggers")),
IndexActualizationLag: registerTimer(metricNameWithPrefix(prefix, "actualizationLag")),
}
}
func configureCheckMetrics(prefix string) *graphite.CheckMetrics {
return &graphite.CheckMetrics{
CheckError: registerMeter(metricNameWithPrefix(prefix, "errors.check")),
HandleError: registerMeter(metricNameWithPrefix(prefix, "errors.handle")),
TriggersCheckTime: registerTimer(metricNameWithPrefix(prefix, "triggers")),
TriggersToCheckCount: registerHistogram(metricNameWithPrefix(prefix, "triggersToCheck")),
}
}
func metricNameWithPrefix(prefix, metric string) string {
return fmt.Sprintf("%s.%s", prefix, metric)
}