首先,我试过这个solution对我不起作用.

我需要使用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

我也try 了外部ip,但在prometheus UI中看不到我的指标.此外,目标页面显示localhost:9090已启动.

有什么问题?有人能纠正docker compose和prometheus文件吗?

谢谢

推荐答案

所以我找到了.我必须用容器名称设置我的scrape配置.像这样的

scrape_configs:
  - job_name: my-service
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: /metrics
    static_configs:
      - targets:
          - 'prometheus:9090'
          - 'my-service:8080'

一旦您将普罗米修斯卷修复到数据中,您将看到您的服务已启动并以http://localhost:9090/targets%的速度运行

Go相关问答推荐

Makefile:现有文件上没有这样的文件或目录,不加载环境变量

GoLang:无法发送带有附件的邮箱

Go Regexp:匹配完整的单词或子字符串,或者根本不匹配

在Golang中Mergesort的递归/并行实现中出现死锁

是不是有什么原因导致`Strings.EqualFold`不先进行长度比较?

exec的可执行决议.命令+路径

日志(log)文件不在 golang 的日志(log)目录中

3 字节切片和有符号整数类型之间的转换

无法使用带有 422 的 go-github 创建提交 - 更新不是快进

使用 Go 根据 /etc/shadow 文件中的散列密码验证密码

设置 graphql 的最大文件上传大小(golang)

如何使用管理员权限启动 powershell 进程并重定向标准输入 (os.exec)

甚至用天真的洗牌分配?

如何为导入的嵌入式 struct 文字提供值?

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 挂载卷

Golang:隐式 struct 匹配

在 docker kill --signal=SIGX 上以这种方式关闭容器内运行的 go 应用程序是否安全?

关系不存在 GORM

Go 使用 struct 作为接口而不实现所有方法

无法识别同步错误.使用一次