master
go 264 lines 6.73 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package zookeeper
4
5 import "github.com/netdata/netdata/go/plugins/plugin/framework/collectorapi"
6
7 const (
8 prioRequests = collectorapi.Priority + iota
9 prioRequestsLatency
10 prioStaleRequests
11 prioStaleRequestsDropped
12
13 prioAliveConnections
14 prioConnectionsDropped
15 prioConnectionsRejected
16 prioAuthFails
17 prioGlobalSessions
18
19 prioServerState
20
21 prioThrottledOps
22
23 prioPackets
24
25 prioFileDescriptors
26
27 prioNodesCount
28 prioWatchesCount
29 prioApproxDataSize
30
31 prioUptime
32 )
33
34 var charts = collectorapi.Charts{
35 chartRequests.Copy(),
36 chartRequestsLatency.Copy(),
37 chartStaleRequests.Copy(),
38 chartStaleRequestsDropped.Copy(),
39
40 chartAliveConnections.Copy(),
41 chartConnectionsDropped.Copy(),
42 chartConnectionsRejected.Copy(),
43 chartAuthFailed.Copy(),
44 chartGlobalSessions.Copy(),
45
46 chartServerState.Copy(),
47 chartThrottledOps.Copy(),
48
49 chartPackets.Copy(),
50
51 chartFileDescriptors.Copy(),
52
53 chartNodesCount.Copy(),
54 chartWatchesCount.Copy(),
55 chartApproxDataSize.Copy(),
56
57 chartUptime.Copy(),
58 }
59
60 var (
61 chartRequests = collectorapi.Chart{
62 ID: "requests",
63 Title: "Outstanding Requests",
64 Units: "requests",
65 Fam: "requests",
66 Ctx: "zookeeper.requests",
67 Priority: prioRequests,
68 Dims: collectorapi.Dims{
69 {ID: "outstanding_requests", Name: "outstanding"},
70 },
71 }
72 chartRequestsLatency = collectorapi.Chart{
73 ID: "requests_latency",
74 Title: "Requests Latency",
75 Units: "ms",
76 Fam: "requests",
77 Ctx: "zookeeper.requests_latency",
78 Priority: prioRequestsLatency,
79 Dims: collectorapi.Dims{
80 {ID: "min_latency", Name: "min", Div: 1000},
81 {ID: "avg_latency", Name: "avg", Div: 1000},
82 {ID: "max_latency", Name: "max", Div: 1000},
83 },
84 }
85 chartStaleRequests = collectorapi.Chart{
86 ID: "stale_requests",
87 Title: "Stale Requests",
88 Units: "requests/s",
89 Fam: "requests",
90 Ctx: "zookeeper.stale_requests",
91 Priority: prioStaleRequests,
92 Dims: collectorapi.Dims{
93 {ID: "stale_requests", Name: "stale", Algo: collectorapi.Incremental},
94 },
95 }
96 chartStaleRequestsDropped = collectorapi.Chart{
97 ID: "stale_requests_dropped",
98 Title: "Stale Requests Dropped",
99 Units: "requests/s",
100 Fam: "requests",
101 Ctx: "zookeeper.stale_requests_dropped",
102 Priority: prioStaleRequestsDropped,
103 Dims: collectorapi.Dims{
104 {ID: "stale_requests_dropped", Name: "dropped", Algo: collectorapi.Incremental},
105 },
106 }
107
108 chartAliveConnections = collectorapi.Chart{
109 ID: "connections",
110 Title: "Alive Connections",
111 Units: "connections",
112 Fam: "connections",
113 Ctx: "zookeeper.connections",
114 Priority: prioAliveConnections,
115 Dims: collectorapi.Dims{
116 {ID: "num_alive_connections", Name: "alive"},
117 },
118 }
119 chartConnectionsDropped = collectorapi.Chart{
120 ID: "connections_dropped",
121 Title: "Dropped Connections",
122 Units: "connections/s",
123 Fam: "connections",
124 Ctx: "zookeeper.connections_dropped",
125 Priority: prioConnectionsDropped,
126 Dims: collectorapi.Dims{
127 {ID: "connection_drop_count", Name: "dropped", Algo: collectorapi.Incremental},
128 },
129 }
130 chartConnectionsRejected = collectorapi.Chart{
131 ID: "connections_rejected",
132 Title: "Rejected Connections",
133 Units: "connections/s",
134 Fam: "connections",
135 Ctx: "zookeeper.connections_rejected",
136 Priority: prioConnectionsRejected,
137 Dims: collectorapi.Dims{
138 {ID: "connection_rejected", Name: "rejected", Algo: collectorapi.Incremental},
139 },
140 }
141 chartAuthFailed = collectorapi.Chart{
142 ID: "auth_failed_count",
143 Title: "Auth Fails",
144 Units: "fails/s",
145 Fam: "connections",
146 Ctx: "zookeeper.auth_fails",
147 Priority: prioAuthFails,
148 Dims: collectorapi.Dims{
149 {ID: "auth_failed_count", Name: "auth", Algo: collectorapi.Incremental},
150 },
151 }
152 chartGlobalSessions = collectorapi.Chart{
153 ID: "global_sessions",
154 Title: "Global Sessions",
155 Units: "sessions",
156 Fam: "connections",
157 Ctx: "zookeeper.global_sessions",
158 Priority: prioGlobalSessions,
159 Dims: collectorapi.Dims{
160 {ID: "global_sessions", Name: "global"},
161 },
162 }
163
164 chartServerState = collectorapi.Chart{
165 ID: "server_state",
166 Title: "Server State",
167 Units: "state",
168 Fam: "server state",
169 Ctx: "zookeeper.server_state",
170 Priority: prioServerState,
171 Dims: collectorapi.Dims{
172 {ID: "server_state_leader", Name: "leader"},
173 {ID: "server_state_follower", Name: "follower"},
174 {ID: "server_state_observer", Name: "observer"},
175 {ID: "server_state_standalone", Name: "standalone"},
176 },
177 }
178 chartThrottledOps = collectorapi.Chart{
179 ID: "throttled_ops",
180 Title: "Throttled Operations",
181 Units: "ops/s",
182 Fam: "server state",
183 Ctx: "zookeeper.throttled_ops",
184 Priority: prioThrottledOps,
185 Dims: collectorapi.Dims{
186 {ID: "throttled_ops", Name: "throttled", Algo: collectorapi.Incremental},
187 },
188 }
189
190 chartPackets = collectorapi.Chart{
191 ID: "packets",
192 Title: "Packets",
193 Units: "pps",
194 Fam: "net",
195 Ctx: "zookeeper.packets",
196 Priority: prioPackets,
197 Dims: collectorapi.Dims{
198 {ID: "packets_received", Name: "received", Algo: collectorapi.Incremental},
199 {ID: "packets_sent", Name: "sent", Algo: collectorapi.Incremental, Mul: -1},
200 },
201 }
202
203 chartFileDescriptors = collectorapi.Chart{
204 ID: "file_descriptor",
205 Title: "Open File Descriptors",
206 Units: "file descriptors",
207 Fam: "file descriptors",
208 Ctx: "zookeeper.file_descriptor",
209 Priority: prioFileDescriptors,
210 Dims: collectorapi.Dims{
211 {ID: "open_file_descriptor_count", Name: "open"},
212 },
213 Vars: collectorapi.Vars{
214 {ID: "max_file_descriptor_count"},
215 },
216 }
217
218 chartNodesCount = collectorapi.Chart{
219 ID: "nodes",
220 Title: "Number of Nodes",
221 Units: "nodes",
222 Fam: "data tree",
223 Ctx: "zookeeper.nodes",
224 Priority: prioNodesCount,
225 Dims: collectorapi.Dims{
226 {ID: "znode_count", Name: "znode"},
227 {ID: "ephemerals_count", Name: "ephemerals"},
228 },
229 }
230 chartWatchesCount = collectorapi.Chart{
231 ID: "watches",
232 Title: "Number of Watches",
233 Units: "watches",
234 Fam: "data tree",
235 Ctx: "zookeeper.watches",
236 Priority: prioWatchesCount,
237 Dims: collectorapi.Dims{
238 {ID: "watch_count", Name: "watches"},
239 },
240 }
241 chartApproxDataSize = collectorapi.Chart{
242 ID: "approximate_data_size",
243 Title: "Approximate Data Tree Size",
244 Units: "KiB",
245 Fam: "data tree",
246 Ctx: "zookeeper.approximate_data_size",
247 Priority: prioApproxDataSize,
248 Dims: collectorapi.Dims{
249 {ID: "approximate_data_size", Name: "size", Div: 1024},
250 },
251 }
252
253 chartUptime = collectorapi.Chart{
254 ID: "uptime",
255 Title: "Uptime",
256 Units: "seconds",
257 Fam: "uptime",
258 Ctx: "zookeeper.uptime",
259 Priority: prioUptime,
260 Dims: collectorapi.Dims{
261 {ID: "uptime"},
262 },
263 }
264 )