配置计数器指标

本文档介绍了如何使用 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.

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

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

      该指标会统计您提供的过滤条件所标识的日志条目。您可以在过滤条件中使用正则表达式,我们建议您添加资源类型。过滤条件的长度不能超过 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 类型。

      新指标的延迟时间

      您的新指标会立即显示在 Logs Explorer 指标列表和相关的 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 项目中用户定义的指标。如需了解详情,请参阅用户定义的指标