Speedtest 在 Prometheus 中被发现

Speedtest is found down in Prometheus

我使用了这个 docker-compose(有点基本),但是在配置和构建它之后,我在输入 http://[server-ip]:9090/targets 信息后得到:

speedtest (0/1 up)
Error: Get "http://speedtest:9798/metrics": dial tcp: lookup speedtest on 127.0.0.11:53: no such host

我知道它找不到那个主机,只是配置本身没有被触及,它对我来说实际上看起来是合法的: docker-撰写

service:
   speedtest:
    tty: true
    stdin_open: true
    expose:
      - 9798
    ports:
      - 9798:9798
    image: miguelndecarvalho/speedtest-exporter
    restart: always
    networks:
      - back-tier

prometheus.yml

- job_name: 'speedtest'
    metrics_path: /metrics
    scrape_interval: 5m
    scrape_timeout: 60s # running speedtest needs time to complete

    static_configs:
      - targets: ['speedtest:9798']

有人能发现问题吗?如何在本地 DNS 服务器上找不到速度测试?什么都暴露了,还没有找到合适的东西。

#Edit 我的 DNS 服务器由 dnsmasq

配置

如果 Prometheus 绑定到主机的网络并且您也尝试访问主机网络上的 speedtest,那么您应该将 speedtest 引用为 localhost speedtest:

static_configs:
      - targets: ['localhost:9798']

NOTE Docker (Compose) only provides DNS resolution for e.g. services (i.e. speedtest) within the process. If you were to run Prometheus within the Docker Compose services too, then you'd be able to use Docker (Compose) DNS resolution to resolve speedtest to the container on port 9798.