forked from falcosecurity/falcosidekick
-
Notifications
You must be signed in to change notification settings - Fork 0
/
stats.go
124 lines (119 loc) · 3.92 KB
/
stats.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package main
import (
"expvar"
"fmt"
"runtime"
"github.com/falcosecurity/falcosidekick/types"
)
func getInitStats() *types.Statistics {
expvar.Publish("goroutines", expvar.Func(func() interface{} {
return fmt.Sprintf("%d", runtime.NumGoroutine())
}))
expvar.Publish("cpu", expvar.Func(func() interface{} {
return fmt.Sprintf("%d", runtime.NumCPU())
}))
stats = &types.Statistics{
Requests: expvar.NewMap("inputs.requests"),
FIFO: expvar.NewMap("inputs.fifo"),
GRPC: expvar.NewMap("inputs.grpc"),
Falco: expvar.NewMap("falco.priority"),
Slack: expvar.NewMap("outputs.slack"),
Rocketchat: expvar.NewMap("outputs.rocketchat"),
Mattermost: expvar.NewMap("outputs.mattermost"),
Teams: expvar.NewMap("outputs.teams"),
Datadog: expvar.NewMap("outputs.datadog"),
Discord: expvar.NewMap("outputs.discord"),
Alertmanager: expvar.NewMap("outputs.alertmanager"),
Elasticsearch: expvar.NewMap("outputs.elasticsearch"),
Loki: expvar.NewMap("outputs.loki"),
Nats: expvar.NewMap("outputs.nats"),
Influxdb: expvar.NewMap("outputs.influxdb"),
AWSLambda: expvar.NewMap("outputs.awslambda"),
AWSSQS: expvar.NewMap("outputs.awssqs"),
AWSSNS: expvar.NewMap("outputs.awssns"),
SMTP: expvar.NewMap("outputs.smtp"),
Opsgenie: expvar.NewMap("outputs.opsgenie"),
Statsd: expvar.NewMap("outputs.statsd"),
Dogstatsd: expvar.NewMap("outputs.dogstatsd"),
Webhook: expvar.NewMap("outputs.webhook"),
AzureEventHub: expvar.NewMap("outputs.azureeventhub"),
}
stats.Requests.Add("total", 0)
stats.Requests.Add("rejected", 0)
stats.Requests.Add("accepted", 0)
stats.FIFO.Add("total", 0)
stats.FIFO.Add("rejected", 0)
stats.FIFO.Add("accepted", 0)
stats.GRPC.Add("total", 0)
stats.GRPC.Add("rejected", 0)
stats.GRPC.Add("accepted", 0)
stats.Falco.Add("emergency", 0)
stats.Falco.Add("alert", 0)
stats.Falco.Add("critical", 0)
stats.Falco.Add("error", 0)
stats.Falco.Add("warning", 0)
stats.Falco.Add("notice", 0)
stats.Falco.Add("informational", 0)
stats.Falco.Add("debug", 0)
stats.Slack.Add("total", 0)
stats.Slack.Add("error", 0)
stats.Slack.Add("ok", 0)
stats.Rocketchat.Add("total", 0)
stats.Rocketchat.Add("error", 0)
stats.Rocketchat.Add("ok", 0)
stats.Mattermost.Add("total", 0)
stats.Mattermost.Add("error", 0)
stats.Mattermost.Add("ok", 0)
stats.Teams.Add("total", 0)
stats.Teams.Add("error", 0)
stats.Teams.Add("ok", 0)
stats.Datadog.Add("total", 0)
stats.Datadog.Add("error", 0)
stats.Datadog.Add("ok", 0)
stats.Discord.Add("total", 0)
stats.Discord.Add("error", 0)
stats.Discord.Add("ok", 0)
stats.Alertmanager.Add("total", 0)
stats.Alertmanager.Add("error", 0)
stats.Alertmanager.Add("ok", 0)
stats.Elasticsearch.Add("total", 0)
stats.Elasticsearch.Add("error", 0)
stats.Elasticsearch.Add("ok", 0)
stats.Influxdb.Add("total", 0)
stats.Influxdb.Add("error", 0)
stats.Influxdb.Add("ok", 0)
stats.Loki.Add("total", 0)
stats.Loki.Add("error", 0)
stats.Loki.Add("ok", 0)
stats.Nats.Add("total", 0)
stats.Nats.Add("error", 0)
stats.Nats.Add("ok", 0)
stats.AWSLambda.Add("total", 0)
stats.AWSLambda.Add("error", 0)
stats.AWSLambda.Add("ok", 0)
stats.AWSSQS.Add("total", 0)
stats.AWSSQS.Add("error", 0)
stats.AWSSQS.Add("ok", 0)
stats.AWSSNS.Add("total", 0)
stats.AWSSNS.Add("error", 0)
stats.AWSSNS.Add("ok", 0)
stats.SMTP.Add("total", 0)
stats.SMTP.Add("error", 0)
stats.SMTP.Add("ok", 0)
stats.Opsgenie.Add("total", 0)
stats.Opsgenie.Add("error", 0)
stats.Opsgenie.Add("ok", 0)
stats.Statsd.Add("total", 0)
stats.Statsd.Add("error", 0)
stats.Statsd.Add("ok", 0)
stats.Dogstatsd.Add("total", 0)
stats.Dogstatsd.Add("error", 0)
stats.Dogstatsd.Add("ok", 0)
stats.Webhook.Add("total", 0)
stats.Webhook.Add("error", 0)
stats.Webhook.Add("ok", 0)
stats.AzureEventHub.Add("total", 0)
stats.AzureEventHub.Add("error", 0)
stats.AzureEventHub.Add("ok", 0)
return stats
}