master
go 110 lines 3.16 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package rspamd
4
5 import "github.com/netdata/netdata/go/plugins/plugin/framework/collectorapi"
6
7 const (
8 prioClassifications = collectorapi.Priority + iota
9 prioActions
10 prioScans
11 prioLearns
12 prioConnections
13 prioControlConnections
14 )
15
16 var charts = collectorapi.Charts{
17 classificationsChartTmpl.Copy(),
18
19 actionsChart.Copy(),
20
21 scanChartTmpl.Copy(),
22 learnChartTmpl.Copy(),
23
24 connectionsChartTmpl.Copy(),
25 controlConnectionsChartTmpl.Copy(),
26 }
27
28 var (
29 classificationsChartTmpl = collectorapi.Chart{
30 ID: "classifications",
31 Title: "Classifications",
32 Units: "messages/s",
33 Fam: "classification",
34 Ctx: "rspamd.classifications",
35 Type: collectorapi.Stacked,
36 Priority: prioClassifications,
37 Dims: collectorapi.Dims{
38 {ID: "ham_count", Name: "ham", Algo: collectorapi.Incremental},
39 {ID: "spam_count", Name: "spam", Algo: collectorapi.Incremental},
40 },
41 }
42
43 actionsChart = collectorapi.Chart{
44 ID: "actions",
45 Title: "Actions",
46 Units: "messages/s",
47 Fam: "actions",
48 Ctx: "rspamd.actions",
49 Type: collectorapi.Stacked,
50 Priority: prioActions,
51 Dims: collectorapi.Dims{
52 {ID: "actions_reject", Name: "reject", Algo: collectorapi.Incremental},
53 {ID: "actions_soft_reject", Name: "soft_reject", Algo: collectorapi.Incremental},
54 {ID: "actions_rewrite_subject", Name: "rewrite_subject", Algo: collectorapi.Incremental},
55 {ID: "actions_add_header", Name: "add_header", Algo: collectorapi.Incremental},
56 {ID: "actions_greylist", Name: "greylist", Algo: collectorapi.Incremental},
57 {ID: "actions_custom", Name: "custom", Algo: collectorapi.Incremental},
58 {ID: "actions_discard", Name: "discard", Algo: collectorapi.Incremental},
59 {ID: "actions_quarantine", Name: "quarantine", Algo: collectorapi.Incremental},
60 {ID: "actions_no_action", Name: "no_action", Algo: collectorapi.Incremental},
61 },
62 }
63
64 scanChartTmpl = collectorapi.Chart{
65 ID: "scans",
66 Title: "Scanned messages",
67 Units: "messages/s",
68 Fam: "training",
69 Ctx: "rspamd.scans",
70 Priority: prioScans,
71 Dims: collectorapi.Dims{
72 {ID: "scanned", Name: "scanned", Algo: collectorapi.Incremental},
73 },
74 }
75
76 learnChartTmpl = collectorapi.Chart{
77 ID: "learns",
78 Title: "Learned messages",
79 Units: "messages/s",
80 Fam: "training",
81 Ctx: "rspamd.learns",
82 Priority: prioLearns,
83 Dims: collectorapi.Dims{
84 {ID: "learned", Name: "learned", Algo: collectorapi.Incremental},
85 },
86 }
87
88 connectionsChartTmpl = collectorapi.Chart{
89 ID: "connections",
90 Title: "Connections",
91 Units: "connections/s",
92 Fam: "connections",
93 Ctx: "rspamd.connections",
94 Priority: prioConnections,
95 Dims: collectorapi.Dims{
96 {ID: "connections", Name: "connections", Algo: collectorapi.Incremental},
97 },
98 }
99 controlConnectionsChartTmpl = collectorapi.Chart{
100 ID: "control_connections",
101 Title: "Control connections",
102 Units: "connections/s",
103 Fam: "connections",
104 Ctx: "rspamd.control_connections",
105 Priority: prioControlConnections,
106 Dims: collectorapi.Dims{
107 {ID: "control_connections", Name: "control_connections", Algo: collectorapi.Incremental},
108 },
109 }
110 )