github.com/netdata/go.d.plugin@v0.58.1/modules/mongodb/charts.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package mongo 4 5 import ( 6 "github.com/netdata/go.d.plugin/agent/module" 7 ) 8 9 const ( 10 prioOperationsRate = module.Priority + iota 11 prioOperationsLatencyTime 12 prioOperationsByTypeRate 13 prioDocumentOperationsRate 14 prioScannedIndexesRate 15 prioScannedDocumentsRate 16 17 prioActiveClientsCount 18 prioQueuedOperationsCount 19 20 prioGlobalLockAcquisitionsRate 21 prioDatabaseLockAcquisitionsRate 22 prioCollectionLockAcquisitionsRate 23 prioMutexLockAcquisitionsRate 24 prioMetadataLockAcquisitionsRate 25 prioOpLogLockAcquisitionsRate 26 27 prioCursorsOpenCount 28 prioCursorsOpenNoTimeoutCount 29 prioCursorsOpenedRate 30 prioTimedOutCursorsRate 31 prioCursorsByLifespanCount 32 33 prioTransactionsCount 34 prioTransactionsRate 35 prioTransactionsNoShardsCommitsRate 36 prioTransactionsNoShardsCommitsDurationTime 37 prioTransactionsSingleShardCommitsRate 38 prioTransactionsSingleShardCommitsDurationTime 39 prioTransactionsSingleWriteShardCommitsRate 40 prioTransactionsSingleWriteShardCommitsDurationTime 41 prioTransactionsReadOnlyCommitsRate 42 prioTransactionsReadOnlyCommitsDurationTime 43 prioTransactionsTwoPhaseCommitCommitsRate 44 prioTransactionsTwoPhaseCommitCommitsDurationTime 45 prioTransactionsRecoverWithTokenCommitsRate 46 prioTransactionsRecoverWithTokenCommitsDurationTime 47 48 prioConnectionsUsage 49 prioConnectionsByStateCount 50 prioConnectionsRate 51 52 prioAssertsRate 53 54 prioNetworkTrafficRate 55 prioNetworkRequestsRate 56 prioNetworkSlowDNSResolutionsRate 57 prioNetworkSlowSSLHandshakesRate 58 59 prioMemoryResidentSize 60 prioMemoryVirtualSize 61 prioMemoryPageFaultsRate 62 prioMemoryTCMallocStats 63 64 prioWiredTigerConcurrentReadTransactionsUsage 65 prioWiredTigerConcurrentWriteTransactionsUsage 66 prioWiredTigerCacheUsage 67 prioWiredTigerCacheDirtySpaceSize 68 prioWiredTigerCacheIORate 69 prioWiredTigerCacheEvictionsRate 70 71 prioDatabaseCollectionsCount 72 prioDatabaseIndexesCount 73 prioDatabaseViewsCount 74 prioDatabaseDocumentsCount 75 prioDatabaseDataSize 76 prioDatabaseStorageSize 77 prioDatabaseIndexSize 78 79 prioReplSetMemberState 80 prioReplSetMemberHealthStatus 81 prioReplSetMemberReplicationLagTime 82 prioReplSetMemberHeartbeatLatencyTime 83 prioReplSetMemberPingRTTTime 84 prioReplSetMemberUptime 85 86 prioShardingNodesCount 87 prioShardingShardedDatabasesCount 88 prioShardingShardedCollectionsCount 89 prioShardChunks 90 ) 91 92 const ( 93 chartPxDatabase = "database_" 94 chartPxReplSetMember = "replica_set_member_" 95 chartPxShard = "sharding_shard_" 96 ) 97 98 // these charts are expected to be available in many versions 99 var chartsServerStatus = module.Charts{ 100 chartOperationsByTypeRate.Copy(), 101 chartDocumentOperationsRate.Copy(), 102 chartScannedIndexesRate.Copy(), 103 chartScannedDocumentsRate.Copy(), 104 105 chartConnectionsUsage.Copy(), 106 chartConnectionsByStateCount.Copy(), 107 chartConnectionsRate.Copy(), 108 109 chartNetworkTrafficRate.Copy(), 110 chartNetworkRequestsRate.Copy(), 111 112 chartMemoryResidentSize.Copy(), 113 chartMemoryVirtualSize.Copy(), 114 chartMemoryPageFaultsRate.Copy(), 115 116 chartAssertsRate.Copy(), 117 } 118 119 var chartsTmplDatabase = module.Charts{ 120 chartTmplDatabaseCollectionsCount.Copy(), 121 chartTmplDatabaseIndexesCount.Copy(), 122 chartTmplDatabaseViewsCount.Copy(), 123 chartTmplDatabaseDocumentsCount.Copy(), 124 chartTmplDatabaseDataSize.Copy(), 125 chartTmplDatabaseStorageSize.Copy(), 126 chartTmplDatabaseIndexSize.Copy(), 127 } 128 129 var chartsTmplReplSetMember = module.Charts{ 130 chartTmplReplSetMemberState.Copy(), 131 chartTmplReplSetMemberHealthStatus.Copy(), 132 chartTmplReplSetMemberReplicationLagTime.Copy(), 133 chartTmplReplSetMemberHeartbeatLatencyTime.Copy(), 134 chartTmplReplSetMemberPingRTTTime.Copy(), 135 chartTmplReplSetMemberUptime.Copy(), 136 } 137 138 var chartsSharding = module.Charts{ 139 chartShardingNodesCount.Copy(), 140 chartShardingShardedDatabases.Copy(), 141 chartShardingShardedCollectionsCount.Copy(), 142 } 143 144 var chartsTmplShardingShard = module.Charts{ 145 chartTmplShardChunks.Copy(), 146 } 147 148 var ( 149 chartOperationsRate = module.Chart{ 150 ID: "operations_rate", 151 Title: "Operations rate", 152 Units: "operations/s", 153 Fam: "operations", 154 Ctx: "mongodb.operations_rate", 155 Priority: prioOperationsRate, 156 Dims: module.Dims{ 157 {ID: "operations_latencies_reads_ops", Name: "reads", Algo: module.Incremental}, 158 {ID: "operations_latencies_writes_ops", Name: "writes", Algo: module.Incremental}, 159 {ID: "operations_latencies_commands_ops", Name: "commands", Algo: module.Incremental}, 160 }, 161 } 162 chartOperationsLatencyTime = module.Chart{ 163 ID: "operations_latency_time", 164 Title: "Operations Latency", 165 Units: "milliseconds", 166 Fam: "operations", 167 Ctx: "mongodb.operations_latency_time", 168 Priority: prioOperationsLatencyTime, 169 Dims: module.Dims{ 170 {ID: "operations_latencies_reads_latency", Name: "reads", Algo: module.Incremental, Div: 1000}, 171 {ID: "operations_latencies_writes_latency", Name: "writes", Algo: module.Incremental, Div: 1000}, 172 {ID: "operations_latencies_commands_latency", Name: "commands", Algo: module.Incremental, Div: 1000}, 173 }, 174 } 175 chartOperationsByTypeRate = module.Chart{ 176 ID: "operations_by_type_rate", 177 Title: "Operations by type", 178 Units: "operations/s", 179 Fam: "operations", 180 Ctx: "mongodb.operations_by_type_rate", 181 Priority: prioOperationsByTypeRate, 182 Dims: module.Dims{ 183 {ID: "operations_insert", Name: "insert", Algo: module.Incremental}, 184 {ID: "operations_query", Name: "query", Algo: module.Incremental}, 185 {ID: "operations_update", Name: "update", Algo: module.Incremental}, 186 {ID: "operations_delete", Name: "delete", Algo: module.Incremental}, 187 {ID: "operations_getmore", Name: "getmore", Algo: module.Incremental}, 188 {ID: "operations_command", Name: "command", Algo: module.Incremental}, 189 }, 190 } 191 chartDocumentOperationsRate = module.Chart{ 192 ID: "document_operations_rate", 193 Title: "Document operations", 194 Units: "operations/s", 195 Fam: "operations", 196 Ctx: "mongodb.document_operations_rate", 197 Type: module.Stacked, 198 Priority: prioDocumentOperationsRate, 199 Dims: module.Dims{ 200 {ID: "metrics_document_inserted", Name: "inserted", Algo: module.Incremental}, 201 {ID: "metrics_document_deleted", Name: "deleted", Algo: module.Incremental}, 202 {ID: "metrics_document_returned", Name: "returned", Algo: module.Incremental}, 203 {ID: "metrics_document_updated", Name: "updated", Algo: module.Incremental}, 204 }, 205 } 206 chartScannedIndexesRate = module.Chart{ 207 ID: "scanned_indexes_rate", 208 Title: "Scanned indexes", 209 Units: "indexes/s", 210 Fam: "operations", 211 Ctx: "mongodb.scanned_indexes_rate", 212 Priority: prioScannedIndexesRate, 213 Dims: module.Dims{ 214 {ID: "metrics_query_executor_scanned", Name: "scanned", Algo: module.Incremental}, 215 }, 216 } 217 chartScannedDocumentsRate = module.Chart{ 218 ID: "scanned_documents_rate", 219 Title: "Scanned documents", 220 Units: "documents/s", 221 Fam: "operations", 222 Ctx: "mongodb.scanned_documents_rate", 223 Priority: prioScannedDocumentsRate, 224 Dims: module.Dims{ 225 {ID: "metrics_query_executor_scanned_objects", Name: "scanned", Algo: module.Incremental}, 226 }, 227 } 228 229 chartGlobalLockActiveClientsCount = module.Chart{ 230 ID: "active_clients_count", 231 Title: "Connected clients", 232 Units: "clients", 233 Fam: "clients", 234 Ctx: "mongodb.active_clients_count", 235 Priority: prioActiveClientsCount, 236 Dims: module.Dims{ 237 {ID: "global_lock_active_clients_readers", Name: "readers"}, 238 {ID: "global_lock_active_clients_writers", Name: "writers"}, 239 }, 240 } 241 chartGlobalLockCurrentQueueCount = module.Chart{ 242 ID: "queued_operations", 243 Title: "Queued operations because of a lock", 244 Units: "operations", 245 Fam: "clients", 246 Ctx: "mongodb.queued_operations_count", 247 Priority: prioQueuedOperationsCount, 248 Dims: module.Dims{ 249 {ID: "global_lock_current_queue_readers", Name: "readers"}, 250 {ID: "global_lock_current_queue_writers", Name: "writers"}, 251 }, 252 } 253 254 chartConnectionsUsage = module.Chart{ 255 ID: "connections_usage", 256 Title: "Connections usage", 257 Units: "connections", 258 Fam: "connections", 259 Ctx: "mongodb.connections_usage", 260 Type: module.Stacked, 261 Priority: prioConnectionsUsage, 262 Dims: module.Dims{ 263 {ID: "connections_available", Name: "available"}, 264 {ID: "connections_current", Name: "used"}, 265 }, 266 } 267 chartConnectionsByStateCount = module.Chart{ 268 ID: "connections_by_state_count", 269 Title: "Connections By State", 270 Units: "connections", 271 Fam: "connections", 272 Ctx: "mongodb.connections_by_state_count", 273 Priority: prioConnectionsByStateCount, 274 Dims: module.Dims{ 275 {ID: "connections_active", Name: "active"}, 276 {ID: "connections_threaded", Name: "threaded"}, 277 {ID: "connections_exhaust_is_master", Name: "exhaust_is_master"}, 278 {ID: "connections_exhaust_hello", Name: "exhaust_hello"}, 279 {ID: "connections_awaiting_topology_changes", Name: "awaiting_topology_changes"}, 280 }, 281 } 282 chartConnectionsRate = module.Chart{ 283 ID: "connections_rate", 284 Title: "Connections Rate", 285 Units: "connections/s", 286 Fam: "connections", 287 Ctx: "mongodb.connections_rate", 288 Priority: prioConnectionsRate, 289 Dims: module.Dims{ 290 {ID: "connections_total_created", Name: "created", Algo: module.Incremental}, 291 }, 292 } 293 294 chartNetworkTrafficRate = module.Chart{ 295 ID: "network_traffic", 296 Title: "Network traffic", 297 Units: "bytes/s", 298 Fam: "network", 299 Ctx: "mongodb.network_traffic_rate", 300 Priority: prioNetworkTrafficRate, 301 Type: module.Area, 302 Dims: module.Dims{ 303 {ID: "network_bytes_in", Name: "in", Algo: module.Incremental}, 304 {ID: "network_bytes_out", Name: "out", Algo: module.Incremental}, 305 }, 306 } 307 chartNetworkRequestsRate = module.Chart{ 308 ID: "network_requests_rate", 309 Title: "Network Requests", 310 Units: "requests/s", 311 Fam: "network", 312 Ctx: "mongodb.network_requests_rate", 313 Priority: prioNetworkRequestsRate, 314 Dims: module.Dims{ 315 {ID: "network_requests", Name: "requests", Algo: module.Incremental}, 316 }, 317 } 318 chartNetworkSlowDNSResolutionsRate = module.Chart{ 319 ID: "network_slow_dns_resolutions_rate", 320 Title: "Slow DNS resolution operations", 321 Units: "resolutions/s", 322 Fam: "network", 323 Ctx: "mongodb.network_slow_dns_resolutions_rate", 324 Priority: prioNetworkSlowDNSResolutionsRate, 325 Dims: module.Dims{ 326 {ID: "network_slow_dns_operations", Name: "slow_dns", Algo: module.Incremental}, 327 }, 328 } 329 chartNetworkSlowSSLHandshakesRate = module.Chart{ 330 ID: "network_slow_ssl_handshakes_rate", 331 Title: "Slow SSL handshake operations", 332 Units: "handshakes/s", 333 Fam: "network", 334 Ctx: "mongodb.network_slow_ssl_handshakes_rate", 335 Priority: prioNetworkSlowSSLHandshakesRate, 336 Dims: module.Dims{ 337 {ID: "network_slow_ssl_operations", Name: "slow_ssl", Algo: module.Incremental}, 338 }, 339 } 340 341 chartMemoryResidentSize = module.Chart{ 342 ID: "memory_resident_size", 343 Title: "Used resident memory", 344 Units: "bytes", 345 Fam: "memory", 346 Ctx: "mongodb.memory_resident_size", 347 Priority: prioMemoryResidentSize, 348 Dims: module.Dims{ 349 {ID: "memory_resident", Name: "used"}, 350 }, 351 } 352 chartMemoryVirtualSize = module.Chart{ 353 ID: "memory_virtual_size", 354 Title: "Used virtual memory", 355 Units: "bytes", 356 Fam: "memory", 357 Ctx: "mongodb.memory_virtual_size", 358 Priority: prioMemoryVirtualSize, 359 Dims: module.Dims{ 360 {ID: "memory_virtual", Name: "used"}, 361 }, 362 } 363 chartMemoryPageFaultsRate = module.Chart{ 364 ID: "memory_page_faults", 365 Title: "Memory page faults", 366 Units: "pgfaults/s", 367 Fam: "memory", 368 Ctx: "mongodb.memory_page_faults_rate", 369 Priority: prioMemoryPageFaultsRate, 370 Dims: module.Dims{ 371 {ID: "extra_info_page_faults", Name: "pgfaults", Algo: module.Incremental}, 372 }, 373 } 374 chartMemoryTCMallocStatsChart = module.Chart{ 375 ID: "memory_tcmalloc_stats", 376 Title: "TCMalloc statistics", 377 Units: "bytes", 378 Fam: "memory", 379 Ctx: "mongodb.memory_tcmalloc_stats", 380 Priority: prioMemoryTCMallocStats, 381 Dims: module.Dims{ 382 {ID: "tcmalloc_generic_current_allocated_bytes", Name: "allocated"}, 383 {ID: "tcmalloc_central_cache_free_bytes", Name: "central_cache_freelist"}, 384 {ID: "tcmalloc_transfer_cache_free_bytes", Name: "transfer_cache_freelist"}, 385 {ID: "tcmalloc_thread_cache_free_bytes", Name: "thread_cache_freelists"}, 386 {ID: "tcmalloc_pageheap_free_bytes", Name: "pageheap_freelist"}, 387 {ID: "tcmalloc_pageheap_unmapped_bytes", Name: "pageheap_unmapped"}, 388 }, 389 } 390 391 chartAssertsRate = module.Chart{ 392 ID: "asserts_rate", 393 Title: "Raised assertions", 394 Units: "asserts/s", 395 Fam: "asserts", 396 Ctx: "mongodb.asserts_rate", 397 Type: module.Stacked, 398 Priority: prioAssertsRate, 399 Dims: module.Dims{ 400 {ID: "asserts_regular", Name: "regular", Algo: module.Incremental}, 401 {ID: "asserts_warning", Name: "warning", Algo: module.Incremental}, 402 {ID: "asserts_msg", Name: "msg", Algo: module.Incremental}, 403 {ID: "asserts_user", Name: "user", Algo: module.Incremental}, 404 {ID: "asserts_tripwire", Name: "tripwire", Algo: module.Incremental}, 405 {ID: "asserts_rollovers", Name: "rollovers", Algo: module.Incremental}, 406 }, 407 } 408 409 chartTransactionsCount = module.Chart{ 410 ID: "transactions_count", 411 Title: "Current transactions", 412 Units: "transactions", 413 Fam: "transactions", 414 Ctx: "mongodb.transactions_count", 415 Priority: prioTransactionsCount, 416 Dims: module.Dims{ 417 {ID: "txn_active", Name: "active"}, 418 {ID: "txn_inactive", Name: "inactive"}, 419 {ID: "txn_open", Name: "open"}, 420 {ID: "txn_prepared", Name: "prepared"}, 421 }, 422 } 423 chartTransactionsRate = module.Chart{ 424 ID: "transactions_rate", 425 Title: "Transactions rate", 426 Units: "transactions/s", 427 Fam: "transactions", 428 Ctx: "mongodb.transactions_rate", 429 Priority: prioTransactionsRate, 430 Dims: module.Dims{ 431 {ID: "txn_total_started", Name: "started", Algo: module.Incremental}, 432 {ID: "txn_total_aborted", Name: "aborted", Algo: module.Incremental}, 433 {ID: "txn_total_committed", Name: "committed", Algo: module.Incremental}, 434 {ID: "txn_total_prepared", Name: "prepared", Algo: module.Incremental}, 435 }, 436 } 437 chartTransactionsNoShardsCommitsRate = module.Chart{ 438 ID: "transactions_no_shards_commits_rate", 439 Title: "Transactions commits", 440 Units: "commits/s", 441 Fam: "transactions", 442 Ctx: "mongodb.transactions_commits_rate", 443 Priority: prioTransactionsNoShardsCommitsRate, 444 Type: module.Stacked, 445 Labels: []module.Label{{Key: "commit_type", Value: "noShards"}}, 446 Dims: module.Dims{ 447 {ID: "txn_commit_types_no_shards_successful", Name: "success", Algo: module.Incremental}, 448 {ID: "txn_commit_types_no_shards_unsuccessful", Name: "fail", Algo: module.Incremental}, 449 }, 450 } 451 chartTransactionsNoShardsCommitsDurationTime = module.Chart{ 452 ID: "transactions_no_shards_commits_duration_time", 453 Title: "Transactions successful commits duration", 454 Units: "milliseconds", 455 Fam: "transactions", 456 Ctx: "mongodb.transactions_commits_duration_time", 457 Priority: prioTransactionsNoShardsCommitsDurationTime, 458 Labels: []module.Label{{Key: "commit_type", Value: "noShards"}}, 459 Dims: module.Dims{ 460 {ID: "txn_commit_types_no_shards_successful_duration_micros", Name: "commits", Algo: module.Incremental, Div: 1000}, 461 }, 462 } 463 chartTransactionsSingleShardCommitsRate = module.Chart{ 464 ID: "transactions_single_shard_commits_rate", 465 Title: "Transactions commits", 466 Units: "commits/s", 467 Fam: "transactions", 468 Ctx: "mongodb.transactions_commits_rate", 469 Priority: prioTransactionsSingleShardCommitsRate, 470 Type: module.Stacked, 471 Labels: []module.Label{{Key: "commit_type", Value: "singleShard"}}, 472 Dims: module.Dims{ 473 {ID: "txn_commit_types_single_shard_successful", Name: "success", Algo: module.Incremental}, 474 {ID: "txn_commit_types_single_shard_unsuccessful", Name: "fail", Algo: module.Incremental}, 475 }, 476 } 477 chartTransactionsSingleShardCommitsDurationTime = module.Chart{ 478 ID: "transactions_single_shard_commits_duration_time", 479 Title: "Transactions successful commits duration", 480 Units: "milliseconds", 481 Fam: "transactions", 482 Ctx: "mongodb.transactions_commits_duration_time", 483 Priority: prioTransactionsSingleShardCommitsDurationTime, 484 Labels: []module.Label{{Key: "commit_type", Value: "singleShard"}}, 485 Dims: module.Dims{ 486 {ID: "txn_commit_types_single_shard_successful_duration_micros", Name: "commits", Algo: module.Incremental, Div: 1000}, 487 }, 488 } 489 chartTransactionsSingleWriteShardCommitsRate = module.Chart{ 490 ID: "transactions_single_write_shard_commits_rate", 491 Title: "Transactions commits", 492 Units: "commits/s", 493 Fam: "transactions", 494 Ctx: "mongodb.transactions_commits_rate", 495 Priority: prioTransactionsSingleWriteShardCommitsRate, 496 Type: module.Stacked, 497 Labels: []module.Label{{Key: "commit_type", Value: "singleWriteShard"}}, 498 Dims: module.Dims{ 499 {ID: "txn_commit_types_single_write_shard_successful", Name: "success", Algo: module.Incremental}, 500 {ID: "txn_commit_types_single_write_shard_unsuccessful", Name: "fail", Algo: module.Incremental}, 501 }, 502 } 503 chartTransactionsSingleWriteShardCommitsDurationTime = module.Chart{ 504 ID: "transactions_single_write_shard_commits_duration_time", 505 Title: "Transactions successful commits duration", 506 Units: "milliseconds", 507 Fam: "transactions", 508 Ctx: "mongodb.transactions_commits_duration_time", 509 Priority: prioTransactionsSingleWriteShardCommitsDurationTime, 510 Labels: []module.Label{{Key: "commit_type", Value: "singleWriteShard"}}, 511 Dims: module.Dims{ 512 {ID: "txn_commit_types_single_write_shard_successful_duration_micros", Name: "commits", Algo: module.Incremental, Div: 1000}, 513 }, 514 } 515 chartTransactionsReadOnlyCommitsRate = module.Chart{ 516 ID: "transactions_read_only_commits_rate", 517 Title: "Transactions commits", 518 Units: "commits/s", 519 Fam: "transactions", 520 Ctx: "mongodb.transactions_commits_rate", 521 Priority: prioTransactionsReadOnlyCommitsRate, 522 Type: module.Stacked, 523 Labels: []module.Label{{Key: "commit_type", Value: "readOnly"}}, 524 Dims: module.Dims{ 525 {ID: "txn_commit_types_read_only_successful", Name: "success", Algo: module.Incremental}, 526 {ID: "txn_commit_types_read_only_unsuccessful", Name: "fail", Algo: module.Incremental}, 527 }, 528 } 529 chartTransactionsReadOnlyCommitsDurationTime = module.Chart{ 530 ID: "transactions_read_only_commits_duration_time", 531 Title: "Transactions successful commits duration", 532 Units: "milliseconds", 533 Fam: "transactions", 534 Ctx: "mongodb.transactions_commits_duration_time", 535 Priority: prioTransactionsReadOnlyCommitsDurationTime, 536 Labels: []module.Label{{Key: "commit_type", Value: "readOnly"}}, 537 Dims: module.Dims{ 538 {ID: "txn_commit_types_read_only_successful_duration_micros", Name: "commits", Algo: module.Incremental, Div: 1000}, 539 }, 540 } 541 chartTransactionsTwoPhaseCommitCommitsRate = module.Chart{ 542 ID: "transactions_two_phase_commit_commits_rate", 543 Title: "Transactions commits", 544 Units: "commits/s", 545 Fam: "transactions", 546 Ctx: "mongodb.transactions_commits_rate", 547 Priority: prioTransactionsTwoPhaseCommitCommitsRate, 548 Type: module.Stacked, 549 Labels: []module.Label{{Key: "commit_type", Value: "twoPhaseCommit"}}, 550 Dims: module.Dims{ 551 {ID: "txn_commit_types_two_phase_commit_successful", Name: "success", Algo: module.Incremental}, 552 {ID: "txn_commit_types_two_phase_commit_unsuccessful", Name: "fail", Algo: module.Incremental}, 553 }, 554 } 555 chartTransactionsTwoPhaseCommitCommitsDurationTime = module.Chart{ 556 ID: "transactions_two_phase_commit_commits_duration_time", 557 Title: "Transactions successful commits duration", 558 Units: "milliseconds", 559 Fam: "transactions", 560 Ctx: "mongodb.transactions_commits_duration_time", 561 Priority: prioTransactionsTwoPhaseCommitCommitsDurationTime, 562 Labels: []module.Label{{Key: "commit_type", Value: "twoPhaseCommit"}}, 563 Dims: module.Dims{ 564 {ID: "txn_commit_types_two_phase_commit_successful_duration_micros", Name: "commits", Algo: module.Incremental, Div: 1000}, 565 }, 566 } 567 chartTransactionsRecoverWithTokenCommitsRate = module.Chart{ 568 ID: "transactions_recover_with_token_commits_rate", 569 Title: "Transactions commits", 570 Units: "commits/s", 571 Fam: "transactions", 572 Ctx: "mongodb.transactions_commits_rate", 573 Priority: prioTransactionsRecoverWithTokenCommitsRate, 574 Type: module.Stacked, 575 Labels: []module.Label{{Key: "commit_type", Value: "recoverWithToken"}}, 576 Dims: module.Dims{ 577 {ID: "txn_commit_types_recover_with_token_successful", Name: "success", Algo: module.Incremental}, 578 {ID: "txn_commit_types_recover_with_token_unsuccessful", Name: "fail", Algo: module.Incremental}, 579 }, 580 } 581 chartTransactionsRecoverWithTokenCommitsDurationTime = module.Chart{ 582 ID: "transactions_recover_with_token_commits_duration_time", 583 Title: "Transactions successful commits duration", 584 Units: "milliseconds", 585 Fam: "transactions", 586 Ctx: "mongodb.transactions_commits_duration_time", 587 Priority: prioTransactionsRecoverWithTokenCommitsDurationTime, 588 Labels: []module.Label{{Key: "commit_type", Value: "recoverWithToken"}}, 589 Dims: module.Dims{ 590 {ID: "txn_commit_types_recover_with_token_successful_duration_micros", Name: "commits", Algo: module.Incremental, Div: 1000}, 591 }, 592 } 593 594 chartGlobalLockAcquisitionsRate = module.Chart{ 595 ID: "global_lock_acquisitions_rate", 596 Title: "Global lock acquisitions", 597 Units: "acquisitions/s", 598 Fam: "locks", 599 Ctx: "mongodb.lock_acquisitions_rate", 600 Priority: prioGlobalLockAcquisitionsRate, 601 Labels: []module.Label{{Key: "lock_type", Value: "global"}}, 602 Dims: module.Dims{ 603 {ID: "locks_global_acquire_shared", Name: "shared", Algo: module.Incremental}, 604 {ID: "locks_global_acquire_exclusive", Name: "exclusive", Algo: module.Incremental}, 605 {ID: "locks_global_acquire_intent_shared", Name: "intent_shared", Algo: module.Incremental}, 606 {ID: "locks_global_acquire_intent_exclusive", Name: "intent_exclusive", Algo: module.Incremental}, 607 }, 608 } 609 chartDatabaseLockAcquisitionsRate = module.Chart{ 610 ID: "database_lock_acquisitions_rate", 611 Title: "Database lock acquisitions", 612 Units: "acquisitions/s", 613 Fam: "locks", 614 Ctx: "mongodb.lock_acquisitions_rate", 615 Priority: prioDatabaseLockAcquisitionsRate, 616 Labels: []module.Label{{Key: "lock_type", Value: "database"}}, 617 Dims: module.Dims{ 618 {ID: "locks_database_acquire_shared", Name: "shared", Algo: module.Incremental}, 619 {ID: "locks_database_acquire_exclusive", Name: "exclusive", Algo: module.Incremental}, 620 {ID: "locks_database_acquire_intent_shared", Name: "intent_shared", Algo: module.Incremental}, 621 {ID: "locks_database_acquire_intent_exclusive", Name: "intent_exclusive", Algo: module.Incremental}, 622 }, 623 } 624 chartCollectionLockAcquisitionsRate = module.Chart{ 625 ID: "collection_lock_acquisitions_rate", 626 Title: "Collection lock acquisitions", 627 Units: "acquisitions/s", 628 Fam: "locks", 629 Ctx: "mongodb.lock_acquisitions_rate", 630 Priority: prioCollectionLockAcquisitionsRate, 631 Labels: []module.Label{{Key: "lock_type", Value: "collection"}}, 632 Dims: module.Dims{ 633 {ID: "locks_collection_acquire_shared", Name: "shared", Algo: module.Incremental}, 634 {ID: "locks_collection_acquire_exclusive", Name: "exclusive", Algo: module.Incremental}, 635 {ID: "locks_collection_acquire_intent_shared", Name: "intent_shared", Algo: module.Incremental}, 636 {ID: "locks_collection_acquire_intent_exclusive", Name: "intent_exclusive", Algo: module.Incremental}, 637 }, 638 } 639 chartMutexLockAcquisitionsRate = module.Chart{ 640 ID: "mutex_lock_acquisitions_rate", 641 Title: "Mutex lock acquisitions", 642 Units: "acquisitions/s", 643 Fam: "locks", 644 Ctx: "mongodb.lock_acquisitions_rate", 645 Priority: prioMutexLockAcquisitionsRate, 646 Labels: []module.Label{{Key: "lock_type", Value: "mutex"}}, 647 Dims: module.Dims{ 648 {ID: "locks_mutex_acquire_shared", Name: "shared", Algo: module.Incremental}, 649 {ID: "locks_mutex_acquire_exclusive", Name: "exclusive", Algo: module.Incremental}, 650 {ID: "locks_mutex_acquire_intent_shared", Name: "intent_shared", Algo: module.Incremental}, 651 {ID: "locks_mutex_acquire_intent_exclusive", Name: "intent_exclusive", Algo: module.Incremental}, 652 }, 653 } 654 chartMetadataLockAcquisitionsRate = module.Chart{ 655 ID: "metadata_lock_acquisitions_rate", 656 Title: "Metadata lock acquisitions", 657 Units: "acquisitions/s", 658 Fam: "locks", 659 Ctx: "mongodb.lock_acquisitions_rate", 660 Priority: prioMetadataLockAcquisitionsRate, 661 Labels: []module.Label{{Key: "lock_type", Value: "metadata"}}, 662 Dims: module.Dims{ 663 {ID: "locks_metadata_acquire_shared", Name: "shared", Algo: module.Incremental}, 664 {ID: "locks_metadata_acquire_exclusive", Name: "exclusive", Algo: module.Incremental}, 665 {ID: "locks_metadata_acquire_intent_shared", Name: "intent_shared", Algo: module.Incremental}, 666 {ID: "locks_metadata_acquire_intent_exclusive", Name: "intent_exclusive", Algo: module.Incremental}, 667 }, 668 } 669 chartOpLogLockAcquisitionsRate = module.Chart{ 670 ID: "oplog_lock_acquisitions_rate", 671 Title: "Operations log lock acquisitions", 672 Units: "acquisitions/s", 673 Fam: "locks", 674 Ctx: "mongodb.lock_acquisitions_rate", 675 Priority: prioOpLogLockAcquisitionsRate, 676 Labels: []module.Label{{Key: "lock_type", Value: "oplog"}}, 677 Dims: module.Dims{ 678 {ID: "locks_oplog_acquire_shared", Name: "shared", Algo: module.Incremental}, 679 {ID: "locks_oplog_acquire_exclusive", Name: "exclusive", Algo: module.Incremental}, 680 {ID: "locks_oplog_acquire_intent_shared", Name: "intent_shared", Algo: module.Incremental}, 681 {ID: "locks_oplog_acquire_intent_exclusive", Name: "intent_exclusive", Algo: module.Incremental}, 682 }, 683 } 684 685 chartCursorsOpenCount = module.Chart{ 686 ID: "cursors_open_count", 687 Title: "Open cursors", 688 Units: "cursors", 689 Fam: "cursors", 690 Ctx: "mongodb.cursors_open_count", 691 Priority: prioCursorsOpenCount, 692 Dims: module.Dims{ 693 {ID: "metrics_cursor_open_total", Name: "open"}, 694 }, 695 } 696 chartCursorsOpenNoTimeoutCount = module.Chart{ 697 ID: "cursors_open_no_timeout_count", 698 Title: "Open cursors with disabled timeout", 699 Units: "cursors", 700 Fam: "cursors", 701 Ctx: "mongodb.cursors_open_no_timeout_count", 702 Priority: prioCursorsOpenNoTimeoutCount, 703 Dims: module.Dims{ 704 {ID: "metrics_cursor_open_no_timeout", Name: "open_no_timeout"}, 705 }, 706 } 707 chartCursorsOpenedRate = module.Chart{ 708 ID: "cursors_opened_rate", 709 Title: "Opened cursors rate", 710 Units: "cursors/s", 711 Fam: "cursors", 712 Ctx: "mongodb.cursors_opened_rate", 713 Priority: prioCursorsOpenedRate, 714 Dims: module.Dims{ 715 {ID: "metrics_cursor_total_opened", Name: "opened"}, 716 }, 717 } 718 chartCursorsTimedOutRate = module.Chart{ 719 ID: "cursors_timed_out_rate", 720 Title: "Timed-out cursors", 721 Units: "cursors/s", 722 Fam: "cursors", 723 Ctx: "mongodb.cursors_timed_out_rate", 724 Priority: prioTimedOutCursorsRate, 725 Dims: module.Dims{ 726 {ID: "metrics_cursor_timed_out", Name: "timed_out"}, 727 }, 728 } 729 chartCursorsByLifespanCount = module.Chart{ 730 ID: "cursors_by_lifespan_count", 731 Title: "Cursors lifespan", 732 Units: "cursors", 733 Fam: "cursors", 734 Ctx: "mongodb.cursors_by_lifespan_count", 735 Priority: prioCursorsByLifespanCount, 736 Type: module.Stacked, 737 Dims: module.Dims{ 738 {ID: "metrics_cursor_lifespan_less_than_1_second", Name: "le_1s"}, 739 {ID: "metrics_cursor_lifespan_less_than_5_seconds", Name: "1s_5s"}, 740 {ID: "metrics_cursor_lifespan_less_than_15_seconds", Name: "5s_15s"}, 741 {ID: "metrics_cursor_lifespan_less_than_30_seconds", Name: "15s_30s"}, 742 {ID: "metrics_cursor_lifespan_less_than_1_minute", Name: "30s_1m"}, 743 {ID: "metrics_cursor_lifespan_less_than_10_minutes", Name: "1m_10m"}, 744 {ID: "metrics_cursor_lifespan_greater_than_or_equal_10_minutes", Name: "ge_10m"}, 745 }, 746 } 747 748 chartWiredTigerConcurrentReadTransactionsUsage = module.Chart{ 749 ID: "wiredtiger_concurrent_read_transactions_usage", 750 Title: "Wired Tiger concurrent read transactions usage", 751 Units: "transactions", 752 Fam: "wiredtiger", 753 Ctx: "mongodb.wiredtiger_concurrent_read_transactions_usage", 754 Priority: prioWiredTigerConcurrentReadTransactionsUsage, 755 Type: module.Stacked, 756 Dims: module.Dims{ 757 {ID: "wiredtiger_concurrent_txn_read_available", Name: "available"}, 758 {ID: "wiredtiger_concurrent_txn_read_out", Name: "used"}, 759 }, 760 } 761 chartWiredTigerConcurrentWriteTransactionsUsage = module.Chart{ 762 ID: "wiredtiger_concurrent_write_transactions_usage", 763 Title: "Wired Tiger concurrent write transactions usage", 764 Units: "transactions", 765 Fam: "wiredtiger", 766 Ctx: "mongodb.wiredtiger_concurrent_write_transactions_usage", 767 Priority: prioWiredTigerConcurrentWriteTransactionsUsage, 768 Type: module.Stacked, 769 Dims: module.Dims{ 770 {ID: "wiredtiger_concurrent_txn_write_available", Name: "available"}, 771 {ID: "wiredtiger_concurrent_txn_write_out", Name: "used"}, 772 }, 773 } 774 chartWiredTigerCacheUsage = module.Chart{ 775 ID: "wiredtiger_cache_usage", 776 Title: "Wired Tiger cache usage", 777 Units: "bytes", 778 Fam: "wiredtiger", 779 Ctx: "mongodb.wiredtiger_cache_usage", 780 Priority: prioWiredTigerCacheUsage, 781 Type: module.Stacked, 782 Dims: module.Dims{ 783 {ID: "wiredtiger_cache_currently_in_cache_bytes", Name: "used"}, 784 }, 785 } 786 chartWiredTigerCacheDirtySpaceSize = module.Chart{ 787 ID: "wiredtiger_cache_dirty_space_size", 788 Title: "Wired Tiger cache dirty space size", 789 Units: "bytes", 790 Fam: "wiredtiger", 791 Ctx: "mongodb.wiredtiger_cache_dirty_space_size", 792 Priority: prioWiredTigerCacheDirtySpaceSize, 793 Dims: module.Dims{ 794 {ID: "wiredtiger_cache_tracked_dirty_in_the_cache_bytes", Name: "dirty"}, 795 }, 796 } 797 chartWiredTigerCacheIORate = module.Chart{ 798 ID: "wiredtiger_cache_io_rate", 799 Title: "Wired Tiger IO activity", 800 Units: "pages/s", 801 Fam: "wiredtiger", 802 Ctx: "mongodb.wiredtiger_cache_io_rate", 803 Priority: prioWiredTigerCacheIORate, 804 Dims: module.Dims{ 805 {ID: "wiredtiger_cache_read_into_cache_pages", Name: "read", Algo: module.Incremental}, 806 {ID: "wiredtiger_cache_written_from_cache_pages", Name: "written", Algo: module.Incremental}, 807 }, 808 } 809 chartWiredTigerCacheEvictionsRate = module.Chart{ 810 ID: "wiredtiger_cache_eviction_rate", 811 Title: "Wired Tiger cache evictions", 812 Units: "pages/s", 813 Fam: "wiredtiger", 814 Ctx: "mongodb.wiredtiger_cache_evictions_rate", 815 Type: module.Stacked, 816 Priority: prioWiredTigerCacheEvictionsRate, 817 Dims: module.Dims{ 818 {ID: "wiredtiger_cache_unmodified_evicted_pages", Name: "unmodified", Algo: module.Incremental}, 819 {ID: "wiredtiger_cache_modified_evicted_pages", Name: "modified", Algo: module.Incremental}, 820 }, 821 } 822 ) 823 824 var ( 825 chartTmplDatabaseCollectionsCount = &module.Chart{ 826 ID: chartPxDatabase + "%s_collections_count", 827 Title: "Database collections", 828 Units: "collections", 829 Fam: "databases", 830 Ctx: "mongodb.database_collections_count", 831 Priority: prioDatabaseCollectionsCount, 832 Dims: module.Dims{ 833 {ID: "database_%s_collections", Name: "collections"}, 834 }, 835 } 836 chartTmplDatabaseIndexesCount = &module.Chart{ 837 ID: chartPxDatabase + "%s_indexes_count", 838 Title: "Database indexes", 839 Units: "indexes", 840 Fam: "databases", 841 Ctx: "mongodb.database_indexes_count", 842 Priority: prioDatabaseIndexesCount, 843 Dims: module.Dims{ 844 {ID: "database_%s_indexes", Name: "indexes"}, 845 }, 846 } 847 chartTmplDatabaseViewsCount = &module.Chart{ 848 ID: chartPxDatabase + "%s_views_count", 849 Title: "Database views", 850 Units: "views", 851 Fam: "databases", 852 Ctx: "mongodb.database_views_count", 853 Priority: prioDatabaseViewsCount, 854 Dims: module.Dims{ 855 {ID: "database_%s_views", Name: "views"}, 856 }, 857 } 858 chartTmplDatabaseDocumentsCount = &module.Chart{ 859 ID: chartPxDatabase + "%s_documents_count", 860 Title: "Database documents", 861 Units: "documents", 862 Fam: "databases", 863 Ctx: "mongodb.database_documents_count", 864 Priority: prioDatabaseDocumentsCount, 865 Dims: module.Dims{ 866 {ID: "database_%s_documents", Name: "documents"}, 867 }, 868 } 869 chartTmplDatabaseDataSize = &module.Chart{ 870 ID: chartPxDatabase + "%s_data_size", 871 Title: "Database data size", 872 Units: "bytes", 873 Fam: "databases", 874 Ctx: "mongodb.database_data_size", 875 Priority: prioDatabaseDataSize, 876 Dims: module.Dims{ 877 {ID: "database_%s_data_size", Name: "data_size"}, 878 }, 879 } 880 chartTmplDatabaseStorageSize = &module.Chart{ 881 ID: chartPxDatabase + "%s_storage_size", 882 Title: "Database storage size", 883 Units: "bytes", 884 Fam: "databases", 885 Ctx: "mongodb.database_storage_size", 886 Priority: prioDatabaseStorageSize, 887 Dims: module.Dims{ 888 {ID: "database_%s_storage_size", Name: "storage_size"}, 889 }, 890 } 891 chartTmplDatabaseIndexSize = &module.Chart{ 892 ID: chartPxDatabase + "%s_index_size", 893 Title: "Database index size", 894 Units: "bytes", 895 Fam: "databases", 896 Ctx: "mongodb.database_index_size", 897 Priority: prioDatabaseIndexSize, 898 Dims: module.Dims{ 899 {ID: "database_%s_index_size", Name: "index_size"}, 900 }, 901 } 902 ) 903 904 var ( 905 chartTmplReplSetMemberState = &module.Chart{ 906 ID: chartPxReplSetMember + "%s_state", 907 Title: "Replica Set member state", 908 Units: "state", 909 Fam: "replica sets", 910 Ctx: "mongodb.repl_set_member_state", 911 Priority: prioReplSetMemberState, 912 Dims: module.Dims{ 913 {ID: "repl_set_member_%s_state_primary", Name: "primary"}, 914 {ID: "repl_set_member_%s_state_startup", Name: "startup"}, 915 {ID: "repl_set_member_%s_state_secondary", Name: "secondary"}, 916 {ID: "repl_set_member_%s_state_recovering", Name: "recovering"}, 917 {ID: "repl_set_member_%s_state_startup2", Name: "startup2"}, 918 {ID: "repl_set_member_%s_state_unknown", Name: "unknown"}, 919 {ID: "repl_set_member_%s_state_arbiter", Name: "arbiter"}, 920 {ID: "repl_set_member_%s_state_down", Name: "down"}, 921 {ID: "repl_set_member_%s_state_rollback", Name: "rollback"}, 922 {ID: "repl_set_member_%s_state_removed", Name: "removed"}, 923 }, 924 } 925 chartTmplReplSetMemberHealthStatus = &module.Chart{ 926 ID: chartPxReplSetMember + "%s_health_status", 927 Title: "Replica Set member health status", 928 Units: "status", 929 Fam: "replica sets", 930 Ctx: "mongodb.repl_set_member_health_status", 931 Priority: prioReplSetMemberHealthStatus, 932 Dims: module.Dims{ 933 {ID: "repl_set_member_%s_health_status_up", Name: "up"}, 934 {ID: "repl_set_member_%s_health_status_down", Name: "down"}, 935 }, 936 } 937 chartTmplReplSetMemberReplicationLagTime = &module.Chart{ 938 ID: chartPxReplSetMember + "%s_replication_lag_time", 939 Title: "Replica Set member replication lag", 940 Units: "milliseconds", 941 Fam: "replica sets", 942 Ctx: "mongodb.repl_set_member_replication_lag_time", 943 Priority: prioReplSetMemberReplicationLagTime, 944 Dims: module.Dims{ 945 {ID: "repl_set_member_%s_replication_lag", Name: "replication_lag"}, 946 }, 947 } 948 chartTmplReplSetMemberHeartbeatLatencyTime = &module.Chart{ 949 ID: chartPxReplSetMember + "%s_heartbeat_latency_time", 950 Title: "Replica Set member heartbeat latency", 951 Units: "milliseconds", 952 Fam: "replica sets", 953 Ctx: "mongodb.repl_set_member_heartbeat_latency_time", 954 Priority: prioReplSetMemberHeartbeatLatencyTime, 955 Dims: module.Dims{ 956 {ID: "repl_set_member_%s_heartbeat_latency", Name: "heartbeat_latency"}, 957 }, 958 } 959 chartTmplReplSetMemberPingRTTTime = &module.Chart{ 960 ID: chartPxReplSetMember + "%s_ping_rtt_time", 961 Title: "Replica Set member ping RTT", 962 Units: "milliseconds", 963 Fam: "replica sets", 964 Ctx: "mongodb.repl_set_member_ping_rtt_time", 965 Priority: prioReplSetMemberPingRTTTime, 966 Dims: module.Dims{ 967 {ID: "repl_set_member_%s_ping_rtt", Name: "ping_rtt"}, 968 }, 969 } 970 chartTmplReplSetMemberUptime = &module.Chart{ 971 ID: chartPxReplSetMember + "%s_uptime", 972 Title: "Replica Set member uptime", 973 Units: "seconds", 974 Fam: "replica sets", 975 Ctx: "mongodb.repl_set_member_uptime", 976 Priority: prioReplSetMemberUptime, 977 Dims: module.Dims{ 978 {ID: "repl_set_member_%s_uptime", Name: "uptime"}, 979 }, 980 } 981 ) 982 983 var ( 984 chartShardingNodesCount = &module.Chart{ 985 ID: "sharding_nodes_count", 986 Title: "Sharding Nodes", 987 Units: "nodes", 988 Fam: "sharding", 989 Ctx: "mongodb.sharding_nodes_count", 990 Type: module.Stacked, 991 Priority: prioShardingNodesCount, 992 Dims: module.Dims{ 993 {ID: "shard_nodes_aware", Name: "shard_aware"}, 994 {ID: "shard_nodes_unaware", Name: "shard_unaware"}, 995 }, 996 } 997 chartShardingShardedDatabases = &module.Chart{ 998 ID: "sharding_sharded_databases_count", 999 Title: "Sharded databases", 1000 Units: "databases", 1001 Fam: "sharding", 1002 Ctx: "mongodb.sharding_sharded_databases_count", 1003 Type: module.Stacked, 1004 Priority: prioShardingShardedDatabasesCount, 1005 Dims: module.Dims{ 1006 {ID: "shard_databases_partitioned", Name: "partitioned"}, 1007 {ID: "shard_databases_unpartitioned", Name: "unpartitioned"}, 1008 }, 1009 } 1010 1011 chartShardingShardedCollectionsCount = &module.Chart{ 1012 ID: "sharding_sharded_collections_count", 1013 Title: "Sharded collections", 1014 Units: "collections", 1015 Fam: "sharding", 1016 Ctx: "mongodb.sharding_sharded_collections_count", 1017 Type: module.Stacked, 1018 Priority: prioShardingShardedCollectionsCount, 1019 Dims: module.Dims{ 1020 {ID: "shard_collections_partitioned", Name: "partitioned"}, 1021 {ID: "shard_collections_unpartitioned", Name: "unpartitioned"}, 1022 }, 1023 } 1024 1025 chartTmplShardChunks = &module.Chart{ 1026 ID: chartPxShard + "%s_chunks", 1027 Title: "Shard chunks", 1028 Units: "chunks", 1029 Fam: "sharding", 1030 Ctx: "mongodb.sharding_shard_chunks_count", 1031 Priority: prioShardChunks, 1032 Dims: module.Dims{ 1033 {ID: "shard_id_%s_chunks", Name: "chunks"}, 1034 }, 1035 } 1036 )