[SERVER-51499] Separate statistics per ServiceExecutor Created: 12/Oct/20  Updated: 29/Oct/23  Resolved: 10/Dec/20

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 4.9.0

Type: Improvement Priority: Major - P3
Reporter: Benjamin Caimano (Inactive) Assignee: Benjamin Caimano (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Documented
is documented by DOCS-14046 Investigate changes in SERVER-51499: ... Closed
Related
related to SERVER-49109 Attach fixed thread pool ServiceExecu... Closed
is related to SERVER-53327 Remove serverStatus.connections.admin... Backlog
Backwards Compatibility: Fully Compatible
Sprint: Service arch 2020-11-02, Service arch 2020-11-16, Service arch 2020-11-30, Service arch 2020-12-14
Participants:

 Description   

The current format does not have allowances for separate service executors. Specifically, we need to represent a new section for the fixed service executor.

I'm proposing we change from this format:

"Current format"

serverStatus: {
    "connections" : {
        "current" : 1,
        "available" : 4,
        "totalCreated" : 1,
        "active" : 1,
        "threaded" : 1,
        "limitExempt" : 1,
        "exhaustIsMaster" : 0,
        "awaitingTopologyChanges" : 0,
        "adminConnections" : {
            "executor" : "reserved",
            "threadsRunning" : 3,
            "readyThreads" : 3,
            "startingThreads" : 0
        }
    },
    "network" : {
        "serviceExecutorTaskStats" : {
            "executor" : "passthrough",
            "threadsRunning" : 1
        }
    }
}

To this format:

"New format"

serverStatus: {
    "connections" : {
        "current" : 1,
        "available" : 4,
        "totalCreated" : 1,
        "active" : 1,
        "threaded" : 1,
        "limitExempt" : 1,
        "exhaustIsMaster" : 0,
        "awaitingTopologyChanges" : 0
    },
    "network" : {
        "serviceExecutorTaskStats" : {
            "passthrough" : {
                "threadsRunning" : 1
            },
            "fixed" : {
                "threadsRunning" : 1,
                "tasksRunning" : 0,
                "tasksWaiting" : 0
            },
            "reserved" : {
                "threadsRunning" : 3,
                "readyThreads" : 3,
                "startingThreads" : 0
            }
        }
    }
}



 Comments   
Comment by Benjamin Caimano (Inactive) [ 10/Dec/20 ]

The form that is currently on master has some differences from my comment above. Here is some filtered output from our max_conns_override.js test for completeness:

serverStatus: {
    "network" : {
        "serviceExecutors" : {
            "passthrough" : {
                "threadsRunning" : 1,
                "clientsInTotal" : 1,
                "clientsRunning" : 1,
                "clientsWaitingForData" : 0
            },
            "fixed" : {
                "threadsRunning" : 1,
                "clientsInTotal" : 0,
                "clientsRunning" : 0,
                "clientsWaitingForData" : 0
            },
            "reserved" : {
                "threadsRunning" : 3,
                "clientsInTotal" : 0,
                "clientsRunning" : 0,
                "clientsWaitingForData" : 0
            }
        }
    }
}

Comment by Githook User [ 03/Dec/20 ]

Author:

{'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}

Message: SERVER-51499 Track service executor statistics more thoroughly
Branch: master
https://github.com/mongodb/mongo/commit/a3fa43c5f48e8e7c723b463c1f3cabd0b84c1ddb

Comment by Githook User [ 23/Oct/20 ]

Author:

{'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}

Message: SERVER-51499 Track service executor statistics more thoroughly
Branch: fixed_thread_pool_handshaking
https://github.com/mongodb/mongo/commit/5b57abab3e157d775157518780143fbcbbd7b96c

Comment by Bruce Lucas (Inactive) [ 12/Oct/20 ]

More regularity sounds good to me, thanks.

Comment by Benjamin Caimano (Inactive) [ 12/Oct/20 ]

Hmmmm, it's mostly historical reasons. I'd be happy to rephrase all three like so:

{
    "threadsRunning" : 1,
    "tasksInTotal" : 0,
    "tasksRunning" : 0,
    "tasksWaitingForData" : 0,
},

Comment by Bruce Lucas (Inactive) [ 12/Oct/20 ]

Generally this looks fine, but I'm wondering why each of the serviceExecutorTaskStats subsections has a different assortment of metrics. In particular I just want to make sure we don't have a situation where a metric can come and go frequently as that causes compression inefficiency for FTDC that can limit retention time.

Generated at Thu Feb 08 05:25:39 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.