流式传输和 Live Tailing 日志条目

概览

本页面介绍了如何实时查看日志条目。

借助 Cloud Logging,您可以在 Logging 写入日志条目时使用以下功能实时查看日志条目:

流式传输日志。流式日志显示在日志浏览器中。

Live Tailing。Live Tailing 以 gcloud 命令行工具 gcloud alpha logging tail 和 Cloud Logging API 方法 entries.tail 提供。

使用日志浏览器、gcloud logging read 或 API 方法 entries.list 查看和分析日志时,您查看的是 Cloud Logging 已存储的日志条目。相比之下,如果您流式传输或 Live Tail 日志条目,则在应用将日志条目写入 Cloud Logging API 后,您就可以立即查看日志条目。

在日志浏览器中流式传输日志

在日志浏览器中,您可以使用流式传输日志实时查看日志数据。使用流式传输日志时,您可以向日志浏览器添加查询,以仅流式传输与查询匹配的日志。

如需根据查询流式传输日志,请向查询构建器窗格添加查询,然后选择流式传输日志。当 Logging 写入日志数据时,查询结果窗格中仅显示与查询匹配的日志。如果未提供查询,则 Logging 会在写入日志时显示每个日志。

流式传输与查询表达式匹配的日志

如需停止流式传输,请点击停止流式传输,或在查询结果窗格中向下滚动。

使用 gcloud 命令行工具进行 Live Tailing

借助 Live Tailing,您可以在 Cloud Logging 写入日志条目时使用 gcloud 命令行工具或 Cloud Logging API 实时查看日志条目。

如需了解 Live Tailing 的 API 方法,请参阅 entries.tail 方法。

安装 gcloud alpha logging tail

如需使用 gcloud alpha logging tail,您需要安装 Python 3 和 grpcio Python 软件包。

如需了解如何安装 Python,请参阅 Python 页面。如需了解如何安装 grpcio 软件包安装所需的 Python 软件包管理器 pip,请参阅 Python 软件包安装程序页面

完成以下步骤以安装 gcloud alpha logging tail

  1. 验证您是否安装了 gcloud 命令行工具。如需了解如何安装 gcloud 命令行工具,请参阅安装 Cloud SDK

  2. 确认您使用的是 gcloud 工具的 302.0.0 或更高版本。

    gcloud version
    

    如需了解如何更新 gcloud 工具,请参阅 gcloud components update

  3. 安装 gcloud 工具 Alpha 版组件:

    gcloud components install alpha
    
  4. 对于 MacOS、Linux 和 Cloud Shell 用户

    1. 安装 gRPC 客户端库:

       sudo pip3 install grpcio
      
    2. 将环境变量 CLOUDSDK_PYTHON_SITEPACKAGES 设置为任意值:

       export CLOUDSDK_PYTHON_SITEPACKAGES=1
      
  5. 使用以下命令设置 Cloud 项目 ID 并进行身份验证:

    gcloud config set project PROJECT_ID
    gcloud auth login
    
  6. 通过运行以下命令来验证是否已安装 gcloud alpha logging tail

    gcloud alpha logging tail
    

    现在,您可以在 Logging 写入项目的日志条目时查看日志条目。

    Live Tail 期间的日志条目。

如需详细了解如何使用 Live Tailing,请参阅 gcloud alpha logging tail 参考指南

缓冲和排序

由于 Logging 可以不按时间顺序接收日志条目,因此 Live Tailing 提供缓冲时段设置,以便您适当选择在系统写入日志条目时查看日志条目以及按升序查看日志条目。您可以将缓冲时段设置为 060 秒。

请注意缓冲时段的以下特性:

  • 默认缓冲时段为 2 秒。

  • Logging 会将提取日志条目的操作延迟一段时间(即缓冲区时段)。

  • 如果系统在缓冲时段之外写入日志条目,则 Logging 会在收到日志条目时返回日志条目。

配置缓冲时段时,您需要适当选择在系统提取日志时查看日志以及不按顺序查看条目。

缓冲时段 权衡
0 返回的最新日志条目,但可能不按顺序返回。
60 延迟 60 秒才能看到返回的条目,但大多数日志都按升序返回。

限制和配额

下表列出了 Live Tailing 的限制和配额:

限制和配额
每分钟返回的条目数 60000
如果与过滤条件匹配的条目数超过 60000,则 Logging 会抑制超出部分的条目并在响应中返回被抑制的条目数。
每个 Cloud 项目打开的 Live-Tailing 会话数 10

客户端限制

对于快速写入大量条目的 Cloud 项目,您的客户端可能无法在系统写入条目时使用这些条目。在这种情况下,Logging 会限制发送的条目总数,并优先处理最近的条目。在 Live Tail 结束时,Logging 会返回由于客户端限制而未显示的条目数。

使用客户端库进行 Live Tailing

借助 Live Tailing,您可以在 Cloud Logging 写入日志条目时实时查看日志条目。如需了解 Live Tailing 的 API 方法,请参阅 entries.tail 方法。

此示例演示了给定 Logger 的 Live Tailing 日志条目。

Node.js

如需了解如何安装和使用 Logging 客户端库,请参阅 Logging 客户端库

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

/**
 * TODO(developer): Replace logName with the name of your log.
 */
const log = logging.log(logName);
console.log('running tail log entries test');

const stream = log
  .tailEntries({
    filter: 'timestamp > "2021-01-01T23:00:00Z"',
  })
  .on('error', console.error)
  .on('data', resp => {
    console.log(resp.entries);
    console.log(resp.suppressionInfo);
    // If you anticipate many results, you can end a stream early to prevent
    // unnecessary processing and API requests.
    stream.end();
  })
  .on('end', () => {
    console.log('log entry stream has ended');
  });

// Note: to get all project logs, invoke logging.tailEntries