首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何监控一个ASP.Net核心应用程序与程控普罗米修斯(和Grafana)?

我如何监控一个ASP.Net核心应用程序与程控普罗米修斯(和Grafana)?
EN

Stack Overflow用户
提问于 2021-03-20 09:19:30
回答 1查看 888关注 0票数 5

我想让Prometheus和Grafana在我的开发者机器上运行,使用docker/。

我有正在开发的系统,ASP.Net核心,运行在本地主机上:5001,https://localhost:5001/metrics上的指标显示得很好。

Docker-compose.yml和prometheus.yml列出如下。

如果我在localhost:9090

  • If中包括network_mode:

  • ,我不能通过network_mode访问物理机器上的Prometheus,我不包括network_mode,而是使用端口:,我可以通过localhost:9090访问物理机器上的Prometheus,但是检查http://localhost:9090/targets,显示https://localhost:5001/metrics正在下降。

我做错了什么?欢迎任何评论!

docker-compose.yml:

代码语言:javascript
复制
version: '3.8'
services:
  prometheus:
    image: prom/prometheus
    container_name: gradle_docker-prometheus
    #network_mode: host
    ports:
      - 9090:9090
    volumes:
      - prometheus-storage:/var/lib/prometheus
      - /c/Data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
  grafana:
    image: grafana/grafana
    container_name: gradle_docker-grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana-storage:/opt/grafana/data
    depends_on:
      - prometheus

volumes:
  prometheus-storage: {}
  grafana-storage: {}

prometheus.yml:

代码语言:javascript
复制
global:
  scrape_interval:     15s
  evaluation_interval: 15s

  external_labels:
      monitor: 'my-project'

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 10s
    scheme: http
    static_configs:
         - targets: ['localhost:9090','cadvisor:8080','node-exporter:9100', 'nginx-exporter:9113']
  - job_name: '.Net'
    scrape_interval: 10s
    scheme: https
    static_configs:
         - targets: ['localhost:5001']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-22 11:35:26

不要在Windows上使用主机网络模式,它只支持Linux。您需要的是更改目标地址:

代码语言:javascript
复制
  - job_name: '.Net'
    scrape_interval: 10s
    scheme: https # You may have to change this to 'http'
                  # or you'd have to create a certificate 
                  # with `host.docker.internal`
    static_configs:
         - targets: ['host.docker.internal:5001']

host.docker.internal是连接到Docker的一个特殊地址,因为容器中的localhost只是容器本身。

总结一下注释中的内容:在将目标更改为host.docker.internal之后,确保应用程序允许与该主机连接。跑

代码语言:javascript
复制
curl http://localhost:5001/ -H "Host: host.docker.internal"

查查答案。如果您有一个包含如下内容的错误:

请求主机名无效。

然后,您必须找出主机过滤器在哪里(它可能是一个包含localhost的数组),并在其中添加新主机(host.docker.internal)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66719960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档