Add additional concurrent transaction information (#7193)

This commit is contained in:
Denis Pershin 2020-03-24 02:14:56 +03:00 committed by GitHub
parent 3e1c7a8948
commit 4c59de9023
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 82 additions and 58 deletions

View File

@ -60,6 +60,8 @@ by running Telegraf with the `--debug` argument.
- fields: - fields:
- active_reads (integer) - active_reads (integer)
- active_writes (integer) - active_writes (integer)
- available_reads (integer)
- available_writes (integer)
- commands (integer) - commands (integer)
- connections_current (integer) - connections_current (integer)
- connections_available (integer) - connections_available (integer)
@ -117,6 +119,8 @@ by running Telegraf with the `--debug` argument.
- total_created (integer) - total_created (integer)
- total_in_use (integer) - total_in_use (integer)
- total_refreshing (integer) - total_refreshing (integer)
- total_tickets_reads (integer)
- total_tickets_writes (integer)
- ttl_deletes (integer) - ttl_deletes (integer)
- ttl_passes (integer) - ttl_passes (integer)
- updates (integer) - updates (integer)
@ -204,8 +208,8 @@ by running Telegraf with the `--debug` argument.
### Example Output: ### Example Output:
``` ```
mongodb,hostname=127.0.0.1:27017 active_reads=0i,active_writes=0i,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,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=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,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,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_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=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_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 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

View File

@ -60,6 +60,10 @@ var DefaultStats = map[string]string{
"queued_writes": "QueuedWriters", "queued_writes": "QueuedWriters",
"active_reads": "ActiveReaders", "active_reads": "ActiveReaders",
"active_writes": "ActiveWriters", "active_writes": "ActiveWriters",
"available_reads": "AvailableReaders",
"available_writes": "AvailableWriters",
"total_tickets_reads": "TotalTicketsReaders",
"total_tickets_writes": "TotalTicketsWriters",
"net_in_bytes_count": "NetInCnt", "net_in_bytes_count": "NetInCnt",
"net_in_bytes": "NetIn", "net_in_bytes": "NetIn",
"net_out_bytes_count": "NetOutCnt", "net_out_bytes_count": "NetOutCnt",

View File

@ -14,40 +14,44 @@ var tags = make(map[string]string)
func TestAddNonReplStats(t *testing.T) { func TestAddNonReplStats(t *testing.T) {
d := NewMongodbData( d := NewMongodbData(
&StatLine{ &StatLine{
StorageEngine: "", StorageEngine: "",
Time: time.Now(), Time: time.Now(),
UptimeNanos: 0, UptimeNanos: 0,
Insert: 0, Insert: 0,
Query: 0, Query: 0,
Update: 0, Update: 0,
UpdateCnt: 0, UpdateCnt: 0,
Delete: 0, Delete: 0,
GetMore: 0, GetMore: 0,
Command: 0, Command: 0,
Flushes: 0, Flushes: 0,
FlushesCnt: 0, FlushesCnt: 0,
Virtual: 0, Virtual: 0,
Resident: 0, Resident: 0,
QueuedReaders: 0, QueuedReaders: 0,
QueuedWriters: 0, QueuedWriters: 0,
ActiveReaders: 0, ActiveReaders: 0,
ActiveWriters: 0, ActiveWriters: 0,
NetIn: 0, AvailableReaders: 0,
NetOut: 0, AvailableWriters: 0,
NumConnections: 0, TotalTicketsReaders: 0,
Passes: 0, TotalTicketsWriters: 0,
DeletedDocuments: 0, NetIn: 0,
TimedOutC: 0, NetOut: 0,
NoTimeoutC: 0, NumConnections: 0,
PinnedC: 0, Passes: 0,
TotalC: 0, DeletedDocuments: 0,
DeletedD: 0, TimedOutC: 0,
InsertedD: 0, NoTimeoutC: 0,
ReturnedD: 0, PinnedC: 0,
UpdatedD: 0, TotalC: 0,
CurrentC: 0, DeletedD: 0,
AvailableC: 0, InsertedD: 0,
TotalCreatedC: 0, ReturnedD: 0,
UpdatedD: 0,
CurrentC: 0,
AvailableC: 0,
TotalCreatedC: 0,
}, },
tags, tags,
) )
@ -256,6 +260,10 @@ func TestStateTag(t *testing.T) {
fields := map[string]interface{}{ fields := map[string]interface{}{
"active_reads": int64(0), "active_reads": int64(0),
"active_writes": int64(0), "active_writes": int64(0),
"available_reads": int64(0),
"available_writes": int64(0),
"total_tickets_reads": int64(0),
"total_tickets_writes": int64(0),
"commands": int64(0), "commands": int64(0),
"commands_per_sec": int64(0), "commands_per_sec": int64(0),
"deletes": int64(0), "deletes": int64(0),

View File

@ -174,7 +174,9 @@ type ConcurrentTransactions struct {
} }
type ConcurrentTransStats struct { type ConcurrentTransStats struct {
Out int64 `bson:"out"` Out int64 `bson:"out"`
Available int64 `bson:"available"`
TotalTickets int64 `bson:"totalTickets"`
} }
// CacheStats stores cache statistics for WiredTiger. // CacheStats stores cache statistics for WiredTiger.
@ -582,27 +584,29 @@ type StatLine struct {
UnmodifiedPagesEvicted int64 UnmodifiedPagesEvicted int64
// Replicated Opcounter fields // Replicated Opcounter fields
InsertR, InsertRCnt int64 InsertR, InsertRCnt int64
QueryR, QueryRCnt int64 QueryR, QueryRCnt int64
UpdateR, UpdateRCnt int64 UpdateR, UpdateRCnt int64
DeleteR, DeleteRCnt int64 DeleteR, DeleteRCnt int64
GetMoreR, GetMoreRCnt int64 GetMoreR, GetMoreRCnt int64
CommandR, CommandRCnt int64 CommandR, CommandRCnt int64
ReplLag int64 ReplLag int64
OplogStats *OplogStats OplogStats *OplogStats
Flushes, FlushesCnt int64 Flushes, FlushesCnt int64
FlushesTotalTime int64 FlushesTotalTime int64
Mapped, Virtual, Resident, NonMapped int64 Mapped, Virtual, Resident, NonMapped int64
Faults, FaultsCnt int64 Faults, FaultsCnt int64
HighestLocked *LockStatus HighestLocked *LockStatus
QueuedReaders, QueuedWriters int64 QueuedReaders, QueuedWriters int64
ActiveReaders, ActiveWriters int64 ActiveReaders, ActiveWriters int64
NetIn, NetInCnt int64 AvailableReaders, AvailableWriters int64
NetOut, NetOutCnt int64 TotalTicketsReaders, TotalTicketsWriters int64
NumConnections int64 NetIn, NetInCnt int64
ReplSetName string NetOut, NetOutCnt int64
NodeType string NumConnections int64
NodeState string ReplSetName string
NodeType string
NodeState string
// Cluster fields // Cluster fields
JumboChunksCount int64 JumboChunksCount int64
@ -967,6 +971,10 @@ func NewStatLine(oldMongo, newMongo MongoStatus, key string, all bool, sampleSec
if hasWT { if hasWT {
returnVal.ActiveReaders = newStat.WiredTiger.Concurrent.Read.Out returnVal.ActiveReaders = newStat.WiredTiger.Concurrent.Read.Out
returnVal.ActiveWriters = newStat.WiredTiger.Concurrent.Write.Out returnVal.ActiveWriters = newStat.WiredTiger.Concurrent.Write.Out
returnVal.AvailableReaders = newStat.WiredTiger.Concurrent.Read.Available
returnVal.AvailableWriters = newStat.WiredTiger.Concurrent.Write.Available
returnVal.TotalTicketsReaders = newStat.WiredTiger.Concurrent.Read.TotalTickets
returnVal.TotalTicketsWriters = newStat.WiredTiger.Concurrent.Write.TotalTickets
} else if newStat.GlobalLock.ActiveClients != nil { } else if newStat.GlobalLock.ActiveClients != nil {
returnVal.ActiveReaders = newStat.GlobalLock.ActiveClients.Readers returnVal.ActiveReaders = newStat.GlobalLock.ActiveClients.Readers
returnVal.ActiveWriters = newStat.GlobalLock.ActiveClients.Writers returnVal.ActiveWriters = newStat.GlobalLock.ActiveClients.Writers