借助标签,您可以区分指标的特征。除了收集指标之外,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_NAME
:MonitoringTarget
定义文件的名称。
向指标添加新标签
标签可用于标识指标特征,有助于实现可观测性和监控。您可以添加抓取的容器最初未公开的标签。在 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_NAME
:MonitoringTarget
定义文件的名称。
重命名指标
您可以使用 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_NAME
:MonitoringTarget
定义文件的名称。