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
 |