You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
62 lines
1.9 KiB
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.ConnectionPoolMetrics = void 0; |
|
/** @internal */ |
|
class ConnectionPoolMetrics { |
|
constructor() { |
|
this.txnConnections = 0; |
|
this.cursorConnections = 0; |
|
this.otherConnections = 0; |
|
} |
|
/** |
|
* Mark a connection as pinned for a specific operation. |
|
*/ |
|
markPinned(pinType) { |
|
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) { |
|
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) { |
|
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() { |
|
this.txnConnections = 0; |
|
this.cursorConnections = 0; |
|
this.otherConnections = 0; |
|
} |
|
} |
|
exports.ConnectionPoolMetrics = ConnectionPoolMetrics; |
|
ConnectionPoolMetrics.TXN = 'txn'; |
|
ConnectionPoolMetrics.CURSOR = 'cursor'; |
|
ConnectionPoolMetrics.OTHER = 'other'; |
|
//# sourceMappingURL=metrics.js.map
|