Prometheus label_replace()的使用

例:

prometheus 采集到的数据是:

http_server_response_count{app_id="test-app-1",method="GET",path="/invoke/service-id-test/method/hello",namespace="my-namespace",status="200"} 1314

label_replace的格式

label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)

如计算最近5分钟内测得的HTTP请求的每秒速率,使用label_replace()替换:

label_replace((rate(http_server_response_count{app_id=~"$app_id", namespace="$namespace"}[5m])), "path_replace","$1","path",".*/method/(.*)")

如上语句将path 替换成了path_replace, $1的值为正则表达式中 .*/method/(.*) 的 (.*) 中的值,本例中为hello

注:

如果path的数据不符合正则表达式的格式,则$1即替换后的path_replace为空串

参考链接:

Query functions | Prometheus

Prometheus的label处理 – 月与灯依旧

可以通过以下步骤使用 Prometheus 监控 Pod 使用率并设置告警: 步骤1:在 Kubernetes 环境中安装 Prometheus。可以通过 Helm Chart 安装 Prometheus。 步骤2:启用 Prometheus 的 kubelet 属性监控。在 Prometheus 配置文件中添加以下内容: ``` - job_name: kubelet kubernetes_sd_configs: - role: node relabel_configs: - source_labels: [__meta_kubernetes_node_label_kubernetes_io_hostname] target_label: kubernetes_io_hostname - action: labelmap regex: __meta_kubernetes_node_label_(.+) - action: replace source_labels: [__meta_kubernetes_node_name] target_label: instance - job_name: 'kubelet' static_configs: - targets: ['<kubelet_ip>:10255'] labels: node_exporter_port: 10255 ``` 步骤3:创建 Prometheus 监控指标。在 Prometheus 配置文件中添加以下内容: ``` - job_name: 'kubernetes-pods' scrape_interval: 30s metrics_path: /metrics kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_name] regex: '.*' action: keep - source_labels: [__meta_kubernetes_namespace] target_label: kubernetes_namespace - source_labels: [__meta_kubernetes_pod_name] target_label: kubernetes_pod_name - source_labels: [__meta_kubernetes_pod_container_name] target_label: container_name - source_labels: [__meta_kubernetes_pod_container_port_name] target_label: container_port_name - source_labels: [__meta_kubernetes_pod_container_port_number] target_label: container_port_number - source_labels: [__meta_kubernetes_pod_label_app] target_label: app relabel_configs: - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__meta_kubernetes_namespace] target_label: kubernetes_namespace - source_labels: [__meta_kubernetes_pod_name] target_label: kubernetes_pod_name ``` 步骤4:配置 Prometheus 告警规则。在 Prometheus 配置文件中添加以下内容: ``` groups: - name: pod-usage-rules rules: - alert: HighPodCPUUsage expr: sum(rate(container_cpu_usage_seconds_total{namespace="<namespace>", pod="<pod_name>", container="<container_name>"}[5m])) by (namespace, pod, container) > 1 for: 5m labels: severity: warning annotations: summary: "High CPU usage on pod" description: "{{ $labels.namespace }}/{{ $labels.pod }}/{{ $labels.container }} is using too much CPU." ``` 步骤5:重新加载 Prometheus 配置文件以应用更改。 以上就是使用 Prometheus 监控 Pod 使用率并设置告警的步骤。需要根据实际情况进行修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值