如何在Node.js中使用MQL查询谷歌云监控指标数据?
在Node.js中执行谷歌云MQL查询的实现方法
完全可以通过谷歌云官方提供的Monitoring Node.js客户端SDK实现MQL查询,直接拉取你在控制台验证过的指标数据,具体实现步骤如下:
前置准备
- 安装官方SDK依赖:
npm install @google-cloud/monitoring - 确保运行环境的身份凭证拥有
roles/monitoring.viewer监控查看权限,权限不足会导致查询失败
代码实现示例
const { MonitoringServiceClient } = require('@google-cloud/monitoring'); const client = new MonitoringServiceClient(); /** * 执行MQL查询拉取指标数据 * @param {string} projectId 谷歌云项目ID * @param {string} mqlQuery 你在监控控制台验证过的MQL查询语句 * @returns {Array} 时序指标数据 */ async function getMetricByMql(projectId, mqlQuery) { const request = { name: `projects/${projectId}`, query: mqlQuery, // 时间范围可根据你的定时任务频率调整,示例为拉取最近10分钟数据 interval: { startTime: { seconds: Math.floor(Date.now() / 1000) - 600, }, endTime: { seconds: Math.floor(Date.now() / 1000), }, }, }; const [timeSeriesResult] = await client.queryTimeSeries(request); return timeSeriesResult; } // 调用示例 const yourProjectId = '替换为你的谷歌云项目ID'; const yourMqlStatement = '替换为你在控制台验证通过的MQL语句'; getMetricByMql(yourProjectId, yourMqlStatement) .then(metricData => { // 此处编写解析指标数据、更新服务器配置的业务逻辑 console.log('拉取到的指标数据:', metricData); }) .catch(err => { console.error('MQL查询失败:', err); });
注意事项
- 你可以直接把监控控制台调试通过的MQL语句复制到代码中使用,不需要做额外的转义处理
- 本地开发时可以通过设置环境变量
GOOGLE_APPLICATION_CREDENTIALS为服务账号密钥文件的路径完成身份认证;在谷歌云环境(如云函数、GCE实例等)运行时,会自动读取环境默认的服务账号凭证,无需额外配置 - 定时拉取的时间间隔建议和MQL的时间范围匹配,避免漏取或重复拉取指标数据
内容的提问来源于stack exchange,提问作者Ravers
相关产品推荐
相关产品推荐

