借助标签,您可以区分指标的特征。除了
收集指标之外,
MonitoringTarget自定义资源还允许您为指标添加标签,以实现可选的
可观测性功能:
如需详细了解指标重新标记,请参阅 https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/。
准备工作
如需管理 MonitoringTarget 自定义资源,请向管理员请求必要的权限。
所需 IAM 角色
请与您的项目 IAM 管理员联系,以请求以下角色:
- MonitoringTarget Creator (
monitoringtarget-creator):在项目命名空间中创建MonitoringTarget自定义资源。 - MonitoringTarget Editor (
monitoringtarget-editor):在项目命名空间中修改MonitoringTarget自定义资源。 - MonitoringTarget Viewer (
monitoringtarget-viewer):在项目命名空间中查看MonitoringTarget自定义资源。
将指标发送到其他项目
容器作者可以编写代码,将特定指标发送到其他项目,即使是他们不拥有的项目也是如此。如需将指标发送到特定项目,请在代码中向指标添加 _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 指标名称
(regex) 替换为 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定义文件的名称。