标签指标

借助标签,您可以区分指标的特征。除了收集指标之外,MonitoringTarget 自定义资源还可让您为可选的可观测性功能标记指标:

如需详细了解指标重新标记,请参阅 https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/

准备工作

如需获得管理MonitoringTarget自定义资源所需的权限,请让组织 IAM 管理员或项目 IAM 管理员向您授予关联的MonitoringTarget角色之一。

根据您需要的访问权限级别,您可以在组织或项目中获得此资源的创建者、编辑者或查看者角色。如需了解详情,请参阅准备 IAM 权限

将指标发送到其他项目

容器作者可以编写代码,将特定指标发送到其他项目,即使是他们不拥有的项目。如需将指标发送到特定项目,请在代码中向指标添加 _gdch_project 标签,并将其值设置为目标项目名称。

或者,您也可以使用 MonitoringTarget 自定义资源将所有收集的指标数据发送到另一个项目。将 _gdch_project 标签设置为 metricsRelabelings 字段中的目标标签,并将新项目名称作为替换值。

以下代码示例展示了如何在 MonitoringTarget 自定义资源中设置 _gdch_project 目标标签,以将指标发送到名为 another-project-name 的项目:

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        targetLabel: _gdch_project
        replacement: another-project-name
      [...]

替换以下内容:

  • PROJECT_NAMESPACE:您的项目命名空间。
  • MONITORING_TARGET_NAMEMonitoringTarget 定义文件的名称。

向指标添加新标签

标签可用于标识指标特征,有助于实现可观测性和监控。您可以添加抓取的容器最初未公开的标签。在 MonitoringTarget 自定义资源中,将新标签设置为目标,并提供替换值。此键值对会添加到资源收集的所有指标中。

以下代码示例展示了如何在 MonitoringTarget 自定义资源中设置 my_new_label 目标标签并将其值配置为 my_label_value

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        targetLabel: my_new_label
        replacement: my_label_value
      [...]

替换以下内容:

  • PROJECT_NAMESPACE:您的项目命名空间。
  • MONITORING_TARGET_NAMEMonitoringTarget 定义文件的名称。

重命名指标

您可以使用 MonitoringTarget 资源重命名容器的指标。在 metricsRelabelings 字段中设置原始指标名称及其替换名称。 原始名称会被视为正则表达式 (regex),并替换为新名称。

以下代码示例展示了如何在 MonitoringTarget 自定义资源中将 cpu_usage 指标名称(正则表达式)替换为 cpu_usage_new_name

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        regex: cpu_usage
        replacement: cpu_usage_new_name
        sourceLabels: [__name__]
        targetLabel: __name__
      [...]

替换以下内容:

  • PROJECT_NAMESPACE:您的项目命名空间。
  • MONITORING_TARGET_NAMEMonitoringTarget 定义文件的名称。