diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml index a336e5f6..f42001fb 100644 --- a/docker/prometheus/prometheus.yml +++ b/docker/prometheus/prometheus.yml @@ -52,3 +52,8 @@ scrape_configs: basic_auth: username: ruoyi password: 123456 + relabel_configs: + # 如果目标有context_path标签,则修改metrics_path以包含该上下文路径 + - source_labels: [__meta_http_sd_context_path] + target_label: __metrics_path__ + replacement: '${1}/actuator/prometheus' diff --git a/ruoyi-visual/ruoyi-monitor/src/main/java/org/dromara/modules/monitor/controller/PrometheusController.java b/ruoyi-visual/ruoyi-monitor/src/main/java/org/dromara/modules/monitor/controller/PrometheusController.java index 300b5dfd..b294c4c0 100644 --- a/ruoyi-visual/ruoyi-monitor/src/main/java/org/dromara/modules/monitor/controller/PrometheusController.java +++ b/ruoyi-visual/ruoyi-monitor/src/main/java/org/dromara/modules/monitor/controller/PrometheusController.java @@ -45,6 +45,10 @@ public class PrometheusController { // labels.put("__meta_datacenter", "beijing"); // 服务名 labels.put("__meta_prometheus_job", service); + String contextPath = instances.get(0).getMetadata().get("management.context-path"); + if (contextPath != null) { + labels.put("__meta_http_sd_context_path", contextPath.replaceAll("/actuator", "")); + } Map group = new HashMap<>(2); group.put("targets", targets); group.put("labels", labels);