配置计数器指标

本文档介绍了如何使用 Google Cloud 控制台、Logging API 和 Google Cloud CLI 创建基于日志的计数器类型指标。

计数器指标用于计算与给定过滤条件匹配的日志条目的数量。例如,您可以创建一个基于日志的指标,用于统计包含特定错误消息的日志条目数。基于日志的指标可在单个 Google Cloud 项目或日志存储桶中应用。

如需简要了解基于日志的指标,请参阅基于日志的指标概览

准备工作

  1. 如需使用基于日志的指标,您必须有启用了结算功能的 Google Cloud 项目:

    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Make sure that billing is enabled for your Google Cloud project.

    4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    5. Make sure that billing is enabled for your Google Cloud project.

  2. 确保您的 Identity and Access Management 角色包含创建和查看基于日志的指标以及创建提醒政策所需的权限。如需了解详情,请参阅基于日志的指标的权限

创建基于日志的计数器类型指标

该指标用于统计由您提供的过滤条件标识的日志条目数。您可以在过滤条件中使用正则表达式,我们建议您添加资源类型。过滤条件的长度不能超过 20,000 个字符。

请勿在过滤条件中添加敏感信息。过滤器会被视为服务数据。

控制台

请按照以下步骤在 Google Cloud 项目的 Google Cloud 控制台中创建计数器指标:

  1. 在 Google Cloud 控制台中,转到基于日志的指标页面:

    前往基于日志的指标

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 点击创建指标。此时会显示创建日志指标面板。

  3. 设置指标类型:选择计数器

  4. 详细信息部分中设置以下字段:

    • 日志指标名称:选择对于 Google Cloud 项目中基于日志的指标而言唯一的指标名称。您需遵循一些命名限制;如需了解详情,请参阅问题排查
    • 说明:输入此指标的说明。
    • 单位:可将此字段留空或者插入数字 1
  5. 过滤器选择部分中,定义指标过滤器。

    1. 使用选择项目或日志存储桶菜单,选择该指标是统计 Google Cloud 项目中的日志条目,还是仅统计特定日志存储桶中的日志条目。

    2. 使用日志记录查询语言创建一个过滤器,用于仅收集要在指标中计数的日志条目。您还可以使用正则表达式来创建指标的过滤器。

    3. 如需查看哪些日志条目与您的过滤条件匹配,请点击预览日志

  6. (可选)在标签部分中添加标签。如需了解如何创建标签,请参阅创建标签

  7. 点击创建指标,以创建指标。

gcloud

您可以使用以下命令创建不含自定义标签的基于日志的指标:

gcloud logging metrics create METRIC_NAME \
  --description="METRIC_DESCRIPTION" \
  --log-filter="FILTER" \
  [--bucket-name="BUCKET_NAME"]

例如,以下命令会创建一个名为 error_count 的项目级基于日志的指标。

gcloud logging metrics create error_count \
     --description "Errors in syslog." \
     --log-filter "resource.type=gce_instance AND log_id(\"syslog\") AND severity>=ERROR"

如需改为创建存储桶级范围的基于日志的指标,请提供 --bucket_name 标志:

gcloud logging metrics create error_count \
    --description "Errors in syslog." \
    --log-filter "resource.type=gce_instance AND log_id(\"syslog\") AND severity>=ERROR" \
    --bucket-name projects/my-project/locations/global/buckets/my-test-bucket

如需了解如何创建标签,请参阅为基于日志的指标配置标签

API

如需创建计数器指标,请使用 Logging API 的 projects.metrics.create 方法。如果您使用参考页面上的 API Explorer 窗格,请按如下方式准备参数:

  1. parent 字段设置为要在其中创建指标的项目或存储桶:

    • 对于项目级范围的基于日志的指标,请指定项目:
    projects/PROJECT_ID
    
    • 对于基于日志的桶级范围指标,请指定相应桶:
    projects/PROJECT_ID/locations/LOCATION/bucket/BUCKET_ID
    
  2. 将请求正文设置为 LogMetric 对象。以下是计数器指标的示例对象:

    {
      name:        "my-metric"
      description: "This is my metric."
      filter:      "resource.type=gce_instance AND log_id(\"syslog\")",
      metricDescriptor: {
          labels: [
            {
              key: "my-label",
              valueType: STRING,
              description: "This is my label.",
            }
          ]
      },
      labelExtractors: {
        "my-label":
          "REGEXP_EXTRACT(jsonPayload.someField, \"before ([0-9]+) after\")",
        ...
      },
    }
    

注意:

  • 选择对于项目中基于日志的指标而言唯一的指标名称。您需遵循一些命名限制;要了解详情,请参阅问题排查

  • 对于计数器指标,LogMetric 字段 valueExtractorbucketOptions 没有任何用途,已被省略。

  • 如果指标没有标签,则可以省略 metricDescriptorlabelExtractors 字段。如果您的指标确实有标签,请参阅基于日志的指标标签,了解标签简介,并详细了解如何在该 API 中创建标签。

如需了解详情,请参阅 LogMetric 类型。

新指标的延迟时间

您的新指标会立即显示在日志浏览器的指标列表和相关的 Monitoring 菜单中。数据通常会在不到一分钟的时间内提供。

检查基于日志的指标

如需列出 Google Cloud 项目中用户定义的基于日志的指标,或检查 Google Cloud 项目中的特定指标,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到基于日志的指标页面:

    前往基于日志的指标

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 用户定义的指标窗格中,您会看到当前 Google Cloud 项目中用户定义的基于日志的指标:

  3. 如需查看基于日志的指标中的数据,请点击该指标所在行中的 菜单,然后选择在 Metrics Explorer 中查看

gcloud

如需列出 Google Cloud 项目中用户定义的基于日志的指标,请使用以下命令:

gcloud logging metrics list

如需在 Google Cloud 项目中显示用户定义的基于日志的指标,请使用以下命令:

gcloud logging metrics describe METRIC_NAME

如需获取帮助,请使用以下命令:

gcloud logging metrics --help

您无法通过 Google Cloud CLI 读取指标的时序数据。

API

列出指标

如需列出 Google Cloud 项目中用户定义的基于日志的指标,请使用 projects.metrics.list API 方法。按如下所示填写方法的参数:

  • parent:Google Cloud 项目的资源名称:projects/PROJECT_ID
  • pageSize:最大结果数。
  • pageToken:获取下一页结果。如需了解如何使用页面令牌,请参阅 projects.metrics.list

检索指标定义

如需检索单个用户定义的基于日志的指标,请使用 projects.metrics.get API 方法。按如下所示填写方法的参数:

  • metricName:指标的资源名称:

    projects/PROJECT_ID/metrics/METRIC_ID
    

读取指标数据

如需读取基于日志的指标中的时序数据,请使用 Cloud Monitoring API 中的 projects.timeseries.list。如需详细了解时序数据,请参阅读取时序

如需读取单个用户定义的基于日志的指标,请使用此指标类型和标识符填写方法的参数:

logging.googleapis.com/user/METRIC_ID

更新基于日志的指标

您可以通过修改用户定义的基于日志的指标,以更改其说明、过滤条件以及指标中引用的字段的名称。您可以向指标添加新标签,还可以更改用于提取指标及其标签的值的正则表达式。如果您使用的是存储桶级范围的指标,还可以更新指标的存储桶。

您无法更改用户定义的基于日志的指标或其标签的名称或类型,也无法删除基于日志的指标中的现有标签。

如需修改基于日志的指标,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到基于日志的指标页面:

    前往基于日志的指标

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 在您要修改的基于日志的指标的 菜单中,点击修改指标

  3. 更改指标中允许更改的项目。

  4. 点击更新指标

gcloud

您可以使用 Google Cloud CLI 更改计数器指标的说明、过滤查询和存储桶。您可以一次更新任意一个或所有字段。

gcloud logging update METRIC_NAME \
  --description="METRIC_DESCRIPTION" \
  --log-filter="FILTER" \
  --bucket-name=BUCKET_NAME

如果您更改与存储桶级范围指标关联的存储桶,则在更改之前收集的所有指标数据都不再反映当前配置。系统不会移除为上一个存储桶收集的指标数据。

如需更新分布指标或其他计数器指标字段(不包括 METRIC_NAME),请创建一个文件,其中包含 JSON 或 YAML 格式的修订版 LogMetric 规范。然后,使用 --config-from-file 字段调用 update 命令来更新该指标,将 FILENAME 替换为 JSON 或 YAML 文件的名称:

gcloud logging update METRIC_NAME --config-from-file FILENAME

如需了解详情,请使用以下命令:

gcloud logging metrics update --help

API

如需修改基于日志的指标,请使用该 API 中的 projects.metrics.update 方法。设置字段如下:

  • metricName:指标的完整资源名称:

    projects/PROJECT_ID/metrics/METRIC_ID
    

    例如:

    projects/my-gcp-project/metrics/my-error-metric
    
  • 在请求正文中,添加与现有指标完全相同(要更改或新增的内容除外)的 LogMetric 对象。

删除基于日志的指标

如需删除用户定义的基于日志的指标,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到基于日志的指标页面:

    前往基于日志的指标

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择您要删除的指标,然后点击删除

    或者,在要删除的基于日志的指标的 菜单中,点击删除指标

gcloud

使用以下命令可以删除当前 Google Cloud 项目中用户定义的基于日志的指标:

gcloud logging metrics delete METRIC_NAME

如需了解详情,请使用以下命令:

gcloud logging metrics delete --help

API

如需删除用户定义的基于日志的指标,请使用 API 中的 projects.metrics.delete 方法。

此外,在 Google Cloud 控制台的基于日志的指标页面中,基于日志的指标界面的用户定义的指标窗格提供了更多功能,可帮助您管理 Google Cloud 项目中用户定义的指标。如需了解详情,请参阅用户定义的指标