繁体   English   中英

如何监控Mongoose连接池

[英]How to monitor Mongoose connection pool

这可能有一个明显的答案,但我似乎找不到它。 我在我的节点应用程序中使用 Mongoose 连接到 MongoDB 集群。 有什么方法可以监控ZCCADCDEDB567ABAE643E15DCF0974E503Z使用的客户端连接池的state? 就像池中的连接数、当前从池中签出的连接数、连接被签出的速率等? 如果已经有以 Prometheus 格式导出这些指标的完善解决方案,则可以加分。

您可以使用连接池事件。 这些事件由指定的池相关事件触发,例如连接、关闭等。

这是 MongoDB 模块的工作示例,取自MongoDB 官方文档

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:31000,localhost:31001/?replicaSet=rs';
const client = new MongoClient(url);

client.on('connectionPoolCreated', event => console.dir(event));
client.on('connectionPoolClosed', event => console.dir(event));
client.on('connectionCreated', event => console.dir(event));
client.on('connectionReady', event => console.dir(event));
client.on('connectionClosed', event => console.dir(event));
client.on('connectionCheckOutStarted', event => console.dir(event));
client.on('connectionCheckOutFailed', event => console.dir(event));
client.on('connectionCheckedOut', event => console.dir(event));
client.on('connectionCheckedIn', event => console.dir(event));
client.on('connectionPoolCleared', event => console.dir(event));

client.connect((err, client) => {
  if (err) throw err;
});

但是,如果您想在 Mongoose 中执行此操作,您可以使用connection.getClient()来返回底层 mongodb 客户端,绕过 mongoose 驱动程序。

此 GitHub 问题中描述的方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM