master
go 850 lines 25.2 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package cockroachdb
4
5 import "github.com/netdata/netdata/go/plugins/plugin/framework/collectorapi"
6
7 type (
8 Charts = collectorapi.Charts
9 Chart = collectorapi.Chart
10 Dims = collectorapi.Dims
11 Vars = collectorapi.Vars
12 )
13
14 var charts = Charts{
15 chartProcessCPUCombinedPercent.Copy(),
16 chartProcessCPUPercent.Copy(),
17 chartProcessCPUUsage.Copy(),
18 chartProcessMemory.Copy(),
19 chartProcessFDUsage.Copy(),
20 chartProcessUptime.Copy(),
21
22 chartHostDiskBandwidth.Copy(),
23 chartHostDiskOperations.Copy(),
24 chartHostDiskIOPS.Copy(),
25 chartHostNetworkBandwidth.Copy(),
26 chartHostNetworkPackets.Copy(),
27
28 chartLiveNodes.Copy(),
29 chartHeartBeats.Copy(),
30
31 chartCapacity.Copy(),
32 chartCapacityUsability.Copy(),
33 chartCapacityUsable.Copy(),
34 chartCapacityUsedPercentage.Copy(),
35
36 chartSQLConnections.Copy(),
37 chartSQLTraffic.Copy(),
38 chartSQLStatementsTotal.Copy(),
39 chartSQLErrors.Copy(),
40 chartSQLStartedDDLStatements.Copy(),
41 chartSQLExecutedDDLStatements.Copy(),
42 chartSQLStartedDMLStatements.Copy(),
43 chartSQLExecutedDMLStatements.Copy(),
44 chartSQLStartedTCLStatements.Copy(),
45 chartSQLExecutedTCLStatements.Copy(),
46 chartSQLActiveDistQueries.Copy(),
47 chartSQLActiveFlowsForDistQueries.Copy(),
48
49 chartUsedLiveData.Copy(),
50 chartLogicalData.Copy(),
51 chartLogicalDataCount.Copy(),
52
53 chartKVTransactions.Copy(),
54 chartKVTransactionsRestarts.Copy(),
55
56 chartRanges.Copy(),
57 chartRangesWithProblems.Copy(),
58 chartRangesEvents.Copy(),
59 chartRangesSnapshotEvents.Copy(),
60
61 chartRocksDBReadAmplification.Copy(),
62 chartRocksDBTableOperations.Copy(),
63 chartRocksDBCacheUsage.Copy(),
64 chartRocksDBCacheOperations.Copy(),
65 chartRocksDBCacheHitRage.Copy(),
66 chartRocksDBSSTables.Copy(),
67
68 chartReplicas.Copy(),
69 chartReplicasQuiescence.Copy(),
70 chartReplicasLeaders.Copy(),
71 chartReplicasLeaseHolder.Copy(),
72
73 chartQueuesProcessingFailures.Copy(),
74
75 chartRebalancingQueries.Copy(),
76 chartRebalancingWrites.Copy(),
77
78 chartTimeSeriesWrittenSamples.Copy(),
79 chartTimeSeriesWriteErrors.Copy(),
80 chartTimeSeriesWrittenBytes.Copy(),
81
82 chartSlowRequests.Copy(),
83
84 chartGoroutines.Copy(),
85 chartGoCgoHeapMemory.Copy(),
86 chartCGoCalls.Copy(),
87 chartGCRuns.Copy(),
88 chartGCPauseTime.Copy(),
89 }
90
91 // Process
92 var (
93 chartProcessCPUCombinedPercent = Chart{
94 ID: "process_cpu_time_combined_percentage",
95 Title: "Combined CPU Time Percentage, Normalized 0-1 by Number of Cores",
96 Units: "percentage",
97 Fam: "process",
98 Ctx: "cockroachdb.process_cpu_time_combined_percentage",
99 Type: collectorapi.Stacked,
100 Dims: Dims{
101 {ID: metricSysCPUCombinedPercentNormalized, Name: "used", Div: precision},
102 },
103 }
104 chartProcessCPUPercent = Chart{
105 ID: "process_cpu_time_percentage",
106 Title: "CPU Time Percentage",
107 Units: "percentage",
108 Fam: "process",
109 Ctx: "cockroachdb.process_cpu_time_percentage",
110 Type: collectorapi.Stacked,
111 Dims: Dims{
112 {ID: metricSysCPUUserPercent, Name: "user", Div: precision},
113 {ID: metricSysCPUSysPercent, Name: "sys", Div: precision},
114 },
115 }
116 chartProcessCPUUsage = Chart{
117 ID: "process_cpu_time",
118 Title: "CPU Time",
119 Units: "ms",
120 Fam: "process",
121 Ctx: "cockroachdb.process_cpu_time",
122 Type: collectorapi.Stacked,
123 Dims: Dims{
124 {ID: metricSysCPUUserNs, Name: "user", Algo: collectorapi.Incremental, Div: 1e6},
125 {ID: metricSysCPUSysNs, Name: "sys", Algo: collectorapi.Incremental, Div: 1e6},
126 },
127 }
128 chartProcessMemory = Chart{
129 ID: "process_memory",
130 Title: "Memory Usage",
131 Units: "KiB",
132 Fam: "process",
133 Ctx: "cockroachdb.process_memory",
134 Dims: Dims{
135 {ID: metricSysRSS, Name: "rss", Div: 1024},
136 },
137 }
138 chartProcessFDUsage = Chart{
139 ID: "process_file_descriptors",
140 Title: "File Descriptors",
141 Units: "fd",
142 Fam: "process",
143 Ctx: "cockroachdb.process_file_descriptors",
144 Dims: Dims{
145 {ID: metricSysFDOpen, Name: "open"},
146 },
147 Vars: Vars{
148 {ID: metricSysFDSoftLimit},
149 },
150 }
151 chartProcessUptime = Chart{
152 ID: "process_uptime",
153 Title: "Uptime",
154 Units: "seconds",
155 Fam: "process",
156 Ctx: "cockroachdb.process_uptime",
157 Dims: Dims{
158 {ID: metricSysUptime, Name: "uptime"},
159 },
160 }
161 )
162
163 // Host
164 // Host
165 var (
166 chartHostDiskBandwidth = Chart{
167 ID: "host_disk_bandwidth",
168 Title: "Host Disk Cumulative Bandwidth",
169 Units: "KiB",
170 Fam: "host",
171 Ctx: "cockroachdb.host_disk_bandwidth",
172 Type: collectorapi.Area,
173 Dims: Dims{
174 {ID: metricSysHostDiskReadBytes, Name: "read", Div: 1024, Algo: collectorapi.Incremental},
175 {ID: metricSysHostDiskWriteBytes, Name: "write", Div: -1024, Algo: collectorapi.Incremental},
176 },
177 }
178 chartHostDiskOperations = Chart{
179 ID: "host_disk_operations",
180 Title: "Host Disk Cumulative Operations",
181 Units: "operations",
182 Fam: "host",
183 Ctx: "cockroachdb.host_disk_operations",
184 Dims: Dims{
185 {ID: metricSysHostDiskReadCount, Name: "reads", Algo: collectorapi.Incremental},
186 {ID: metricSysHostDiskWriteCount, Name: "writes", Mul: -1, Algo: collectorapi.Incremental},
187 },
188 }
189 chartHostDiskIOPS = Chart{
190 ID: "host_disk_iops_in_progress",
191 Title: "Host Disk Cumulative IOPS In Progress",
192 Units: "iops",
193 Fam: "host",
194 Ctx: "cockroachdb.host_disk_iops_in_progress",
195 Dims: Dims{
196 {ID: metricSysHostDiskIOPSInProgress, Name: "in progress"},
197 },
198 }
199 chartHostNetworkBandwidth = Chart{
200 ID: "host_network_bandwidth",
201 Title: "Host Network Cumulative Bandwidth",
202 Units: "kilobits",
203 Fam: "host",
204 Ctx: "cockroachdb.host_network_bandwidth",
205 Type: collectorapi.Area,
206 Dims: Dims{
207 {ID: metricSysHostNetRecvBytes, Name: "received", Div: 1000, Algo: collectorapi.Incremental},
208 {ID: metricSysHostNetSendBytes, Name: "sent", Div: -1000, Algo: collectorapi.Incremental},
209 },
210 }
211 chartHostNetworkPackets = Chart{
212 ID: "host_network_packets",
213 Title: "Host Network Cumulative Packets",
214 Units: "packets",
215 Fam: "host",
216 Ctx: "cockroachdb.host_network_packets",
217 Dims: Dims{
218 {ID: metricSysHostNetRecvPackets, Name: "received", Algo: collectorapi.Incremental},
219 {ID: metricSysHostNetSendPackets, Name: "sent", Mul: -1, Algo: collectorapi.Incremental},
220 },
221 }
222 )
223
224 // Liveness
225 var (
226 chartLiveNodes = Chart{
227 ID: "live_nodes",
228 Title: "Live Nodes in the Cluster",
229 Units: "nodes",
230 Fam: "liveness",
231 Ctx: "cockroachdb.live_nodes",
232 Dims: Dims{
233 {ID: metricLiveNodes, Name: "live nodes"},
234 },
235 }
236 chartHeartBeats = Chart{
237 ID: "node_liveness_heartbeats",
238 Title: "Node Liveness Heartbeats",
239 Units: "heartbeats",
240 Fam: "liveness",
241 Ctx: "cockroachdb.node_liveness_heartbeats",
242 Type: collectorapi.Stacked,
243 Dims: Dims{
244 {ID: metricHeartBeatSuccesses, Name: "successful", Algo: collectorapi.Incremental},
245 {ID: metricHeartBeatFailures, Name: "failed", Algo: collectorapi.Incremental},
246 },
247 }
248 )
249
250 // Capacity
251 var (
252 chartCapacity = Chart{
253 ID: "total_storage_capacity",
254 Title: "Total Storage Capacity",
255 Units: "KiB",
256 Fam: "capacity",
257 Ctx: "cockroachdb.total_storage_capacity",
258 Dims: Dims{
259 {ID: metricCapacity, Name: "total", Div: 1024},
260 },
261 }
262 chartCapacityUsability = Chart{
263 ID: "storage_capacity_usability",
264 Title: "Storage Capacity Usability",
265 Units: "KiB",
266 Fam: "capacity",
267 Ctx: "cockroachdb.storage_capacity_usability",
268 Type: collectorapi.Stacked,
269 Dims: Dims{
270 {ID: metricCapacityUsable, Name: "usable", Div: 1024},
271 {ID: metricCapacityUnusable, Name: "unusable", Div: 1024},
272 },
273 }
274 chartCapacityUsable = Chart{
275 ID: "storage_usable_capacity",
276 Title: "Storage Usable Capacity",
277 Units: "KiB",
278 Fam: "capacity",
279 Ctx: "cockroachdb.storage_usable_capacity",
280 Type: collectorapi.Stacked,
281 Dims: Dims{
282 {ID: metricCapacityAvailable, Name: "available", Div: 1024},
283 {ID: metricCapacityUsed, Name: "used", Div: 1024},
284 },
285 }
286 chartCapacityUsedPercentage = Chart{
287 ID: "storage_used_capacity_percentage",
288 Title: "Storage Used Capacity Utilization",
289 Units: "percentage",
290 Fam: "capacity",
291 Ctx: "cockroachdb.storage_used_capacity_percentage",
292 Dims: Dims{
293 {ID: metricCapacityUsedPercentage, Name: "total", Div: precision},
294 {ID: metricCapacityUsableUsedPercentage, Name: "usable", Div: precision},
295 },
296 }
297 )
298
299 // SQL
300 var (
301 chartSQLConnections = Chart{
302 ID: "sql_connections",
303 Title: "Active SQL Connections",
304 Units: "connections",
305 Fam: "sql",
306 Ctx: "cockroachdb.sql_connections",
307 Dims: Dims{
308 {ID: metricSQLConnections, Name: "active"},
309 },
310 }
311 chartSQLTraffic = Chart{
312 ID: "sql_bandwidth",
313 Title: "SQL Bandwidth",
314 Units: "KiB",
315 Fam: "sql",
316 Ctx: "cockroachdb.sql_bandwidth",
317 Type: collectorapi.Area,
318 Dims: Dims{
319 {ID: metricSQLBytesIn, Name: "received", Div: 1024, Algo: collectorapi.Incremental},
320 {ID: metricSQLBytesOut, Name: "sent", Div: -1024, Algo: collectorapi.Incremental},
321 },
322 }
323 chartSQLStatementsTotal = Chart{
324 ID: "sql_statements_total",
325 Title: "SQL Statements Total",
326 Units: "statements",
327 Fam: "sql",
328 Ctx: "cockroachdb.sql_statements_total",
329 Type: collectorapi.Area,
330 Dims: Dims{
331 {ID: metricSQLQueryStartedCount, Name: "started", Algo: collectorapi.Incremental},
332 {ID: metricSQLQueryCount, Name: "executed", Algo: collectorapi.Incremental},
333 },
334 }
335 chartSQLErrors = Chart{
336 ID: "sql_errors",
337 Title: "SQL Statements and Transaction Errors",
338 Units: "errors",
339 Fam: "sql",
340 Ctx: "cockroachdb.sql_errors",
341 Dims: Dims{
342 {ID: metricSQLFailureCount, Name: "statement", Algo: collectorapi.Incremental},
343 {ID: metricSQLTXNAbortCount, Name: "transaction", Algo: collectorapi.Incremental},
344 },
345 }
346 chartSQLStartedDDLStatements = Chart{
347 ID: "sql_started_ddl_statements",
348 Title: "SQL Started DDL Statements",
349 Units: "statements",
350 Fam: "sql",
351 Ctx: "cockroachdb.sql_started_ddl_statements",
352 Dims: Dims{
353 {ID: metricSQLDDLStartedCount, Name: "DDL"},
354 },
355 }
356 chartSQLExecutedDDLStatements = Chart{
357 ID: "sql_executed_ddl_statements",
358 Title: "SQL Executed DDL Statements",
359 Units: "statements",
360 Fam: "sql",
361 Ctx: "cockroachdb.sql_executed_ddl_statements",
362 Dims: Dims{
363 {ID: metricSQLDDLCount, Name: "DDL"},
364 },
365 }
366 chartSQLStartedDMLStatements = Chart{
367 ID: "sql_started_dml_statements",
368 Title: "SQL Started DML Statements",
369 Units: "statements",
370 Fam: "sql",
371 Ctx: "cockroachdb.sql_started_dml_statements",
372 Type: collectorapi.Stacked,
373 Dims: Dims{
374 {ID: metricSQLSelectStartedCount, Name: "SELECT", Algo: collectorapi.Incremental},
375 {ID: metricSQLUpdateStartedCount, Name: "UPDATE", Algo: collectorapi.Incremental},
376 {ID: metricSQLInsertStartedCount, Name: "INSERT", Algo: collectorapi.Incremental},
377 {ID: metricSQLDeleteStartedCount, Name: "DELETE", Algo: collectorapi.Incremental},
378 },
379 }
380 chartSQLExecutedDMLStatements = Chart{
381 ID: "sql_executed_dml_statements",
382 Title: "SQL Executed DML Statements",
383 Units: "statements",
384 Fam: "sql",
385 Ctx: "cockroachdb.sql_executed_dml_statements",
386 Type: collectorapi.Stacked,
387 Dims: Dims{
388 {ID: metricSQLSelectCount, Name: "SELECT", Algo: collectorapi.Incremental},
389 {ID: metricSQLUpdateCount, Name: "UPDATE", Algo: collectorapi.Incremental},
390 {ID: metricSQLInsertCount, Name: "INSERT", Algo: collectorapi.Incremental},
391 {ID: metricSQLDeleteCount, Name: "DELETE", Algo: collectorapi.Incremental},
392 },
393 }
394 chartSQLStartedTCLStatements = Chart{
395 ID: "sql_started_tcl_statements",
396 Title: "SQL Started TCL Statements",
397 Units: "statements",
398 Fam: "sql",
399 Ctx: "cockroachdb.sql_started_tcl_statements",
400 Type: collectorapi.Stacked,
401 Dims: Dims{
402 {ID: metricSQLTXNBeginStartedCount, Name: "BEGIN", Algo: collectorapi.Incremental},
403 {ID: metricSQLTXNCommitStartedCount, Name: "COMMIT", Algo: collectorapi.Incremental},
404 {ID: metricSQLTXNRollbackStartedCount, Name: "ROLLBACK", Algo: collectorapi.Incremental},
405 {ID: metricSQLSavepointStartedCount, Name: "SAVEPOINT", Algo: collectorapi.Incremental},
406 {ID: metricSQLRestartSavepointStartedCount, Name: "SAVEPOINT cockroach_restart", Algo: collectorapi.Incremental},
407 {ID: metricSQLRestartSavepointReleaseStartedCount, Name: "RELEASE SAVEPOINT cockroach_restart", Algo: collectorapi.Incremental},
408 {ID: metricSQLRestartSavepointRollbackStartedCount, Name: "ROLLBACK TO SAVEPOINT cockroach_restart", Algo: collectorapi.Incremental},
409 },
410 }
411 chartSQLExecutedTCLStatements = Chart{
412 ID: "sql_executed_tcl_statements",
413 Title: "SQL Executed TCL Statements",
414 Units: "statements",
415 Fam: "sql",
416 Ctx: "cockroachdb.sql_executed_tcl_statements",
417 Type: collectorapi.Stacked,
418 Dims: Dims{
419 {ID: metricSQLTXNBeginCount, Name: "BEGIN", Algo: collectorapi.Incremental},
420 {ID: metricSQLTXNCommitCount, Name: "COMMIT", Algo: collectorapi.Incremental},
421 {ID: metricSQLTXNRollbackCount, Name: "ROLLBACK", Algo: collectorapi.Incremental},
422 {ID: metricSQLSavepointCount, Name: "SAVEPOINT", Algo: collectorapi.Incremental},
423 {ID: metricSQLRestartSavepointCount, Name: "SAVEPOINT cockroach_restart", Algo: collectorapi.Incremental},
424 {ID: metricSQLRestartSavepointReleaseCount, Name: "RELEASE SAVEPOINT cockroach_restart", Algo: collectorapi.Incremental},
425 {ID: metricSQLRestartSavepointRollbackCount, Name: "ROLLBACK TO SAVEPOINT cockroach_restart", Algo: collectorapi.Incremental},
426 },
427 }
428 chartSQLActiveDistQueries = Chart{
429 ID: "sql_active_distributed_queries",
430 Title: "Active Distributed SQL Queries",
431 Units: "queries",
432 Fam: "sql",
433 Ctx: "cockroachdb.sql_active_distributed_queries",
434 Dims: Dims{
435 {ID: metricSQLDistSQLQueriesActive, Name: "active"},
436 },
437 }
438 chartSQLActiveFlowsForDistQueries = Chart{
439 ID: "sql_distributed_flows",
440 Title: "Distributed SQL Flows",
441 Units: "flows",
442 Fam: "sql",
443 Ctx: "cockroachdb.sql_distributed_flows",
444 Type: collectorapi.Stacked,
445 Dims: Dims{
446 {ID: metricSQLDistSQLFlowsActive, Name: "active"},
447 {ID: metricSQLDistSQLFlowsQueued, Name: "queued"},
448 },
449 }
450 )
451
452 // Storage
453 var (
454 chartUsedLiveData = Chart{
455 ID: "live_bytes",
456 Title: "Used Live Data",
457 Units: "KiB",
458 Fam: "storage",
459 Ctx: "cockroachdb.live_bytes",
460 Dims: Dims{
461 {ID: metricLiveBytes, Name: "applications", Div: 1024},
462 {ID: metricSysBytes, Name: "system", Div: 1024},
463 },
464 }
465 chartLogicalData = Chart{
466 ID: "logical_data",
467 Title: "Logical Data",
468 Units: "KiB",
469 Fam: "storage",
470 Ctx: "cockroachdb.logical_data",
471 Type: collectorapi.Stacked,
472 Dims: Dims{
473 {ID: metricKeyBytes, Name: "keys", Div: 1024},
474 {ID: metricValBytes, Name: "values", Div: 1024},
475 },
476 }
477 chartLogicalDataCount = Chart{
478 ID: "logical_data_count",
479 Title: "Logical Data Count",
480 Units: "num",
481 Fam: "storage",
482 Ctx: "cockroachdb.logical_data_count",
483 Type: collectorapi.Stacked,
484 Dims: Dims{
485 {ID: metricKeyCount, Name: "keys"},
486 {ID: metricValCount, Name: "values"},
487 },
488 }
489 )
490
491 // KV Transactions
492 var (
493 chartKVTransactions = Chart{
494 ID: "kv_transactions",
495 Title: "KV Transactions",
496 Units: "transactions",
497 Fam: "kv transactions",
498 Ctx: "cockroachdb.kv_transactions",
499 Type: collectorapi.Area,
500 Dims: Dims{
501 {ID: metricTxnCommits, Name: "committed", Algo: collectorapi.Incremental},
502 {ID: metricTxnCommits1PC, Name: "fast-path_committed", Algo: collectorapi.Incremental},
503 {ID: metricTxnAborts, Name: "aborted", Algo: collectorapi.Incremental},
504 },
505 }
506 chartKVTransactionsRestarts = Chart{
507 ID: "kv_transaction_restarts",
508 Title: "KV Transaction Restarts",
509 Units: "restarts",
510 Fam: "kv transactions",
511 Ctx: "cockroachdb.kv_transaction_restarts",
512 Type: collectorapi.Stacked,
513 Dims: Dims{
514 {ID: metricTxnRestartsWriteTooOld, Name: "write too old", Algo: collectorapi.Incremental},
515 {ID: metricTxnRestartsWriteTooOldMulti, Name: "write too old (multiple)", Algo: collectorapi.Incremental},
516 {ID: metricTxnRestartsSerializable, Name: "forwarded timestamp (iso=serializable)", Algo: collectorapi.Incremental},
517 {ID: metricTxnRestartsPossibleReplay, Name: "possible reply", Algo: collectorapi.Incremental},
518 {ID: metricTxnRestartsAsyncWriteFailure, Name: "async consensus failure", Algo: collectorapi.Incremental},
519 {ID: metricTxnRestartsReadWithInUncertainty, Name: "read within uncertainty interval", Algo: collectorapi.Incremental},
520 {ID: metricTxnRestartsTxnAborted, Name: "aborted", Algo: collectorapi.Incremental},
521 {ID: metricTxnRestartsTxnPush, Name: "push failure", Algo: collectorapi.Incremental},
522 {ID: metricTxnRestartsUnknown, Name: "unknown", Algo: collectorapi.Incremental},
523 },
524 }
525 )
526
527 // Ranges
528 var (
529 chartRanges = Chart{
530 ID: "ranges",
531 Title: "Ranges",
532 Units: "ranges",
533 Fam: "ranges",
534 Ctx: "cockroachdb.ranges",
535 Dims: Dims{
536 {ID: metricRanges, Name: "ranges"},
537 },
538 }
539 chartRangesWithProblems = Chart{
540 ID: "ranges_replication_problem",
541 Title: "Ranges Replication Problems",
542 Units: "ranges",
543 Fam: "ranges",
544 Ctx: "cockroachdb.ranges_replication_problem",
545 Type: collectorapi.Stacked,
546 Dims: Dims{
547 {ID: metricRangesUnavailable, Name: "unavailable"},
548 {ID: metricRangesUnderReplicated, Name: "under_replicated"},
549 {ID: metricRangesOverReplicated, Name: "over_replicated"},
550 },
551 }
552 chartRangesEvents = Chart{
553 ID: "range_events",
554 Title: "Range Events",
555 Units: "events",
556 Fam: "ranges",
557 Ctx: "cockroachdb.range_events",
558 Type: collectorapi.Stacked,
559 Dims: Dims{
560 {ID: metricRangeSplits, Name: "split", Algo: collectorapi.Incremental},
561 {ID: metricRangeAdds, Name: "add", Algo: collectorapi.Incremental},
562 {ID: metricRangeRemoves, Name: "remove", Algo: collectorapi.Incremental},
563 {ID: metricRangeMerges, Name: "merge", Algo: collectorapi.Incremental},
564 },
565 }
566 chartRangesSnapshotEvents = Chart{
567 ID: "range_snapshot_events",
568 Title: "Range Snapshot Events",
569 Units: "events",
570 Fam: "ranges",
571 Ctx: "cockroachdb.range_snapshot_events",
572 Type: collectorapi.Stacked,
573 Dims: Dims{
574 {ID: metricRangeSnapshotsGenerated, Name: "generated", Algo: collectorapi.Incremental},
575 {ID: metricRangeSnapshotsNormalApplied, Name: "applied (raft-initiated)", Algo: collectorapi.Incremental},
576 {ID: metricRangeSnapshotsLearnerApplied, Name: "applied (learner)", Algo: collectorapi.Incremental},
577 {ID: metricRangeSnapshotsPreemptiveApplied, Name: "applied (preemptive)", Algo: collectorapi.Incremental},
578 },
579 }
580 )
581
582 // RocksDB
583 var (
584 chartRocksDBReadAmplification = Chart{
585 ID: "rocksdb_read_amplification",
586 Title: "RocksDB Read Amplification",
587 Units: "reads/query",
588 Fam: "rocksdb",
589 Ctx: "cockroachdb.rocksdb_read_amplification",
590 Dims: Dims{
591 {ID: metricRocksDBReadAmplification, Name: "reads"},
592 },
593 }
594 chartRocksDBTableOperations = Chart{
595 ID: "rocksdb_table_operations",
596 Title: "RocksDB Table Operations",
597 Units: "operations",
598 Fam: "rocksdb",
599 Ctx: "cockroachdb.rocksdb_table_operations",
600 Dims: Dims{
601 {ID: metricRocksDBCompactions, Name: "compactions", Algo: collectorapi.Incremental},
602 {ID: metricRocksDBFlushes, Name: "flushes", Algo: collectorapi.Incremental},
603 },
604 }
605 chartRocksDBCacheUsage = Chart{
606 ID: "rocksdb_cache_usage",
607 Title: "RocksDB Block Cache Usage",
608 Units: "KiB",
609 Fam: "rocksdb",
610 Ctx: "cockroachdb.rocksdb_cache_usage",
611 Type: collectorapi.Area,
612 Dims: Dims{
613 {ID: metricRocksDBBlockCacheUsage, Name: "used", Div: 1024},
614 },
615 }
616 chartRocksDBCacheOperations = Chart{
617 ID: "rocksdb_cache_operations",
618 Title: "RocksDB Block Cache Operations",
619 Units: "operations",
620 Fam: "rocksdb",
621 Ctx: "cockroachdb.rocksdb_cache_operations",
622 Type: collectorapi.Stacked,
623 Dims: Dims{
624 {ID: metricRocksDBBlockCacheHits, Name: "hits", Algo: collectorapi.Incremental},
625 {ID: metricRocksDBBlockCacheMisses, Name: "misses", Algo: collectorapi.Incremental},
626 },
627 }
628 chartRocksDBCacheHitRage = Chart{
629 ID: "rocksdb_cache_hit_rate",
630 Title: "RocksDB Block Cache Hit Rate",
631 Units: "percentage",
632 Fam: "rocksdb",
633 Ctx: "cockroachdb.rocksdb_cache_hit_rate",
634 Type: collectorapi.Area,
635 Dims: Dims{
636 {ID: metricRocksDBBlockCacheHitRate, Name: "hit rate"},
637 },
638 }
639 chartRocksDBSSTables = Chart{
640 ID: "rocksdb_sstables",
641 Title: "RocksDB SSTables",
642 Units: "sstables",
643 Fam: "rocksdb",
644 Ctx: "cockroachdb.rocksdb_sstables",
645 Dims: Dims{
646 {ID: metricRocksDBNumSSTables, Name: "sstables"},
647 },
648 }
649 )
650
651 // Replicas
652 var (
653 chartReplicas = Chart{
654 ID: "replicas",
655 Title: "Number of Replicas",
656 Units: "replicas",
657 Fam: "replication",
658 Ctx: "cockroachdb.replicas",
659 Dims: Dims{
660 {ID: metricReplicas, Name: "replicas"},
661 },
662 }
663 chartReplicasQuiescence = Chart{
664 ID: "replicas_quiescence",
665 Title: "Replicas Quiescence",
666 Units: "replicas",
667 Fam: "replication",
668 Ctx: "cockroachdb.replicas_quiescence",
669 Type: collectorapi.Stacked,
670 Dims: Dims{
671 {ID: metricReplicasQuiescent, Name: "quiescent"},
672 {ID: metricReplicasActive, Name: "active"},
673 },
674 }
675 chartReplicasLeaders = Chart{
676 ID: "replicas_leaders",
677 Title: "Number of Raft Leaders",
678 Units: "replicas",
679 Fam: "replication",
680 Ctx: "cockroachdb.replicas_leaders",
681 Type: collectorapi.Area,
682 Dims: Dims{
683 {ID: metricReplicasLeaders, Name: "leaders"},
684 {ID: metricReplicasLeadersNotLeaseholders, Name: "not leaseholders"},
685 },
686 }
687 chartReplicasLeaseHolder = Chart{
688 ID: "replicas_leaseholders",
689 Title: "Number of Leaseholders",
690 Units: "leaseholders",
691 Fam: "replication",
692 Ctx: "cockroachdb.replicas_leaseholders",
693 Dims: Dims{
694 {ID: metricReplicasLeaseholders, Name: "leaseholders"},
695 },
696 }
697 )
698
699 // Queues
700 var (
701 chartQueuesProcessingFailures = Chart{
702 ID: "queue_processing_failures",
703 Title: "Queues Processing Failures",
704 Units: "failures",
705 Fam: "queues",
706 Ctx: "cockroachdb.queue_processing_failures",
707 Type: collectorapi.Stacked,
708 Dims: Dims{
709 {ID: metricQueueGCProcessFailure, Name: "gc", Algo: collectorapi.Incremental},
710 {ID: metricQueueReplicaGCProcessFailure, Name: "replica gc", Algo: collectorapi.Incremental},
711 {ID: metricQueueReplicateProcessFailure, Name: "replication", Algo: collectorapi.Incremental},
712 {ID: metricQueueSplitProcessFailure, Name: "split", Algo: collectorapi.Incremental},
713 {ID: metricQueueConsistencyProcessFailure, Name: "consistency", Algo: collectorapi.Incremental},
714 {ID: metricQueueRaftLogProcessFailure, Name: "raft log", Algo: collectorapi.Incremental},
715 {ID: metricQueueRaftSnapshotProcessFailure, Name: "raft snapshot", Algo: collectorapi.Incremental},
716 {ID: metricQueueTSMaintenanceProcessFailure, Name: "time series maintenance", Algo: collectorapi.Incremental},
717 },
718 }
719 )
720
721 // Rebalancing
722 var (
723 chartRebalancingQueries = Chart{
724 ID: "rebalancing_queries",
725 Title: "Rebalancing Average Queries",
726 Units: "queries/s",
727 Fam: "rebalancing",
728 Ctx: "cockroachdb.rebalancing_queries",
729 Dims: Dims{
730 {ID: metricRebalancingQueriesPerSecond, Name: "avg", Div: precision},
731 },
732 }
733 chartRebalancingWrites = Chart{
734 ID: "rebalancing_writes",
735 Title: "Rebalancing Average Writes",
736 Units: "writes/s",
737 Fam: "rebalancing",
738 Ctx: "cockroachdb.rebalancing_writes",
739 Dims: Dims{
740 {ID: metricRebalancingWritesPerSecond, Name: "avg", Div: precision},
741 },
742 }
743 )
744
745 // Time Series
746 var (
747 chartTimeSeriesWrittenSamples = Chart{
748 ID: "timeseries_samples",
749 Title: "Time Series Written Samples",
750 Units: "samples",
751 Fam: "time series",
752 Ctx: "cockroachdb.timeseries_samples",
753 Dims: Dims{
754 {ID: metricTimeSeriesWriteSamples, Name: "written", Algo: collectorapi.Incremental},
755 },
756 }
757 chartTimeSeriesWriteErrors = Chart{
758 ID: "timeseries_write_errors",
759 Title: "Time Series Write Errors",
760 Units: "errors",
761 Fam: "time series",
762 Ctx: "cockroachdb.timeseries_write_errors",
763 Dims: Dims{
764 {ID: metricTimeSeriesWriteErrors, Name: "write", Algo: collectorapi.Incremental},
765 },
766 }
767 chartTimeSeriesWrittenBytes = Chart{
768 ID: "timeseries_write_bytes",
769 Title: "Time Series Bytes Written",
770 Units: "KiB",
771 Fam: "time series",
772 Ctx: "cockroachdb.timeseries_write_bytes",
773 Dims: Dims{
774 {ID: metricTimeSeriesWriteBytes, Name: "written", Algo: collectorapi.Incremental},
775 },
776 }
777 )
778
779 // Slow Requests
780 var (
781 chartSlowRequests = Chart{
782 ID: "slow_requests",
783 Title: "Slow Requests",
784 Units: "requests",
785 Fam: "slow requests",
786 Ctx: "cockroachdb.slow_requests",
787 Type: collectorapi.Stacked,
788 Dims: Dims{
789 {ID: metricRequestsSlowLatch, Name: "acquiring latches"},
790 {ID: metricRequestsSlowLease, Name: "acquiring lease"},
791 {ID: metricRequestsSlowRaft, Name: "in raft"},
792 },
793 }
794 )
795
796 // Go/Cgo
797 var (
798 chartGoCgoHeapMemory = Chart{
799 ID: "code_heap_memory_usage",
800 Title: "Heap Memory Usage",
801 Units: "KiB",
802 Fam: "go/cgo",
803 Ctx: "cockroachdb.code_heap_memory_usage",
804 Type: collectorapi.Stacked,
805 Dims: Dims{
806 {ID: metricSysGoAllocBytes, Name: "go", Div: 1024},
807 {ID: metricSysCGoAllocBytes, Name: "cgo", Div: 1024},
808 },
809 }
810 chartGoroutines = Chart{
811 ID: "goroutines_count",
812 Title: "Number of Goroutines",
813 Units: "goroutines",
814 Fam: "go/cgo",
815 Ctx: "cockroachdb.goroutines",
816 Dims: Dims{
817 {ID: metricSysGoroutines, Name: "goroutines"},
818 },
819 }
820 chartGCRuns = Chart{
821 ID: "gc_count",
822 Title: "GC Runs",
823 Units: "invokes",
824 Fam: "go/cgo",
825 Ctx: "cockroachdb.gc_count",
826 Dims: Dims{
827 {ID: metricSysGCCount, Name: "gc", Algo: collectorapi.Incremental},
828 },
829 }
830 chartGCPauseTime = Chart{
831 ID: "gc_pause",
832 Title: "GC Pause Time",
833 Units: "us",
834 Fam: "go/cgo",
835 Ctx: "cockroachdb.gc_pause",
836 Dims: Dims{
837 {ID: metricSysGCPauseNs, Name: "pause", Algo: collectorapi.Incremental, Div: 1e3},
838 },
839 }
840 chartCGoCalls = Chart{
841 ID: "cgo_calls",
842 Title: "Cgo Calls",
843 Units: "calls",
844 Fam: "go/cgo",
845 Ctx: "cockroachdb.cgo_calls",
846 Dims: Dims{
847 {ID: metricSysCGoCalls, Name: "cgo", Algo: collectorapi.Incremental},
848 },
849 }
850 )