自定义指标未显示在 prometheus web ui 中,在 grafana 中也是如此

首先,我试过这个解决方案对我不起作用。

我需要使用 Prometheus 记录一些自定义指标。

docker-compose.yml

version: "3"

volumes:

  prometheus_data: {}

  grafana_data: {}

services:

  prometheus:

    image: prom/prometheus:latest

    container_name: prometheus

    hostname: my_service

    ports:

      - 9090:9090

    depends_on:

      - my_service

  my-service:

    build: .

    ports:

      - 8080:8080

  grafana:

    image: grafana/grafana:latest

    container_name: grafana

    hostname: grafana

    ports:

      - 3000:3000

    depends_on:

      - prometheus

普罗米修斯.yml


global:

  scrape_interval: 5s

  scrape_timeout: 10s

  external_labels:

    monitor: 'my-project'

rule_files:

scrape_configs:

  - job_name: myapp

    scrape_interval: 10s

    static_configs:

      - targets:

          - my_service:8080

我也尝试了外部 ip,但我无法在 prometheus UI 中看到我的指标。此外,目标页面显示 localhost:9090 已启动。


可能是什么问题呢?任何人都可以更正 docker compose 和 prometheus 文件吗?


慕丝7291255
浏览 186回答 2
2回答

倚天杖

您没有配置prometheus容器|服务来使用prometheus.yml您定义的。你想要这样的东西:  prometheus:    restart: always    depends_on:      - gcp-exporter    image: prom/prometheus:latest    container_name: prometheus    command:      - --config.file=/etc/prometheus/prometheus.yml      # Permits `curl --request POST http://localhost:9090/-/reload`      - --web.enable-lifecycle    volumes:      - ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml    expose:      - "9090"    ports:      - 9090:9090在此配置中,您运行docker-compose( ${PWD}) 的文件夹还包含${PWD}/prometheus.yml.YAML 指定:配置文件(使用--config-file)位于容器中的(默认?)位置/etc/prometheus/prometheus.yml。这一行是多余的,但有助于文档。主机的prometheus.yml(in ${PWD})被映射到容器的/etc/prometheus.prometheus.yml(匹配上面的配置)。如果您的文件夹结构不同,请修改--volume={source}/prometheus.yml:/etc/prometheus/prometheus.yml.您可以通过检查 Prometheus 服务器的目标来验证这一点,以确保它通过检查进行抓取my_server:8080:http://localhost:9090/targets值得my_service通过检查以下内容来确保正确发布指标:http://localhost:8080/metrics注意从您的主机,my_service只能访问,localhost:8080但是,您在Docker Compose 网络中prometheus.yml正确地引用了它。my_service我鼓励您在引用容器时不要使用标签。具有误导性。它可能不会引用最新的图像,并且您几乎无法控制正在使用的图像。参见Understanding Docker's "latest" taglatestlatest

桃花长相依

所以我找到了。我必须使用容器名称设置我的抓取配置。像这样的scrape_configs:  - job_name: my-service    scrape_interval: 15s    scrape_timeout: 10s    metrics_path: /metrics    static_configs:      - targets:          - 'prometheus:9090'          - 'my-service:8080'将 Prometheus 卷修复到数据后,您将看到您的服务已启动并正在运行http://localhost:9090/targets
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go