github.com/netdata/go.d.plugin@v0.58.1/modules/cockroachdb/charts.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package cockroachdb
     4  
     5  import "github.com/netdata/go.d.plugin/agent/module"
     6  
     7  type (
     8  	Charts = module.Charts
     9  	Chart  = module.Chart
    10  	Dims   = module.Dims
    11  	Vars   = module.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:  module.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:  module.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:  module.Stacked,
   123  		Dims: Dims{
   124  			{ID: metricSysCPUUserNs, Name: "user", Algo: module.Incremental, Div: 1e6},
   125  			{ID: metricSysCPUSysNs, Name: "sys", Algo: module.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:  module.Area,
   173  		Dims: Dims{
   174  			{ID: metricSysHostDiskReadBytes, Name: "read", Div: 1024, Algo: module.Incremental},
   175  			{ID: metricSysHostDiskWriteBytes, Name: "write", Div: -1024, Algo: module.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: module.Incremental},
   186  			{ID: metricSysHostDiskWriteCount, Name: "writes", Mul: -1, Algo: module.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:  module.Area,
   206  		Dims: Dims{
   207  			{ID: metricSysHostNetRecvBytes, Name: "received", Div: 1000, Algo: module.Incremental},
   208  			{ID: metricSysHostNetSendBytes, Name: "sent", Div: -1000, Algo: module.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: module.Incremental},
   219  			{ID: metricSysHostNetSendPackets, Name: "sent", Mul: -1, Algo: module.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:  module.Stacked,
   243  		Dims: Dims{
   244  			{ID: metricHeartBeatSuccesses, Name: "successful", Algo: module.Incremental},
   245  			{ID: metricHeartBeatFailures, Name: "failed", Algo: module.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:  module.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:  module.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:  module.Area,
   318  		Dims: Dims{
   319  			{ID: metricSQLBytesIn, Name: "received", Div: 1024, Algo: module.Incremental},
   320  			{ID: metricSQLBytesOut, Name: "sent", Div: -1024, Algo: module.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:  module.Area,
   330  		Dims: Dims{
   331  			{ID: metricSQLQueryStartedCount, Name: "started", Algo: module.Incremental},
   332  			{ID: metricSQLQueryCount, Name: "executed", Algo: module.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: module.Incremental},
   343  			{ID: metricSQLTXNAbortCount, Name: "transaction", Algo: module.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:  module.Stacked,
   373  		Dims: Dims{
   374  			{ID: metricSQLSelectStartedCount, Name: "SELECT", Algo: module.Incremental},
   375  			{ID: metricSQLUpdateStartedCount, Name: "UPDATE", Algo: module.Incremental},
   376  			{ID: metricSQLInsertStartedCount, Name: "INSERT", Algo: module.Incremental},
   377  			{ID: metricSQLDeleteStartedCount, Name: "DELETE", Algo: module.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:  module.Stacked,
   387  		Dims: Dims{
   388  			{ID: metricSQLSelectCount, Name: "SELECT", Algo: module.Incremental},
   389  			{ID: metricSQLUpdateCount, Name: "UPDATE", Algo: module.Incremental},
   390  			{ID: metricSQLInsertCount, Name: "INSERT", Algo: module.Incremental},
   391  			{ID: metricSQLDeleteCount, Name: "DELETE", Algo: module.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:  module.Stacked,
   401  		Dims: Dims{
   402  			{ID: metricSQLTXNBeginStartedCount, Name: "BEGIN", Algo: module.Incremental},
   403  			{ID: metricSQLTXNCommitStartedCount, Name: "COMMIT", Algo: module.Incremental},
   404  			{ID: metricSQLTXNRollbackStartedCount, Name: "ROLLBACK", Algo: module.Incremental},
   405  			{ID: metricSQLSavepointStartedCount, Name: "SAVEPOINT", Algo: module.Incremental},
   406  			{ID: metricSQLRestartSavepointStartedCount, Name: "SAVEPOINT cockroach_restart", Algo: module.Incremental},
   407  			{ID: metricSQLRestartSavepointReleaseStartedCount, Name: "RELEASE SAVEPOINT cockroach_restart", Algo: module.Incremental},
   408  			{ID: metricSQLRestartSavepointRollbackStartedCount, Name: "ROLLBACK TO SAVEPOINT cockroach_restart", Algo: module.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:  module.Stacked,
   418  		Dims: Dims{
   419  			{ID: metricSQLTXNBeginCount, Name: "BEGIN", Algo: module.Incremental},
   420  			{ID: metricSQLTXNCommitCount, Name: "COMMIT", Algo: module.Incremental},
   421  			{ID: metricSQLTXNRollbackCount, Name: "ROLLBACK", Algo: module.Incremental},
   422  			{ID: metricSQLSavepointCount, Name: "SAVEPOINT", Algo: module.Incremental},
   423  			{ID: metricSQLRestartSavepointCount, Name: "SAVEPOINT cockroach_restart", Algo: module.Incremental},
   424  			{ID: metricSQLRestartSavepointReleaseCount, Name: "RELEASE SAVEPOINT cockroach_restart", Algo: module.Incremental},
   425  			{ID: metricSQLRestartSavepointRollbackCount, Name: "ROLLBACK TO SAVEPOINT cockroach_restart", Algo: module.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:  module.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:  module.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:  module.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:  module.Area,
   500  		Dims: Dims{
   501  			{ID: metricTxnCommits, Name: "committed", Algo: module.Incremental},
   502  			{ID: metricTxnCommits1PC, Name: "fast-path_committed", Algo: module.Incremental},
   503  			{ID: metricTxnAborts, Name: "aborted", Algo: module.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:  module.Stacked,
   513  		Dims: Dims{
   514  			{ID: metricTxnRestartsWriteTooOld, Name: "write too old", Algo: module.Incremental},
   515  			{ID: metricTxnRestartsWriteTooOldMulti, Name: "write too old (multiple)", Algo: module.Incremental},
   516  			{ID: metricTxnRestartsSerializable, Name: "forwarded timestamp (iso=serializable)", Algo: module.Incremental},
   517  			{ID: metricTxnRestartsPossibleReplay, Name: "possible reply", Algo: module.Incremental},
   518  			{ID: metricTxnRestartsAsyncWriteFailure, Name: "async consensus failure", Algo: module.Incremental},
   519  			{ID: metricTxnRestartsReadWithInUncertainty, Name: "read within uncertainty interval", Algo: module.Incremental},
   520  			{ID: metricTxnRestartsTxnAborted, Name: "aborted", Algo: module.Incremental},
   521  			{ID: metricTxnRestartsTxnPush, Name: "push failure", Algo: module.Incremental},
   522  			{ID: metricTxnRestartsUnknown, Name: "unknown", Algo: module.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:  module.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:  module.Stacked,
   559  		Dims: Dims{
   560  			{ID: metricRangeSplits, Name: "split", Algo: module.Incremental},
   561  			{ID: metricRangeAdds, Name: "add", Algo: module.Incremental},
   562  			{ID: metricRangeRemoves, Name: "remove", Algo: module.Incremental},
   563  			{ID: metricRangeMerges, Name: "merge", Algo: module.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:  module.Stacked,
   573  		Dims: Dims{
   574  			{ID: metricRangeSnapshotsGenerated, Name: "generated", Algo: module.Incremental},
   575  			{ID: metricRangeSnapshotsNormalApplied, Name: "applied (raft-initiated)", Algo: module.Incremental},
   576  			{ID: metricRangeSnapshotsLearnerApplied, Name: "applied (learner)", Algo: module.Incremental},
   577  			{ID: metricRangeSnapshotsPreemptiveApplied, Name: "applied (preemptive)", Algo: module.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: module.Incremental},
   602  			{ID: metricRocksDBFlushes, Name: "flushes", Algo: module.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:  module.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:  module.Stacked,
   623  		Dims: Dims{
   624  			{ID: metricRocksDBBlockCacheHits, Name: "hits", Algo: module.Incremental},
   625  			{ID: metricRocksDBBlockCacheMisses, Name: "misses", Algo: module.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:  module.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:  module.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:  module.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:  module.Stacked,
   708  		Dims: Dims{
   709  			{ID: metricQueueGCProcessFailure, Name: "gc", Algo: module.Incremental},
   710  			{ID: metricQueueReplicaGCProcessFailure, Name: "replica gc", Algo: module.Incremental},
   711  			{ID: metricQueueReplicateProcessFailure, Name: "replication", Algo: module.Incremental},
   712  			{ID: metricQueueSplitProcessFailure, Name: "split", Algo: module.Incremental},
   713  			{ID: metricQueueConsistencyProcessFailure, Name: "consistency", Algo: module.Incremental},
   714  			{ID: metricQueueRaftLogProcessFailure, Name: "raft log", Algo: module.Incremental},
   715  			{ID: metricQueueRaftSnapshotProcessFailure, Name: "raft snapshot", Algo: module.Incremental},
   716  			{ID: metricQueueTSMaintenanceProcessFailure, Name: "time series maintenance", Algo: module.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: module.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: module.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: module.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:  module.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:  module.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: module.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: module.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: module.Incremental},
   848  		},
   849  	}
   850  )