Add additional fields to mongodb input (#7321)
New metrics include: - assertions - database operations - documents/index keys usage - replication - tcmalloc memory management - storage - version
This commit is contained in:
parent
6a9e879d71
commit
00ad5baa19
|
@ -60,35 +60,46 @@ by running Telegraf with the `--debug` argument.
|
|||
- fields:
|
||||
- active_reads (integer)
|
||||
- active_writes (integer)
|
||||
- aggregate_command_failed (integer)
|
||||
- aggregate_command_total (integer)
|
||||
- assert_msg (integer)
|
||||
- assert_regular (integer)
|
||||
- assert_rollovers (integer)
|
||||
- assert_user (integer)
|
||||
- assert_warning (integer)
|
||||
- available_reads (integer)
|
||||
- available_writes (integer)
|
||||
- commands (integer)
|
||||
- connections_current (integer)
|
||||
- connections_available (integer)
|
||||
- connections_current (integer)
|
||||
- connections_total_created (integer)
|
||||
- cursor_timed_out_count (integer)
|
||||
- count_command_failed (integer)
|
||||
- count_command_total (integer)
|
||||
- cursor_no_timeout_count (integer)
|
||||
- cursor_pinned_count (integer)
|
||||
- cursor_timed_out_count (integer)
|
||||
- cursor_total_count (integer)
|
||||
- deletes (integer)
|
||||
- delete_command_total (integer)
|
||||
- delete_command_failed (integer)
|
||||
- delete_command_total (integer)
|
||||
- deletes (integer)
|
||||
- distinct_command_failed (integer)
|
||||
- distinct_command_total (integer)
|
||||
- document_deleted (integer)
|
||||
- document_inserted (integer)
|
||||
- document_returned (integer)
|
||||
- document_updated (integer)
|
||||
- find_command_total (integer)
|
||||
- find_command_failed (integer)
|
||||
- find_and_modify_command_total (integer)
|
||||
- find_and_modify_command_failed (integer)
|
||||
- find_and_modify_command_total (integer)
|
||||
- find_command_failed (integer)
|
||||
- find_command_total (integer)
|
||||
- flushes (integer)
|
||||
- flushes_total_time_ns (integer)
|
||||
- getmores (integer)
|
||||
- get_more_command_total (integer)
|
||||
- get_more_command_failed (integer)
|
||||
- inserts (integer)
|
||||
- insert_command_total (integer)
|
||||
- get_more_command_total (integer)
|
||||
- getmores (integer)
|
||||
- insert_command_failed (integer)
|
||||
- insert_command_total (integer)
|
||||
- inserts (integer)
|
||||
- jumbo_chunks (integer)
|
||||
- latency_commands_count (integer)
|
||||
- latency_commands (integer)
|
||||
|
@ -100,33 +111,74 @@ by running Telegraf with the `--debug` argument.
|
|||
- net_in_bytes_count (integer)
|
||||
- net_out_bytes_count (integer)
|
||||
- open_connections (integer)
|
||||
- operation_scan_and_order (integer)
|
||||
- operation_write_conflicts (integer)
|
||||
- page_faults (integer)
|
||||
- percent_cache_dirty (float)
|
||||
- percent_cache_used (float)
|
||||
- queries (integer)
|
||||
- queued_reads (integer)
|
||||
- queued_writes (integer)
|
||||
- repl_apply_batches_num (integer)
|
||||
- repl_apply_batches_total_millis (integer)
|
||||
- repl_apply_ops (integer)
|
||||
- repl_buffer_count (integer)
|
||||
- repl_buffer_size_bytes (integer)
|
||||
- repl_commands (integer)
|
||||
- repl_deletes (integer)
|
||||
- repl_executor_pool_in_progress_count (integer)
|
||||
- repl_executor_queues_network_in_progress (integer)
|
||||
- repl_executor_queues_sleepers (integer)
|
||||
- repl_executor_unsignaled_events (integer)
|
||||
- repl_getmores (integer)
|
||||
- repl_inserts (integer)
|
||||
- repl_lag (integer)
|
||||
- repl_network_bytes (integer)
|
||||
- repl_network_getmores_num (integer)
|
||||
- repl_network_getmores_total_millis (integer)
|
||||
- repl_network_ops (integer)
|
||||
- repl_queries (integer)
|
||||
- repl_updates (integer)
|
||||
- repl_oplog_window_sec (integer)
|
||||
- resident_megabytes (integer)
|
||||
- state (string)
|
||||
- storage_freelist_search_bucket_exhausted (integer)
|
||||
- storage_freelist_search_requests (integer)
|
||||
- storage_freelist_search_scanned (integer)
|
||||
- tcmalloc_central_cache_free_bytes (integer)
|
||||
- tcmalloc_current_allocated_bytes (integer)
|
||||
- tcmalloc_current_total_thread_cache_bytes (integer)
|
||||
- tcmalloc_heap_size (integer)
|
||||
- tcmalloc_max_total_thread_cache_bytes (integer)
|
||||
- tcmalloc_pageheap_commit_count (integer)
|
||||
- tcmalloc_pageheap_committed_bytes (integer)
|
||||
- tcmalloc_pageheap_decommit_count (integer)
|
||||
- tcmalloc_pageheap_free_bytes (integer)
|
||||
- tcmalloc_pageheap_reserve_count (integer)
|
||||
- tcmalloc_pageheap_scavenge_count (integer)
|
||||
- tcmalloc_pageheap_total_commit_bytes (integer)
|
||||
- tcmalloc_pageheap_total_decommit_bytes (integer)
|
||||
- tcmalloc_pageheap_total_reserve_bytes (integer)
|
||||
- tcmalloc_pageheap_unmapped_bytes (integer)
|
||||
- tcmalloc_spinlock_total_delay_ns (integer)
|
||||
- tcmalloc_thread_cache_free_bytes (integer)
|
||||
- tcmalloc_total_free_bytes (integer)
|
||||
- tcmalloc_transfer_cache_free_bytes (integer)
|
||||
- total_available (integer)
|
||||
- total_created (integer)
|
||||
- total_docs_scanned (integer)
|
||||
- total_in_use (integer)
|
||||
- total_keys_scanned (integer)
|
||||
- total_refreshing (integer)
|
||||
- total_tickets_reads (integer)
|
||||
- total_tickets_writes (integer)
|
||||
- ttl_deletes (integer)
|
||||
- ttl_passes (integer)
|
||||
- updates (integer)
|
||||
- update_command_total (integer)
|
||||
- update_command_failed (integer)
|
||||
- update_command_total (integer)
|
||||
- updates (integer)
|
||||
- uptime_ns (integer)
|
||||
- version (string)
|
||||
- vsize_megabytes (integer)
|
||||
- wtcache_app_threads_page_read_count (integer)
|
||||
- wtcache_app_threads_page_read_time (integer)
|
||||
|
@ -208,8 +260,8 @@ by running Telegraf with the `--debug` argument.
|
|||
|
||||
### Example Output:
|
||||
```
|
||||
mongodb,hostname=127.0.0.1:27017 active_reads=0i,active_writes=0i,available_reads=128i,available_writes=128i,commands=1335i,commands_per_sec=7i,connections_available=814i,connections_current=5i,connections_total_created=0i,cursor_no_timeout=0i,cursor_no_timeout_count=0i,cursor_pinned=0i,cursor_pinned_count=1i,cursor_timed_out=0i,cursor_timed_out_count=0i,cursor_total=0i,cursor_total_count=1i,deletes=0i,deletes_per_sec=0i,document_deleted=0i,document_inserted=0i,document_returned=13i,document_updated=0i,flushes=5i,flushes_per_sec=0i,getmores=269i,getmores_per_sec=0i,inserts=0i,inserts_per_sec=0i,jumbo_chunks=0i,latency_commands_count=0i,latency_commands=0i,latency_reads_count=0i,latency_reads=0i,latency_writes_count=0i,latency_writes=0i,member_status="PRI",net_in_bytes=986i,net_in_bytes_count=358006i,net_out_bytes=23906i,net_out_bytes_count=661507i,open_connections=5i,percent_cache_dirty=0,percent_cache_used=0,queries=18i,queries_per_sec=3i,queued_reads=0i,queued_writes=0i,repl_commands=0i,repl_commands_per_sec=0i,repl_deletes=0i,repl_deletes_per_sec=0i,repl_getmores=0i,repl_getmores_per_sec=0i,repl_inserts=0i,repl_inserts_per_sec=0i,repl_lag=0i,repl_oplog_window_sec=24355215i,repl_queries=0i,repl_queries_per_sec=0i,repl_updates=0i,repl_updates_per_sec=0i,resident_megabytes=62i,state="PRIMARY",total_available=0i,total_created=0i,total_in_use=0i,total_refreshing=0i,total_tickets_reads=128i,total_tickets_writes=128i,ttl_deletes=0i,ttl_deletes_per_sec=0i,ttl_passes=23i,ttl_passes_per_sec=0i,updates=0i,updates_per_sec=0i,vsize_megabytes=713i,wtcache_app_threads_page_read_count=13i,wtcache_app_threads_page_read_time=74i,wtcache_app_threads_page_write_count=0i,wtcache_bytes_read_into=55271i,wtcache_bytes_written_from=125402i,wtcache_current_bytes=117050i,wtcache_max_bytes_configured=1073741824i,wtcache_pages_evicted_by_app_thread=0i,wtcache_pages_queued_for_eviction=0i,wtcache_server_evicting_pages=0i,wtcache_tracked_dirty_bytes=0i,wtcache_worker_thread_evictingpages=0i 1547159491000000000
|
||||
mongodb,hostname=127.0.0.1:27017,node_type=PRI active_reads=0i,active_writes=0i,available_reads=128i,available_writes=128i,commands=1335i,commands_per_sec=7i,connections_available=814i,connections_current=5i,connections_total_created=0i,cursor_no_timeout=0i,cursor_no_timeout_count=0i,cursor_pinned=0i,cursor_pinned_count=1i,cursor_timed_out=0i,cursor_timed_out_count=0i,cursor_total=0i,cursor_total_count=1i,deletes=0i,deletes_per_sec=0i,document_deleted=0i,document_inserted=0i,document_returned=13i,document_updated=0i,flushes=5i,flushes_per_sec=0i,getmores=269i,getmores_per_sec=0i,inserts=0i,inserts_per_sec=0i,jumbo_chunks=0i,member_status="PRI",net_in_bytes=986i,net_in_bytes_count=358006i,net_out_bytes=23906i,net_out_bytes_count=661507i,open_connections=5i,percent_cache_dirty=0,percent_cache_used=0,queries=18i,queries_per_sec=3i,queued_reads=0i,queued_writes=0i,repl_commands=0i,repl_commands_per_sec=0i,repl_deletes=0i,repl_deletes_per_sec=0i,repl_getmores=0i,repl_getmores_per_sec=0i,repl_inserts=0i,repl_inserts_per_sec=0i,repl_lag=0i,repl_oplog_window_sec=24355215i,repl_queries=0i,repl_queries_per_sec=0i,repl_updates=0i,repl_updates_per_sec=0i,resident_megabytes=62i,state="PRIMARY",total_available=0i,total_created=0i,total_in_use=0i,total_refreshing=0i,total_tickets_reads=128i,total_tickets_writes=128i,ttl_deletes=0i,ttl_deletes_per_sec=0i,ttl_passes=23i,ttl_passes_per_sec=0i,updates=0i,updates_per_sec=0i,vsize_megabytes=713i,wtcache_app_threads_page_read_count=13i,wtcache_app_threads_page_read_time=74i,wtcache_app_threads_page_write_count=0i,wtcache_bytes_read_into=55271i,wtcache_bytes_written_from=125402i,wtcache_current_bytes=117050i,wtcache_max_bytes_configured=1073741824i,wtcache_pages_evicted_by_app_thread=0i,wtcache_pages_queued_for_eviction=0i,wtcache_server_evicting_pages=0i,wtcache_tracked_dirty_bytes=0i,wtcache_worker_thread_evictingpages=0i 1547159491000000000
|
||||
mongodb,hostname=127.0.0.1:27017 active_reads=3i,active_writes=0i,aggregate_command_failed=0i,aggregate_command_total=87210i,assert_msg=0i,assert_regular=0i,assert_rollovers=0i,assert_user=0i,assert_warning=0i,available_reads=125i,available_writes=128i,commands=218126i,commands_per_sec=1876i,connections_available=838853i,connections_current=7i,connections_total_created=8i,count_command_failed=0i,count_command_total=7i,cursor_no_timeout=0i,cursor_no_timeout_count=0i,cursor_pinned=0i,cursor_pinned_count=0i,cursor_timed_out=0i,cursor_timed_out_count=0i,cursor_total=0i,cursor_total_count=0i,delete_command_failed=0i,delete_command_total=0i,deletes=0i,deletes_per_sec=0i,distinct_command_failed=0i,distinct_command_total=87190i,document_deleted=0i,document_inserted=0i,document_returned=7i,document_updated=43595i,find_and_modify_command_failed=0i,find_and_modify_command_total=43595i,find_command_failed=0i,find_command_total=348819i,flushes=1i,flushes_per_sec=0i,flushes_total_time_ns=5000000i,get_more_command_failed=0i,get_more_command_total=0i,getmores=7i,getmores_per_sec=1i,insert_command_failed=0i,insert_command_total=0i,inserts=0i,inserts_per_sec=0i,jumbo_chunks=0i,latency_commands=44179i,latency_commands_count=122i,latency_reads=36662189i,latency_reads_count=523229i,latency_writes=6768713i,latency_writes_count=87190i,net_in_bytes=837378i,net_in_bytes_count=97692502i,net_out_bytes=690836i,net_out_bytes_count=75377383i,open_connections=7i,operation_scan_and_order=87193i,operation_write_conflicts=7i,page_faults=0i,percent_cache_dirty=0.9,percent_cache_used=1,queries=348816i,queries_per_sec=2988i,queued_reads=0i,queued_writes=0i,resident_megabytes=77i,storage_freelist_search_bucket_exhausted=0i,storage_freelist_search_requests=0i,storage_freelist_search_scanned=0i,tcmalloc_central_cache_free_bytes=280136i,tcmalloc_current_allocated_bytes=77677288i,tcmalloc_current_total_thread_cache_bytes=1222608i,tcmalloc_heap_size=142659584i,tcmalloc_max_total_thread_cache_bytes=260046848i,tcmalloc_pageheap_commit_count=1898i,tcmalloc_pageheap_committed_bytes=130084864i,tcmalloc_pageheap_decommit_count=889i,tcmalloc_pageheap_free_bytes=50610176i,tcmalloc_pageheap_reserve_count=50i,tcmalloc_pageheap_scavenge_count=884i,tcmalloc_pageheap_total_commit_bytes=13021937664i,tcmalloc_pageheap_total_decommit_bytes=12891852800i,tcmalloc_pageheap_total_reserve_bytes=142659584i,tcmalloc_pageheap_unmapped_bytes=12574720i,tcmalloc_spinlock_total_delay_ns=9767500i,tcmalloc_thread_cache_free_bytes=1222608i,tcmalloc_total_free_bytes=1797400i,tcmalloc_transfer_cache_free_bytes=294656i,total_available=0i,total_created=0i,total_docs_scanned=43595i,total_in_use=0i,total_keys_scanned=130805i,total_refreshing=0i,total_tickets_reads=128i,total_tickets_writes=128i,ttl_deletes=0i,ttl_deletes_per_sec=0i,ttl_passes=0i,ttl_passes_per_sec=0i,update_command_failed=0i,update_command_total=43595i,updates=43595i,updates_per_sec=372i,uptime_ns=60023000000i,version="3.6.17",vsize_megabytes=1048i,wtcache_app_threads_page_read_count=108i,wtcache_app_threads_page_read_time=25995i,wtcache_app_threads_page_write_count=0i,wtcache_bytes_read_into=2487250i,wtcache_bytes_written_from=74i,wtcache_current_bytes=5014530i,wtcache_internal_pages_evicted=0i,wtcache_max_bytes_configured=505413632i,wtcache_modified_pages_evicted=0i,wtcache_pages_evicted_by_app_thread=0i,wtcache_pages_queued_for_eviction=0i,wtcache_pages_read_into=139i,wtcache_pages_requested_from=699135i,wtcache_server_evicting_pages=0i,wtcache_tracked_dirty_bytes=4797426i,wtcache_unmodified_pages_evicted=0i,wtcache_worker_thread_evictingpages=0i 1586379818000000000
|
||||
mongodb,hostname=127.0.0.1:27017,node_type=SEC,rs_name=rs0 active_reads=1i,active_writes=0i,aggregate_command_failed=0i,aggregate_command_total=1i,assert_msg=0i,assert_regular=0i,assert_rollovers=0i,assert_user=79i,assert_warning=0i,available_reads=127i,available_writes=128i,commands=1121855i,commands_per_sec=10i,connections_available=51183i,connections_current=17i,connections_total_created=557i,count_command_failed=0i,count_command_total=46307i,cursor_no_timeout=0i,cursor_no_timeout_count=0i,cursor_pinned=0i,cursor_pinned_count=0i,cursor_timed_out=0i,cursor_timed_out_count=28i,cursor_total=0i,cursor_total_count=0i,delete_command_failed=0i,delete_command_total=0i,deletes=0i,deletes_per_sec=0i,distinct_command_failed=0i,distinct_command_total=0i,document_deleted=0i,document_inserted=0i,document_returned=2248129i,document_updated=0i,find_and_modify_command_failed=0i,find_and_modify_command_total=0i,find_command_failed=2i,find_command_total=8764i,flushes=7850i,flushes_per_sec=0i,flushes_total_time_ns=4535446000000i,get_more_command_failed=0i,get_more_command_total=1993i,getmores=2018i,getmores_per_sec=0i,insert_command_failed=0i,insert_command_total=0i,inserts=0i,inserts_per_sec=0i,jumbo_chunks=0i,latency_commands=112011949i,latency_commands_count=1072472i,latency_reads=1877142443i,latency_reads_count=57086i,latency_writes=0i,latency_writes_count=0i,member_status="SEC",net_in_bytes=1212i,net_in_bytes_count=263928689i,net_out_bytes=41051i,net_out_bytes_count=2475389483i,open_connections=17i,operation_scan_and_order=34i,operation_write_conflicts=0i,page_faults=317i,percent_cache_dirty=1.6,percent_cache_used=73,queries=8764i,queries_per_sec=0i,queued_reads=0i,queued_writes=0i,repl_apply_batches_num=17839419i,repl_apply_batches_total_millis=399929i,repl_apply_ops=23355263i,repl_buffer_count=0i,repl_buffer_size_bytes=0i,repl_commands=11i,repl_commands_per_sec=0i,repl_deletes=440608i,repl_deletes_per_sec=0i,repl_executor_pool_in_progress_count=0i,repl_executor_queues_network_in_progress=0i,repl_executor_queues_sleepers=4i,repl_executor_unsignaled_events=0i,repl_getmores=0i,repl_getmores_per_sec=0i,repl_inserts=1875729i,repl_inserts_per_sec=0i,repl_lag=0i,repl_network_bytes=39122199371i,repl_network_getmores_num=34908797i,repl_network_getmores_total_millis=434805356i,repl_network_ops=23199086i,repl_oplog_window_sec=619292i,repl_queries=0i,repl_queries_per_sec=0i,repl_updates=21034729i,repl_updates_per_sec=38i,resident_megabytes=6721i,state="SECONDARY",storage_freelist_search_bucket_exhausted=0i,storage_freelist_search_requests=0i,storage_freelist_search_scanned=0i,tcmalloc_central_cache_free_bytes=358512400i,tcmalloc_current_allocated_bytes=5427379424i,tcmalloc_current_total_thread_cache_bytes=70349552i,tcmalloc_heap_size=10199310336i,tcmalloc_max_total_thread_cache_bytes=1073741824i,tcmalloc_pageheap_commit_count=790819i,tcmalloc_pageheap_committed_bytes=7064821760i,tcmalloc_pageheap_decommit_count=533347i,tcmalloc_pageheap_free_bytes=1207816192i,tcmalloc_pageheap_reserve_count=7706i,tcmalloc_pageheap_scavenge_count=426235i,tcmalloc_pageheap_total_commit_bytes=116127649792i,tcmalloc_pageheap_total_decommit_bytes=109062828032i,tcmalloc_pageheap_total_reserve_bytes=10199310336i,tcmalloc_pageheap_unmapped_bytes=3134488576i,tcmalloc_spinlock_total_delay_ns=2518474348i,tcmalloc_thread_cache_free_bytes=70349552i,tcmalloc_total_free_bytes=429626144i,tcmalloc_transfer_cache_free_bytes=764192i,total_available=0i,total_created=0i,total_docs_scanned=735004782i,total_in_use=0i,total_keys_scanned=6188216i,total_refreshing=0i,total_tickets_reads=128i,total_tickets_writes=128i,ttl_deletes=0i,ttl_deletes_per_sec=0i,ttl_passes=7892i,ttl_passes_per_sec=0i,update_command_failed=0i,update_command_total=0i,updates=0i,updates_per_sec=0i,uptime_ns=473590288000000i,version="3.6.17",vsize_megabytes=11136i,wtcache_app_threads_page_read_count=11467625i,wtcache_app_threads_page_read_time=1700336840i,wtcache_app_threads_page_write_count=13268184i,wtcache_bytes_read_into=348022587843i,wtcache_bytes_written_from=322571702254i,wtcache_current_bytes=5509459274i,wtcache_internal_pages_evicted=109108i,wtcache_max_bytes_configured=7547650048i,wtcache_modified_pages_evicted=911196i,wtcache_pages_evicted_by_app_thread=17366i,wtcache_pages_queued_for_eviction=16572754i,wtcache_pages_read_into=11689764i,wtcache_pages_requested_from=499825861i,wtcache_server_evicting_pages=0i,wtcache_tracked_dirty_bytes=117487510i,wtcache_unmodified_pages_evicted=11058458i,wtcache_worker_thread_evictingpages=11907226i 1586379707000000000
|
||||
mongodb_db_stats,db_name=admin,hostname=127.0.0.1:27017 avg_obj_size=241,collections=2i,data_size=723i,index_size=49152i,indexes=3i,num_extents=0i,objects=3i,ok=1i,storage_size=53248i,type="db_stat" 1547159491000000000
|
||||
mongodb_db_stats,db_name=local,hostname=127.0.0.1:27017 avg_obj_size=813.9705882352941,collections=6i,data_size=55350i,index_size=102400i,indexes=5i,num_extents=0i,objects=68i,ok=1i,storage_size=204800i,type="db_stat" 1547159491000000000
|
||||
mongodb_col_stats,collection=foo,db_name=local,hostname=127.0.0.1:27017 size=375005928i,avg_obj_size=5494,type="col_stat",storage_size=249307136i,total_index_size=2138112i,ok=1i,count=68251i 1547159491000000000
|
||||
|
|
|
@ -88,11 +88,29 @@ var DefaultStats = map[string]string{
|
|||
"connections_current": "CurrentC",
|
||||
"connections_available": "AvailableC",
|
||||
"connections_total_created": "TotalCreatedC",
|
||||
"operation_scan_and_order": "ScanAndOrderOp",
|
||||
"operation_write_conflicts": "WriteConflictsOp",
|
||||
"total_keys_scanned": "TotalKeysScanned",
|
||||
"total_docs_scanned": "TotalObjectsScanned",
|
||||
}
|
||||
|
||||
var DefaultAssertsStats = map[string]string{
|
||||
"assert_regular": "Regular",
|
||||
"assert_warning": "Warning",
|
||||
"assert_msg": "Msg",
|
||||
"assert_user": "User",
|
||||
"assert_rollovers": "Rollovers",
|
||||
}
|
||||
|
||||
var DefaultCommandsStats = map[string]string{
|
||||
"aggregate_command_total": "AggregateCommandTotal",
|
||||
"aggregate_command_failed": "AggregateCommandFailed",
|
||||
"count_command_total": "CountCommandTotal",
|
||||
"count_command_failed": "CountCommandFailed",
|
||||
"delete_command_total": "DeleteCommandTotal",
|
||||
"delete_command_failed": "DeleteCommandFailed",
|
||||
"distinct_command_total": "DistinctCommandTotal",
|
||||
"distinct_command_failed": "DistinctCommandFailed",
|
||||
"find_command_total": "FindCommandTotal",
|
||||
"find_command_failed": "FindCommandFailed",
|
||||
"find_and_modify_command_total": "FindAndModifyCommandTotal",
|
||||
|
@ -130,6 +148,19 @@ var DefaultReplStats = map[string]string{
|
|||
"member_status": "NodeType",
|
||||
"state": "NodeState",
|
||||
"repl_lag": "ReplLag",
|
||||
"repl_network_bytes": "ReplNetworkBytes",
|
||||
"repl_network_getmores_num": "ReplNetworkGetmoresNum",
|
||||
"repl_network_getmores_total_millis": "ReplNetworkGetmoresTotalMillis",
|
||||
"repl_network_ops": "ReplNetworkOps",
|
||||
"repl_buffer_count": "ReplBufferCount",
|
||||
"repl_buffer_size_bytes": "ReplBufferSizeBytes",
|
||||
"repl_apply_batches_num": "ReplApplyBatchesNum",
|
||||
"repl_apply_batches_total_millis": "ReplApplyBatchesTotalMillis",
|
||||
"repl_apply_ops": "ReplApplyOps",
|
||||
"repl_executor_pool_in_progress_count": "ReplExecutorPoolInProgressCount",
|
||||
"repl_executor_queues_network_in_progress": "ReplExecutorQueuesNetworkInProgress",
|
||||
"repl_executor_queues_sleepers": "ReplExecutorQueuesSleepers",
|
||||
"repl_executor_unsignaled_events": "ReplExecutorUnsignaledEvents",
|
||||
}
|
||||
|
||||
var DefaultClusterStats = map[string]string{
|
||||
|
@ -182,6 +213,34 @@ var WiredTigerExtStats = map[string]string{
|
|||
"wtcache_unmodified_pages_evicted": "UnmodifiedPagesEvicted",
|
||||
}
|
||||
|
||||
var DefaultTCMallocStats = map[string]string{
|
||||
"tcmalloc_current_allocated_bytes": "TCMallocCurrentAllocatedBytes",
|
||||
"tcmalloc_heap_size": "TCMallocHeapSize",
|
||||
"tcmalloc_central_cache_free_bytes": "TCMallocCentralCacheFreeBytes",
|
||||
"tcmalloc_current_total_thread_cache_bytes": "TCMallocCurrentTotalThreadCacheBytes",
|
||||
"tcmalloc_max_total_thread_cache_bytes": "TCMallocMaxTotalThreadCacheBytes",
|
||||
"tcmalloc_total_free_bytes": "TCMallocTotalFreeBytes",
|
||||
"tcmalloc_transfer_cache_free_bytes": "TCMallocTransferCacheFreeBytes",
|
||||
"tcmalloc_thread_cache_free_bytes": "TCMallocThreadCacheFreeBytes",
|
||||
"tcmalloc_spinlock_total_delay_ns": "TCMallocSpinLockTotalDelayNanos",
|
||||
"tcmalloc_pageheap_free_bytes": "TCMallocPageheapFreeBytes",
|
||||
"tcmalloc_pageheap_unmapped_bytes": "TCMallocPageheapUnmappedBytes",
|
||||
"tcmalloc_pageheap_committed_bytes": "TCMallocPageheapComittedBytes",
|
||||
"tcmalloc_pageheap_scavenge_count": "TCMallocPageheapScavengeCount",
|
||||
"tcmalloc_pageheap_commit_count": "TCMallocPageheapCommitCount",
|
||||
"tcmalloc_pageheap_total_commit_bytes": "TCMallocPageheapTotalCommitBytes",
|
||||
"tcmalloc_pageheap_decommit_count": "TCMallocPageheapDecommitCount",
|
||||
"tcmalloc_pageheap_total_decommit_bytes": "TCMallocPageheapTotalDecommitBytes",
|
||||
"tcmalloc_pageheap_reserve_count": "TCMallocPageheapReserveCount",
|
||||
"tcmalloc_pageheap_total_reserve_bytes": "TCMallocPageheapTotalReserveBytes",
|
||||
}
|
||||
|
||||
var DefaultStorageStats = map[string]string{
|
||||
"storage_freelist_search_bucket_exhausted": "StorageFreelistSearchBucketExhausted",
|
||||
"storage_freelist_search_requests": "StorageFreelistSearchRequests",
|
||||
"storage_freelist_search_scanned": "StorageFreelistSearchScanned",
|
||||
}
|
||||
|
||||
var DbDataStats = map[string]string{
|
||||
"collections": "Collections",
|
||||
"objects": "Objects",
|
||||
|
@ -272,9 +331,16 @@ func (d *MongodbData) AddDefaultStats() {
|
|||
d.add("repl_oplog_window_sec", d.StatLine.OplogStats.TimeDiff)
|
||||
}
|
||||
|
||||
d.addStat(statLine, DefaultCommandsStats)
|
||||
if d.StatLine.Version != "" {
|
||||
d.add("version", d.StatLine.Version)
|
||||
}
|
||||
|
||||
d.addStat(statLine, DefaultAssertsStats)
|
||||
d.addStat(statLine, DefaultClusterStats)
|
||||
d.addStat(statLine, DefaultCommandsStats)
|
||||
d.addStat(statLine, DefaultShardStats)
|
||||
d.addStat(statLine, DefaultStorageStats)
|
||||
d.addStat(statLine, DefaultTCMallocStats)
|
||||
|
||||
if d.StatLine.StorageEngine == "mmapv1" || d.StatLine.StorageEngine == "rocksdb" {
|
||||
d.addStat(statLine, MmapStats)
|
||||
|
|
|
@ -52,6 +52,10 @@ func TestAddNonReplStats(t *testing.T) {
|
|||
CurrentC: 0,
|
||||
AvailableC: 0,
|
||||
TotalCreatedC: 0,
|
||||
ScanAndOrderOp: 0,
|
||||
WriteConflictsOp: 0,
|
||||
TotalKeysScanned: 0,
|
||||
TotalObjectsScanned: 0,
|
||||
},
|
||||
tags,
|
||||
)
|
||||
|
@ -169,11 +173,39 @@ func TestAddLatencyStats(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestAddAssertsStats(t *testing.T) {
|
||||
d := NewMongodbData(
|
||||
&StatLine{
|
||||
Regular: 3,
|
||||
Warning: 9,
|
||||
Msg: 2,
|
||||
User: 34,
|
||||
Rollovers: 0,
|
||||
},
|
||||
tags,
|
||||
)
|
||||
|
||||
var acc testutil.Accumulator
|
||||
|
||||
d.AddDefaultStats()
|
||||
d.flush(&acc)
|
||||
|
||||
for key := range DefaultAssertsStats {
|
||||
assert.True(t, acc.HasInt64Field("mongodb", key))
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddCommandsStats(t *testing.T) {
|
||||
d := NewMongodbData(
|
||||
&StatLine{
|
||||
AggregateCommandTotal: 12,
|
||||
AggregateCommandFailed: 2,
|
||||
CountCommandTotal: 18,
|
||||
CountCommandFailed: 5,
|
||||
DeleteCommandTotal: 73,
|
||||
DeleteCommandFailed: 364,
|
||||
DistinctCommandTotal: 87,
|
||||
DistinctCommandFailed: 19,
|
||||
FindCommandTotal: 113,
|
||||
FindCommandFailed: 201,
|
||||
FindAndModifyCommandTotal: 7,
|
||||
|
@ -198,6 +230,62 @@ func TestAddCommandsStats(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestAddTCMallocStats(t *testing.T) {
|
||||
d := NewMongodbData(
|
||||
&StatLine{
|
||||
TCMallocCurrentAllocatedBytes: 5877253096,
|
||||
TCMallocHeapSize: 8067108864,
|
||||
TCMallocPageheapFreeBytes: 1054994432,
|
||||
TCMallocPageheapUnmappedBytes: 677859328,
|
||||
TCMallocMaxTotalThreadCacheBytes: 1073741824,
|
||||
TCMallocCurrentTotalThreadCacheBytes: 80405312,
|
||||
TCMallocTotalFreeBytes: 457002008,
|
||||
TCMallocCentralCacheFreeBytes: 375131800,
|
||||
TCMallocTransferCacheFreeBytes: 1464896,
|
||||
TCMallocThreadCacheFreeBytes: 80405312,
|
||||
TCMallocPageheapComittedBytes: 7389249536,
|
||||
TCMallocPageheapScavengeCount: 396394,
|
||||
TCMallocPageheapCommitCount: 641765,
|
||||
TCMallocPageheapTotalCommitBytes: 102248751104,
|
||||
TCMallocPageheapDecommitCount: 396394,
|
||||
TCMallocPageheapTotalDecommitBytes: 94859501568,
|
||||
TCMallocPageheapReserveCount: 6179,
|
||||
TCMallocPageheapTotalReserveBytes: 8067108864,
|
||||
TCMallocSpinLockTotalDelayNanos: 2344453860,
|
||||
},
|
||||
tags,
|
||||
)
|
||||
|
||||
var acc testutil.Accumulator
|
||||
|
||||
d.AddDefaultStats()
|
||||
d.flush(&acc)
|
||||
|
||||
for key := range DefaultTCMallocStats {
|
||||
assert.True(t, acc.HasInt64Field("mongodb", key))
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddStorageStats(t *testing.T) {
|
||||
d := NewMongodbData(
|
||||
&StatLine{
|
||||
StorageFreelistSearchBucketExhausted: 0,
|
||||
StorageFreelistSearchRequests: 0,
|
||||
StorageFreelistSearchScanned: 0,
|
||||
},
|
||||
tags,
|
||||
)
|
||||
|
||||
var acc testutil.Accumulator
|
||||
|
||||
d.AddDefaultStats()
|
||||
d.flush(&acc)
|
||||
|
||||
for key := range DefaultStorageStats {
|
||||
assert.True(t, acc.HasInt64Field("mongodb", key))
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddShardHostStats(t *testing.T) {
|
||||
expectedHosts := []string{"hostA", "hostB"}
|
||||
hostStatLines := map[string]ShardHostStatLine{}
|
||||
|
@ -245,6 +333,7 @@ func TestStateTag(t *testing.T) {
|
|||
NodeType: "PRI",
|
||||
NodeState: "PRIMARY",
|
||||
ReplSetName: "rs1",
|
||||
Version: "3.6.17",
|
||||
},
|
||||
tags,
|
||||
)
|
||||
|
@ -260,86 +349,137 @@ func TestStateTag(t *testing.T) {
|
|||
fields := map[string]interface{}{
|
||||
"active_reads": int64(0),
|
||||
"active_writes": int64(0),
|
||||
"aggregate_command_failed": int64(0),
|
||||
"aggregate_command_total": int64(0),
|
||||
"assert_msg": int64(0),
|
||||
"assert_regular": int64(0),
|
||||
"assert_rollovers": int64(0),
|
||||
"assert_user": int64(0),
|
||||
"assert_warning": int64(0),
|
||||
"available_reads": int64(0),
|
||||
"available_writes": int64(0),
|
||||
"total_tickets_reads": int64(0),
|
||||
"total_tickets_writes": int64(0),
|
||||
"commands": int64(0),
|
||||
"commands_per_sec": int64(0),
|
||||
"deletes": int64(0),
|
||||
"deletes_per_sec": int64(0),
|
||||
"flushes": int64(0),
|
||||
"flushes_per_sec": int64(0),
|
||||
"flushes_total_time_ns": int64(0),
|
||||
"getmores": int64(0),
|
||||
"getmores_per_sec": int64(0),
|
||||
"inserts": int64(0),
|
||||
"inserts_per_sec": int64(0),
|
||||
"member_status": "PRI",
|
||||
"state": "PRIMARY",
|
||||
"net_in_bytes_count": int64(0),
|
||||
"net_in_bytes": int64(0),
|
||||
"net_out_bytes_count": int64(0),
|
||||
"net_out_bytes": int64(0),
|
||||
"open_connections": int64(0),
|
||||
"queries": int64(0),
|
||||
"queries_per_sec": int64(0),
|
||||
"queued_reads": int64(0),
|
||||
"queued_writes": int64(0),
|
||||
"repl_commands": int64(0),
|
||||
"repl_commands_per_sec": int64(0),
|
||||
"repl_deletes": int64(0),
|
||||
"repl_deletes_per_sec": int64(0),
|
||||
"repl_getmores": int64(0),
|
||||
"repl_getmores_per_sec": int64(0),
|
||||
"repl_inserts": int64(0),
|
||||
"repl_inserts_per_sec": int64(0),
|
||||
"repl_queries": int64(0),
|
||||
"repl_queries_per_sec": int64(0),
|
||||
"repl_updates": int64(0),
|
||||
"repl_updates_per_sec": int64(0),
|
||||
"repl_lag": int64(0),
|
||||
"resident_megabytes": int64(0),
|
||||
"updates": int64(0),
|
||||
"updates_per_sec": int64(0),
|
||||
"uptime_ns": int64(0),
|
||||
"vsize_megabytes": int64(0),
|
||||
"ttl_deletes": int64(0),
|
||||
"ttl_deletes_per_sec": int64(0),
|
||||
"ttl_passes": int64(0),
|
||||
"ttl_passes_per_sec": int64(0),
|
||||
"jumbo_chunks": int64(0),
|
||||
"total_in_use": int64(0),
|
||||
"total_available": int64(0),
|
||||
"total_created": int64(0),
|
||||
"total_refreshing": int64(0),
|
||||
"cursor_timed_out": int64(0),
|
||||
"cursor_timed_out_count": int64(0),
|
||||
"connections_available": int64(0),
|
||||
"connections_current": int64(0),
|
||||
"connections_total_created": int64(0),
|
||||
"count_command_failed": int64(0),
|
||||
"count_command_total": int64(0),
|
||||
"cursor_no_timeout": int64(0),
|
||||
"cursor_no_timeout_count": int64(0),
|
||||
"cursor_pinned": int64(0),
|
||||
"cursor_pinned_count": int64(0),
|
||||
"cursor_timed_out": int64(0),
|
||||
"cursor_timed_out_count": int64(0),
|
||||
"cursor_total": int64(0),
|
||||
"cursor_total_count": int64(0),
|
||||
"delete_command_failed": int64(0),
|
||||
"delete_command_total": int64(0),
|
||||
"deletes": int64(0),
|
||||
"deletes_per_sec": int64(0),
|
||||
"distinct_command_failed": int64(0),
|
||||
"distinct_command_total": int64(0),
|
||||
"document_deleted": int64(0),
|
||||
"document_inserted": int64(0),
|
||||
"document_returned": int64(0),
|
||||
"document_updated": int64(0),
|
||||
"connections_current": int64(0),
|
||||
"connections_available": int64(0),
|
||||
"connections_total_created": int64(0),
|
||||
"delete_command_total": int64(0),
|
||||
"delete_command_failed": int64(0),
|
||||
"find_command_total": int64(0),
|
||||
"find_command_failed": int64(0),
|
||||
"find_and_modify_command_total": int64(0),
|
||||
"find_and_modify_command_failed": int64(0),
|
||||
"get_more_command_total": int64(0),
|
||||
"find_and_modify_command_total": int64(0),
|
||||
"find_command_failed": int64(0),
|
||||
"find_command_total": int64(0),
|
||||
"flushes": int64(0),
|
||||
"flushes_per_sec": int64(0),
|
||||
"flushes_total_time_ns": int64(0),
|
||||
"get_more_command_failed": int64(0),
|
||||
"insert_command_total": int64(0),
|
||||
"get_more_command_total": int64(0),
|
||||
"getmores": int64(0),
|
||||
"getmores_per_sec": int64(0),
|
||||
"insert_command_failed": int64(0),
|
||||
"update_command_total": int64(0),
|
||||
"insert_command_total": int64(0),
|
||||
"inserts": int64(0),
|
||||
"inserts_per_sec": int64(0),
|
||||
"jumbo_chunks": int64(0),
|
||||
"member_status": "PRI",
|
||||
"net_in_bytes": int64(0),
|
||||
"net_in_bytes_count": int64(0),
|
||||
"net_out_bytes": int64(0),
|
||||
"net_out_bytes_count": int64(0),
|
||||
"open_connections": int64(0),
|
||||
"operation_scan_and_order": int64(0),
|
||||
"operation_write_conflicts": int64(0),
|
||||
"queries": int64(0),
|
||||
"queries_per_sec": int64(0),
|
||||
"queued_reads": int64(0),
|
||||
"queued_writes": int64(0),
|
||||
"repl_apply_batches_num": int64(0),
|
||||
"repl_apply_batches_total_millis": int64(0),
|
||||
"repl_apply_ops": int64(0),
|
||||
"repl_buffer_count": int64(0),
|
||||
"repl_buffer_size_bytes": int64(0),
|
||||
"repl_commands": int64(0),
|
||||
"repl_commands_per_sec": int64(0),
|
||||
"repl_deletes": int64(0),
|
||||
"repl_deletes_per_sec": int64(0),
|
||||
"repl_executor_pool_in_progress_count": int64(0),
|
||||
"repl_executor_queues_network_in_progress": int64(0),
|
||||
"repl_executor_queues_sleepers": int64(0),
|
||||
"repl_executor_unsignaled_events": int64(0),
|
||||
"repl_getmores": int64(0),
|
||||
"repl_getmores_per_sec": int64(0),
|
||||
"repl_inserts": int64(0),
|
||||
"repl_inserts_per_sec": int64(0),
|
||||
"repl_lag": int64(0),
|
||||
"repl_network_bytes": int64(0),
|
||||
"repl_network_getmores_num": int64(0),
|
||||
"repl_network_getmores_total_millis": int64(0),
|
||||
"repl_network_ops": int64(0),
|
||||
"repl_queries": int64(0),
|
||||
"repl_queries_per_sec": int64(0),
|
||||
"repl_updates": int64(0),
|
||||
"repl_updates_per_sec": int64(0),
|
||||
"resident_megabytes": int64(0),
|
||||
"state": "PRIMARY",
|
||||
"storage_freelist_search_bucket_exhausted": int64(0),
|
||||
"storage_freelist_search_requests": int64(0),
|
||||
"storage_freelist_search_scanned": int64(0),
|
||||
"tcmalloc_central_cache_free_bytes": int64(0),
|
||||
"tcmalloc_current_allocated_bytes": int64(0),
|
||||
"tcmalloc_current_total_thread_cache_bytes": int64(0),
|
||||
"tcmalloc_heap_size": int64(0),
|
||||
"tcmalloc_max_total_thread_cache_bytes": int64(0),
|
||||
"tcmalloc_pageheap_commit_count": int64(0),
|
||||
"tcmalloc_pageheap_committed_bytes": int64(0),
|
||||
"tcmalloc_pageheap_decommit_count": int64(0),
|
||||
"tcmalloc_pageheap_free_bytes": int64(0),
|
||||
"tcmalloc_pageheap_reserve_count": int64(0),
|
||||
"tcmalloc_pageheap_scavenge_count": int64(0),
|
||||
"tcmalloc_pageheap_total_commit_bytes": int64(0),
|
||||
"tcmalloc_pageheap_total_decommit_bytes": int64(0),
|
||||
"tcmalloc_pageheap_total_reserve_bytes": int64(0),
|
||||
"tcmalloc_pageheap_unmapped_bytes": int64(0),
|
||||
"tcmalloc_spinlock_total_delay_ns": int64(0),
|
||||
"tcmalloc_thread_cache_free_bytes": int64(0),
|
||||
"tcmalloc_total_free_bytes": int64(0),
|
||||
"tcmalloc_transfer_cache_free_bytes": int64(0),
|
||||
"total_available": int64(0),
|
||||
"total_created": int64(0),
|
||||
"total_docs_scanned": int64(0),
|
||||
"total_in_use": int64(0),
|
||||
"total_keys_scanned": int64(0),
|
||||
"total_refreshing": int64(0),
|
||||
"total_tickets_reads": int64(0),
|
||||
"total_tickets_writes": int64(0),
|
||||
"ttl_deletes": int64(0),
|
||||
"ttl_deletes_per_sec": int64(0),
|
||||
"ttl_passes": int64(0),
|
||||
"ttl_passes_per_sec": int64(0),
|
||||
"update_command_failed": int64(0),
|
||||
"update_command_total": int64(0),
|
||||
"updates": int64(0),
|
||||
"updates_per_sec": int64(0),
|
||||
"uptime_ns": int64(0),
|
||||
"version": "3.6.17",
|
||||
"vsize_megabytes": int64(0),
|
||||
}
|
||||
acc.AssertContainsTaggedFields(t, "mongodb", fields, stateTags)
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ type ServerStatus struct {
|
|||
UptimeMillis int64 `bson:"uptimeMillis"`
|
||||
UptimeEstimate int64 `bson:"uptimeEstimate"`
|
||||
LocalTime time.Time `bson:"localTime"`
|
||||
Asserts map[string]int64 `bson:"asserts"`
|
||||
Asserts *AssertsStats `bson:"asserts"`
|
||||
BackgroundFlushing *FlushStats `bson:"backgroundFlushing"`
|
||||
ExtraInfo *ExtraInfo `bson:"extra_info"`
|
||||
Connections *ConnectionStats `bson:"connections"`
|
||||
|
@ -66,6 +66,7 @@ type ServerStatus struct {
|
|||
StorageEngine map[string]string `bson:"storageEngine"`
|
||||
WiredTiger *WiredTiger `bson:"wiredTiger"`
|
||||
Metrics *MetricsStats `bson:"metrics"`
|
||||
TCMallocStats *TCMallocStats `bson:"tcmalloc"`
|
||||
}
|
||||
|
||||
// DbStats stores stats from all dbs
|
||||
|
@ -179,6 +180,15 @@ type ConcurrentTransStats struct {
|
|||
TotalTickets int64 `bson:"totalTickets"`
|
||||
}
|
||||
|
||||
// AssertsStats stores information related to assertions raised since the MongoDB process started
|
||||
type AssertsStats struct {
|
||||
Regular int64 `bson:"regular"`
|
||||
Warning int64 `bson:"warning"`
|
||||
Msg int64 `bson:"msg"`
|
||||
User int64 `bson:"user"`
|
||||
Rollovers int64 `bson:"rollovers"`
|
||||
}
|
||||
|
||||
// CacheStats stores cache statistics for WiredTiger.
|
||||
type CacheStats struct {
|
||||
TrackedDirtyBytes int64 `bson:"tracked dirty bytes in the cache"`
|
||||
|
@ -336,6 +346,10 @@ type MetricsStats struct {
|
|||
Cursor *CursorStats `bson:"cursor"`
|
||||
Document *DocumentStats `bson:"document"`
|
||||
Commands *CommandsStats `bson:"commands"`
|
||||
Operation *OperationStats `bson:"operation"`
|
||||
QueryExecutor *QueryExecutorStats `bson:"queryExecutor"`
|
||||
Repl *ReplStats `bson:"repl"`
|
||||
Storage *StorageStats `bson:"storage"`
|
||||
}
|
||||
|
||||
// TTLStats stores information related to documents with a ttl index.
|
||||
|
@ -360,7 +374,10 @@ type DocumentStats struct {
|
|||
|
||||
// CommandsStats stores information related to document metrics.
|
||||
type CommandsStats struct {
|
||||
Aggregate *CommandsStatsValue `bson:"aggregate"`
|
||||
Count *CommandsStatsValue `bson:"count"`
|
||||
Delete *CommandsStatsValue `bson:"delete"`
|
||||
Distinct *CommandsStatsValue `bson:"distinct"`
|
||||
Find *CommandsStatsValue `bson:"find"`
|
||||
FindAndModify *CommandsStatsValue `bson:"findAndModify"`
|
||||
GetMore *CommandsStatsValue `bson:"getMore"`
|
||||
|
@ -380,6 +397,59 @@ type OpenCursorStats struct {
|
|||
Total int64 `bson:"total"`
|
||||
}
|
||||
|
||||
// OperationStats stores information related to query operations
|
||||
// using special operation types
|
||||
type OperationStats struct {
|
||||
ScanAndOrder int64 `bson:"scanAndOrder"`
|
||||
WriteConflicts int64 `bson:"writeConflicts"`
|
||||
}
|
||||
|
||||
// QueryExecutorStats stores information related to query execution
|
||||
type QueryExecutorStats struct {
|
||||
Scanned int64 `bson:"scanned"`
|
||||
ScannedObjects int64 `bson:"scannedObjects"`
|
||||
}
|
||||
|
||||
// ReplStats stores information related to replication process
|
||||
type ReplStats struct {
|
||||
Apply *ReplApplyStats `bson:"apply"`
|
||||
Buffer *ReplBufferStats `bson:"buffer"`
|
||||
Executor *ReplExecutorStats `bson:"executor,omitempty"`
|
||||
Network *ReplNetworkStats `bson:"network"`
|
||||
}
|
||||
|
||||
// ReplApplyStats stores information related to oplog application process
|
||||
type ReplApplyStats struct {
|
||||
Batches *BasicStats `bson:"batches"`
|
||||
Ops int64 `bson:"ops"`
|
||||
}
|
||||
|
||||
// ReplBufferStats stores information related to oplog buffer
|
||||
type ReplBufferStats struct {
|
||||
Count int64 `bson:"count"`
|
||||
SizeBytes int64 `bson:"sizeBytes"`
|
||||
}
|
||||
|
||||
// ReplExecutorStats stores information related to replication executor
|
||||
type ReplExecutorStats struct {
|
||||
Pool map[string]int64 `bson:"pool"`
|
||||
Queues map[string]int64 `bson:"queues"`
|
||||
UnsignaledEvents int64 `bson:"unsignaledEvents"`
|
||||
}
|
||||
|
||||
// ReplNetworkStats stores information related to network usage by replication process
|
||||
type ReplNetworkStats struct {
|
||||
Bytes int64 `bson:"bytes"`
|
||||
GetMores *BasicStats `bson:"getmores"`
|
||||
Ops int64 `bson:"ops"`
|
||||
}
|
||||
|
||||
// BasicStats stores information about an operation
|
||||
type BasicStats struct {
|
||||
Num int64 `bson:"num"`
|
||||
TotalMillis int64 `bson:"totalMillis"`
|
||||
}
|
||||
|
||||
// ReadWriteLockTimes stores time spent holding read/write locks.
|
||||
type ReadWriteLockTimes struct {
|
||||
Read int64 `bson:"R"`
|
||||
|
@ -406,6 +476,46 @@ type ExtraInfo struct {
|
|||
PageFaults *int64 `bson:"page_faults"`
|
||||
}
|
||||
|
||||
// TCMallocStats stores information related to TCMalloc memory allocator metrics
|
||||
type TCMallocStats struct {
|
||||
Generic *GenericTCMAllocStats `bson:"generic"`
|
||||
TCMalloc *DetailedTCMallocStats `bson:"tcmalloc"`
|
||||
}
|
||||
|
||||
// GenericTCMAllocStats stores generic TCMalloc memory allocator metrics
|
||||
type GenericTCMAllocStats struct {
|
||||
CurrentAllocatedBytes int64 `bson:"current_allocated_bytes"`
|
||||
HeapSize int64 `bson:"heap_size"`
|
||||
}
|
||||
|
||||
// DetailedTCMallocStats stores detailed TCMalloc memory allocator metrics
|
||||
type DetailedTCMallocStats struct {
|
||||
PageheapFreeBytes int64 `bson:"pageheap_free_bytes"`
|
||||
PageheapUnmappedBytes int64 `bson:"pageheap_unmapped_bytes"`
|
||||
MaxTotalThreadCacheBytes int64 `bson:"max_total_thread_cache_bytes"`
|
||||
CurrentTotalThreadCacheBytes int64 `bson:"current_total_thread_cache_bytes"`
|
||||
TotalFreeBytes int64 `bson:"total_free_bytes"`
|
||||
CentralCacheFreeBytes int64 `bson:"central_cache_free_bytes"`
|
||||
TransferCacheFreeBytes int64 `bson:"transfer_cache_free_bytes"`
|
||||
ThreadCacheFreeBytes int64 `bson:"thread_cache_free_bytes"`
|
||||
PageheapComittedBytes int64 `bson:"pageheap_committed_bytes"`
|
||||
PageheapScavengeCount int64 `bson:"pageheap_scavenge_count"`
|
||||
PageheapCommitCount int64 `bson:"pageheap_commit_count"`
|
||||
PageheapTotalCommitBytes int64 `bson:"pageheap_total_commit_bytes"`
|
||||
PageheapDecommitCount int64 `bson:"pageheap_decommit_count"`
|
||||
PageheapTotalDecommitBytes int64 `bson:"pageheap_total_decommit_bytes"`
|
||||
PageheapReserveCount int64 `bson:"pageheap_reserve_count"`
|
||||
PageheapTotalReserveBytes int64 `bson:"pageheap_total_reserve_bytes"`
|
||||
SpinLockTotalDelayNanos int64 `bson:"spinlock_total_delay_ns"`
|
||||
}
|
||||
|
||||
// StorageStats stores information related to record allocations
|
||||
type StorageStats struct {
|
||||
FreelistSearchBucketExhausted int64 `bson:"freelist.search.bucketExhausted"`
|
||||
FreelistSearchRequests int64 `bson:"freelist.search.requests"`
|
||||
FreelistSearchScanned int64 `bson:"freelist.search.scanned"`
|
||||
}
|
||||
|
||||
// StatHeader describes a single column for mongostat's terminal output,
|
||||
// its formatting, and in which modes it should be displayed.
|
||||
type StatHeader struct {
|
||||
|
@ -508,6 +618,7 @@ type StatLine struct {
|
|||
Error error
|
||||
IsMongos bool
|
||||
Host string
|
||||
Version string
|
||||
|
||||
UptimeNanos int64
|
||||
|
||||
|
@ -525,6 +636,13 @@ type StatLine struct {
|
|||
GetMore, GetMoreCnt int64
|
||||
Command, CommandCnt int64
|
||||
|
||||
// Asserts fields
|
||||
Regular int64
|
||||
Warning int64
|
||||
Msg int64
|
||||
User int64
|
||||
Rollovers int64
|
||||
|
||||
// OpLatency fields
|
||||
WriteOpsCnt int64
|
||||
WriteLatency int64
|
||||
|
@ -547,13 +665,22 @@ type StatLine struct {
|
|||
DeletedD, InsertedD, ReturnedD, UpdatedD int64
|
||||
|
||||
//Commands fields
|
||||
AggregateCommandTotal, AggregateCommandFailed int64
|
||||
CountCommandTotal, CountCommandFailed int64
|
||||
DeleteCommandTotal, DeleteCommandFailed int64
|
||||
DistinctCommandTotal, DistinctCommandFailed int64
|
||||
FindCommandTotal, FindCommandFailed int64
|
||||
FindAndModifyCommandTotal, FindAndModifyCommandFailed int64
|
||||
GetMoreCommandTotal, GetMoreCommandFailed int64
|
||||
InsertCommandTotal, InsertCommandFailed int64
|
||||
UpdateCommandTotal, UpdateCommandFailed int64
|
||||
|
||||
// Operation fields
|
||||
ScanAndOrderOp, WriteConflictsOp int64
|
||||
|
||||
// Query Executor fields
|
||||
TotalKeysScanned, TotalObjectsScanned int64
|
||||
|
||||
// Connection fields
|
||||
CurrentC, AvailableC, TotalCreatedC int64
|
||||
|
||||
|
@ -608,6 +735,21 @@ type StatLine struct {
|
|||
NodeType string
|
||||
NodeState string
|
||||
|
||||
// Replicated Metrics fields
|
||||
ReplNetworkBytes int64
|
||||
ReplNetworkGetmoresNum int64
|
||||
ReplNetworkGetmoresTotalMillis int64
|
||||
ReplNetworkOps int64
|
||||
ReplBufferCount int64
|
||||
ReplBufferSizeBytes int64
|
||||
ReplApplyBatchesNum int64
|
||||
ReplApplyBatchesTotalMillis int64
|
||||
ReplApplyOps int64
|
||||
ReplExecutorPoolInProgressCount int64
|
||||
ReplExecutorQueuesNetworkInProgress int64
|
||||
ReplExecutorQueuesSleepers int64
|
||||
ReplExecutorUnsignaledEvents int64
|
||||
|
||||
// Cluster fields
|
||||
JumboChunksCount int64
|
||||
|
||||
|
@ -622,6 +764,32 @@ type StatLine struct {
|
|||
|
||||
// Shard Hosts stats field
|
||||
ShardHostStatsLines map[string]ShardHostStatLine
|
||||
|
||||
// TCMalloc stats field
|
||||
TCMallocCurrentAllocatedBytes int64
|
||||
TCMallocHeapSize int64
|
||||
TCMallocCentralCacheFreeBytes int64
|
||||
TCMallocCurrentTotalThreadCacheBytes int64
|
||||
TCMallocMaxTotalThreadCacheBytes int64
|
||||
TCMallocTotalFreeBytes int64
|
||||
TCMallocTransferCacheFreeBytes int64
|
||||
TCMallocThreadCacheFreeBytes int64
|
||||
TCMallocSpinLockTotalDelayNanos int64
|
||||
TCMallocPageheapFreeBytes int64
|
||||
TCMallocPageheapUnmappedBytes int64
|
||||
TCMallocPageheapComittedBytes int64
|
||||
TCMallocPageheapScavengeCount int64
|
||||
TCMallocPageheapCommitCount int64
|
||||
TCMallocPageheapTotalCommitBytes int64
|
||||
TCMallocPageheapDecommitCount int64
|
||||
TCMallocPageheapTotalDecommitBytes int64
|
||||
TCMallocPageheapReserveCount int64
|
||||
TCMallocPageheapTotalReserveBytes int64
|
||||
|
||||
// Storage stats field
|
||||
StorageFreelistSearchBucketExhausted int64
|
||||
StorageFreelistSearchRequests int64
|
||||
StorageFreelistSearchScanned int64
|
||||
}
|
||||
|
||||
type DbStatLine struct {
|
||||
|
@ -704,6 +872,7 @@ func NewStatLine(oldMongo, newMongo MongoStatus, key string, all bool, sampleSec
|
|||
returnVal := &StatLine{
|
||||
Key: key,
|
||||
Host: newStat.Host,
|
||||
Version: newStat.Version,
|
||||
Mapped: -1,
|
||||
Virtual: -1,
|
||||
Resident: -1,
|
||||
|
@ -749,6 +918,41 @@ func NewStatLine(oldMongo, newMongo MongoStatus, key string, all bool, sampleSec
|
|||
}
|
||||
}
|
||||
|
||||
if newStat.Asserts != nil {
|
||||
returnVal.Regular = newStat.Asserts.Regular
|
||||
returnVal.Warning = newStat.Asserts.Warning
|
||||
returnVal.Msg = newStat.Asserts.Msg
|
||||
returnVal.User = newStat.Asserts.User
|
||||
returnVal.Rollovers = newStat.Asserts.Rollovers
|
||||
}
|
||||
|
||||
if newStat.TCMallocStats != nil {
|
||||
if newStat.TCMallocStats.Generic != nil {
|
||||
returnVal.TCMallocCurrentAllocatedBytes = newStat.TCMallocStats.Generic.CurrentAllocatedBytes
|
||||
returnVal.TCMallocHeapSize = newStat.TCMallocStats.Generic.HeapSize
|
||||
}
|
||||
if newStat.TCMallocStats.TCMalloc != nil {
|
||||
returnVal.TCMallocCentralCacheFreeBytes = newStat.TCMallocStats.TCMalloc.CentralCacheFreeBytes
|
||||
returnVal.TCMallocCurrentTotalThreadCacheBytes = newStat.TCMallocStats.TCMalloc.CurrentTotalThreadCacheBytes
|
||||
returnVal.TCMallocMaxTotalThreadCacheBytes = newStat.TCMallocStats.TCMalloc.MaxTotalThreadCacheBytes
|
||||
returnVal.TCMallocTransferCacheFreeBytes = newStat.TCMallocStats.TCMalloc.TransferCacheFreeBytes
|
||||
returnVal.TCMallocThreadCacheFreeBytes = newStat.TCMallocStats.TCMalloc.ThreadCacheFreeBytes
|
||||
returnVal.TCMallocTotalFreeBytes = newStat.TCMallocStats.TCMalloc.TotalFreeBytes
|
||||
returnVal.TCMallocSpinLockTotalDelayNanos = newStat.TCMallocStats.TCMalloc.SpinLockTotalDelayNanos
|
||||
|
||||
returnVal.TCMallocPageheapFreeBytes = newStat.TCMallocStats.TCMalloc.PageheapFreeBytes
|
||||
returnVal.TCMallocPageheapUnmappedBytes = newStat.TCMallocStats.TCMalloc.PageheapUnmappedBytes
|
||||
returnVal.TCMallocPageheapComittedBytes = newStat.TCMallocStats.TCMalloc.PageheapComittedBytes
|
||||
returnVal.TCMallocPageheapScavengeCount = newStat.TCMallocStats.TCMalloc.PageheapScavengeCount
|
||||
returnVal.TCMallocPageheapCommitCount = newStat.TCMallocStats.TCMalloc.PageheapCommitCount
|
||||
returnVal.TCMallocPageheapTotalCommitBytes = newStat.TCMallocStats.TCMalloc.PageheapTotalCommitBytes
|
||||
returnVal.TCMallocPageheapDecommitCount = newStat.TCMallocStats.TCMalloc.PageheapDecommitCount
|
||||
returnVal.TCMallocPageheapTotalDecommitBytes = newStat.TCMallocStats.TCMalloc.PageheapTotalDecommitBytes
|
||||
returnVal.TCMallocPageheapReserveCount = newStat.TCMallocStats.TCMalloc.PageheapReserveCount
|
||||
returnVal.TCMallocPageheapTotalReserveBytes = newStat.TCMallocStats.TCMalloc.PageheapTotalReserveBytes
|
||||
}
|
||||
}
|
||||
|
||||
if newStat.Metrics != nil && oldStat.Metrics != nil {
|
||||
if newStat.Metrics.TTL != nil && oldStat.Metrics.TTL != nil {
|
||||
returnVal.Passes, returnVal.PassesCnt = diff(newStat.Metrics.TTL.Passes, oldStat.Metrics.TTL.Passes, sampleSecs)
|
||||
|
@ -770,10 +974,22 @@ func NewStatLine(oldMongo, newMongo MongoStatus, key string, all bool, sampleSec
|
|||
}
|
||||
|
||||
if newStat.Metrics.Commands != nil {
|
||||
if newStat.Metrics.Commands.Aggregate != nil {
|
||||
returnVal.AggregateCommandTotal = newStat.Metrics.Commands.Aggregate.Total
|
||||
returnVal.AggregateCommandFailed = newStat.Metrics.Commands.Aggregate.Failed
|
||||
}
|
||||
if newStat.Metrics.Commands.Count != nil {
|
||||
returnVal.CountCommandTotal = newStat.Metrics.Commands.Count.Total
|
||||
returnVal.CountCommandFailed = newStat.Metrics.Commands.Count.Failed
|
||||
}
|
||||
if newStat.Metrics.Commands.Delete != nil {
|
||||
returnVal.DeleteCommandTotal = newStat.Metrics.Commands.Delete.Total
|
||||
returnVal.DeleteCommandFailed = newStat.Metrics.Commands.Delete.Failed
|
||||
}
|
||||
if newStat.Metrics.Commands.Distinct != nil {
|
||||
returnVal.DistinctCommandTotal = newStat.Metrics.Commands.Distinct.Total
|
||||
returnVal.DistinctCommandFailed = newStat.Metrics.Commands.Distinct.Failed
|
||||
}
|
||||
if newStat.Metrics.Commands.Find != nil {
|
||||
returnVal.FindCommandTotal = newStat.Metrics.Commands.Find.Total
|
||||
returnVal.FindCommandFailed = newStat.Metrics.Commands.Find.Failed
|
||||
|
@ -795,6 +1011,46 @@ func NewStatLine(oldMongo, newMongo MongoStatus, key string, all bool, sampleSec
|
|||
returnVal.UpdateCommandFailed = newStat.Metrics.Commands.Update.Failed
|
||||
}
|
||||
}
|
||||
|
||||
if newStat.Metrics.Operation != nil {
|
||||
returnVal.ScanAndOrderOp = newStat.Metrics.Operation.ScanAndOrder
|
||||
returnVal.WriteConflictsOp = newStat.Metrics.Operation.WriteConflicts
|
||||
}
|
||||
|
||||
if newStat.Metrics.QueryExecutor != nil {
|
||||
returnVal.TotalKeysScanned = newStat.Metrics.QueryExecutor.Scanned
|
||||
returnVal.TotalObjectsScanned = newStat.Metrics.QueryExecutor.ScannedObjects
|
||||
}
|
||||
|
||||
if newStat.Metrics.Repl != nil {
|
||||
if newStat.Metrics.Repl.Apply != nil {
|
||||
returnVal.ReplApplyBatchesNum = newStat.Metrics.Repl.Apply.Batches.Num
|
||||
returnVal.ReplApplyBatchesTotalMillis = newStat.Metrics.Repl.Apply.Batches.TotalMillis
|
||||
returnVal.ReplApplyOps = newStat.Metrics.Repl.Apply.Ops
|
||||
}
|
||||
if newStat.Metrics.Repl.Buffer != nil {
|
||||
returnVal.ReplBufferCount = newStat.Metrics.Repl.Buffer.Count
|
||||
returnVal.ReplBufferSizeBytes = newStat.Metrics.Repl.Buffer.SizeBytes
|
||||
}
|
||||
if newStat.Metrics.Repl.Executor != nil {
|
||||
returnVal.ReplExecutorPoolInProgressCount = newStat.Metrics.Repl.Executor.Pool["inProgressCount"]
|
||||
returnVal.ReplExecutorQueuesNetworkInProgress = newStat.Metrics.Repl.Executor.Queues["networkInProgress"]
|
||||
returnVal.ReplExecutorQueuesSleepers = newStat.Metrics.Repl.Executor.Queues["sleepers"]
|
||||
returnVal.ReplExecutorUnsignaledEvents = newStat.Metrics.Repl.Executor.UnsignaledEvents
|
||||
}
|
||||
if newStat.Metrics.Repl.Network != nil {
|
||||
returnVal.ReplNetworkBytes = newStat.Metrics.Repl.Network.Bytes
|
||||
returnVal.ReplNetworkGetmoresNum = newStat.Metrics.Repl.Network.GetMores.Num
|
||||
returnVal.ReplNetworkGetmoresTotalMillis = newStat.Metrics.Repl.Network.GetMores.TotalMillis
|
||||
returnVal.ReplNetworkOps = newStat.Metrics.Repl.Network.Ops
|
||||
}
|
||||
}
|
||||
|
||||
if newStat.Metrics.Storage != nil {
|
||||
returnVal.StorageFreelistSearchBucketExhausted = newStat.Metrics.Storage.FreelistSearchBucketExhausted
|
||||
returnVal.StorageFreelistSearchRequests = newStat.Metrics.Storage.FreelistSearchRequests
|
||||
returnVal.StorageFreelistSearchScanned = newStat.Metrics.Storage.FreelistSearchScanned
|
||||
}
|
||||
}
|
||||
|
||||
if newStat.OpcountersRepl != nil && oldStat.OpcountersRepl != nil {
|
||||
|
|
Loading…
Reference in New Issue