本文档介绍了如何使用 Google Cloud 控制台、Logging API 和 Google Cloud CLI 创建基于日志的计数器类型指标。
计数器指标用于计算与给定过滤条件匹配的日志条目的数量。例如,您可以创建一个基于日志的指标,用于统计包含特定错误消息的日志条目数。基于日志的指标可在单个 Google Cloud 项目或日志存储桶中应用。
如需简要了解基于日志的指标,请参阅基于日志的指标概览。
准备工作
如需使用基于日志的指标,您必须有启用了结算功能的 Google Cloud 项目:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
确保您的 Identity and Access Management 角色包含创建和查看基于日志的指标以及创建提醒政策所需的权限。如需了解详情,请参阅基于日志的指标的权限。
创建基于日志的计数器类型指标
该指标用于统计由您提供的过滤条件标识的日志条目数。您可以在过滤条件中使用正则表达式,我们建议您添加资源类型。过滤条件的长度不能超过 20,000 个字符。
请勿在过滤条件中添加敏感信息。过滤器会被视为服务数据。
控制台
请按照以下步骤在 Google Cloud 项目的 Google Cloud 控制台中创建计数器指标:
-
在 Google Cloud 控制台中,转到基于日志的指标页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
点击创建指标。此时会显示创建日志指标面板。
设置指标类型:选择计数器。
在详细信息部分中设置以下字段:
- 日志指标名称:选择对于 Google Cloud 项目中基于日志的指标而言唯一的指标名称。您需遵循一些命名限制;如需了解详情,请参阅问题排查。
- 说明:输入此指标的说明。
- 单位:可将此字段留空或者插入数字 1。
在过滤器选择部分中,定义指标过滤器。
使用选择项目或日志存储桶菜单,选择该指标是统计 Google Cloud 项目中的日志条目,还是仅统计特定日志存储桶中的日志条目。
使用日志记录查询语言创建一个过滤器,用于仅收集要在指标中计数的日志条目。您还可以使用正则表达式来创建指标的过滤器。
如需查看哪些日志条目与您的过滤条件匹配,请点击预览日志。
(可选)在标签部分中添加标签。如需了解如何创建标签,请参阅创建标签。
点击创建指标,以创建指标。
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 窗格,请按如下方式准备参数:
将 parent 字段设置为要在其中创建指标的项目或存储桶:
- 对于项目级范围的基于日志的指标,请指定项目:
projects/PROJECT_ID
- 对于基于日志的桶级范围指标,请指定相应桶:
projects/PROJECT_ID/locations/LOCATION/bucket/BUCKET_ID
将请求正文设置为
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
字段valueExtractor
和bucketOptions
没有任何用途,已被省略。如果指标没有标签,则可以省略
metricDescriptor
和labelExtractors
字段。如果您的指标确实有标签,请参阅基于日志的指标标签,了解标签简介,并详细了解如何在该 API 中创建标签。
如需了解详情,请参阅 LogMetric
类型。
新指标的延迟时间
您的新指标会立即显示在日志浏览器的指标列表和相关的 Monitoring 菜单中。数据通常会在不到一分钟的时间内提供。
检查基于日志的指标
如需列出 Google Cloud 项目中用户定义的基于日志的指标,或检查 Google Cloud 项目中的特定指标,请执行以下操作:
控制台
-
在 Google Cloud 控制台中,转到基于日志的指标页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在用户定义的指标窗格中,您会看到当前 Google Cloud 项目中用户定义的基于日志的指标:
如需查看基于日志的指标中的数据,请点击该指标所在行中的 more_vert 菜单,然后选择在 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
更新基于日志的指标
您可以通过修改用户定义的基于日志的指标,以更改其说明、过滤条件以及指标中引用的字段的名称。您可以向指标添加新标签,还可以更改用于提取指标及其标签的值的正则表达式。如果您使用的是存储桶级范围的指标,还可以更新指标的存储桶。
您无法更改用户定义的基于日志的指标或其标签的名称或类型,也无法删除基于日志的指标中的现有标签。
如需修改基于日志的指标,请执行以下操作:
控制台
-
在 Google Cloud 控制台中,转到基于日志的指标页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在您要修改的基于日志的指标的 more_vert 菜单中,点击修改指标。
更改指标中允许更改的项目。
点击更新指标。
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
对象。
删除基于日志的指标
如需删除用户定义的基于日志的指标,请执行以下操作:
控制台
-
在 Google Cloud 控制台中,转到基于日志的指标页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
选择您要删除的指标,然后点击删除。
或者,在要删除的基于日志的指标的 more_vert 菜单中,点击删除指标。
gcloud
使用以下命令可以删除当前 Google Cloud 项目中用户定义的基于日志的指标:
gcloud logging metrics delete METRIC_NAME
如需了解详情,请使用以下命令:
gcloud logging metrics delete --help
API
如需删除用户定义的基于日志的指标,请使用 API 中的 projects.metrics.delete
方法。
此外,在 Google Cloud 控制台的基于日志的指标页面中,基于日志的指标界面的用户定义的指标窗格提供了更多功能,可帮助您管理 Google Cloud 项目中用户定义的指标。如需了解详情,请参阅用户定义的指标。