Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 564x 564x 564x 564x 3244478x 3244478x 3244478x 119287x 8779x 110508x 110504x 4x 118072x 8569x 109503x 109499x 4x 34x 24x 24x 24x | /** @internal */
export class ConnectionPoolMetrics {
static readonly TXN = 'txn' as const;
static readonly CURSOR = 'cursor' as const;
static readonly OTHER = 'other' as const;
txnConnections = 0;
cursorConnections = 0;
otherConnections = 0;
/**
* Mark a connection as pinned for a specific operation.
*/
markPinned(pinType: string): void {
if (pinType === ConnectionPoolMetrics.TXN) {
this.txnConnections += 1;
} else if (pinType === ConnectionPoolMetrics.CURSOR) {
this.cursorConnections += 1;
} else {
this.otherConnections += 1;
}
}
/**
* Unmark a connection as pinned for an operation.
*/
markUnpinned(pinType: string): void {
if (pinType === ConnectionPoolMetrics.TXN) {
this.txnConnections -= 1;
} else if (pinType === ConnectionPoolMetrics.CURSOR) {
this.cursorConnections -= 1;
} else {
this.otherConnections -= 1;
}
}
/**
* Return information about the cmap metrics as a string.
*/
info(maxPoolSize: number): string {
return (
'Timed out while checking out a connection from connection pool: ' +
`maxPoolSize: ${maxPoolSize}, ` +
`connections in use by cursors: ${this.cursorConnections}, ` +
`connections in use by transactions: ${this.txnConnections}, ` +
`connections in use by other operations: ${this.otherConnections}`
);
}
/**
* Reset the metrics to the initial values.
*/
reset(): void {
this.txnConnections = 0;
this.cursorConnections = 0;
this.otherConnections = 0;
}
}
|