You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Node.js API查询Google Cloud Logging Log Analytics数据集

使用Node.js直接调用Google Cloud Logging Analytics API查询日志

你不需要通过BigQuery中转,Google Cloud提供了直接对应Log Analytics功能的API,可通过官方Node.js客户端库实现查询。

实现步骤

1. 安装依赖

使用Google Cloud官方Logging客户端库:

npm install @google-cloud/logging

2. 编写查询代码

以下是针对你提供的示例查询的Node.js实现:

const {Logging} = require('@google-cloud/logging');

async function executeLogAnalyticsQuery() {
  // 初始化Logging客户端,替换为你的项目ID
  const logging = new Logging({projectId: 'my_project'});

  // 目标日志视图的资源路径(对应你的`my_project.global._Default._Default`数据集)
  const targetView = logging.bucket('_Default').location('global').view('_Default').name;

  // 定义Log Analytics查询语句,与UI中使用的语法完全一致
  const query = `
    SELECT
      count(1) as sample
    FROM
      \`my_project.global._Default._Default\`
    WHERE 
      resource.type = 'xxx'
    LIMIT 10000
  `;

  try {
    // 执行查询
    const [queryResults] = await logging.runQuery({
      view: targetView,
      query: query,
    });

    // 处理并输出结果
    console.log('查询结果:');
    queryResults.forEach(row => console.log(row));
  } catch (error) {
    console.error('查询失败:', error);
  }
}

// 执行查询
executeLogAnalyticsQuery();

关键说明

  • API对应关系:runQuery方法直接对接Log Analytics的后端服务,和UI操作的逻辑、计费完全一致,不会产生日志重复存储的额外成本
  • 权限要求:运行代码的服务账号需要拥有logging.views.runQuery权限,可通过授予Logs Viewer(roles/logging.viewer)或Logs Analytics Viewer(roles/logging.analyticsViewer)角色实现
  • 查询语法:支持所有Log Analytics支持的SQL特性,包括聚合、GROUP BY、WHERE过滤等,和你在UI中使用的语法完全兼容
  • 自定义日志桶:如果使用非默认日志桶,只需调整bucket()和location()的参数即可,对应你目标数据集的桶和位置

内容的提问来源于stack exchange,提问作者Luca Biasotto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:22:42