首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Moleculer度量端口没有在码头容器中公开

Moleculer度量端口没有在码头容器中公开
EN

Stack Overflow用户
提问于 2021-03-11 13:46:10
回答 2查看 197关注 0票数 0

我用分子来做微服务。实际上,我不知道如何在码头容器中公开度量端口(3030),以便能够从http://host:3030/metrics读取度量

当应用程序被执行时,我的本地主机运行得很好,但是当部署到坞-合成-构建-up时,它就不起作用了。

我的船坞组成了traefik区

代码语言:javascript
复制
  traefik:
    image: traefik:v2.1
    command:
      - "--api.insecure=true" # Don't do that in production!
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
    ports:
      - 3000:80
      - 3001:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - internal
      - default

谢谢你的帮助

全对接者-合成人

代码语言:javascript
复制
version: "3.3"

services:
  api:
    build:
      context: .
    image: moleculer-akwa
    env_file: docker-compose.env
    environment:
      SERVICES: api
      PORT: 3000
    depends_on:
      - nats
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.api-gw.rule=PathPrefix(`/`)"
      - "traefik.http.services.api-gw.loadbalancer.server.port=3000"
    networks:
      - internal
        
  firebase:
    build:
      context: .
    image: moleculer-akwa
    env_file: docker-compose.env
    environment:
      SERVICES: firebase
    depends_on:
      - nats
    networks:
      - internal
        
  kafka:
    build:
      context: .
    image: moleculer-akwa
    env_file: docker-compose.env
    environment:
      SERVICES: kafka
    depends_on:
      - nats
    networks:
      - internal

  mailer:
    build:
      context: .
    image: moleculer-akwa
    env_file: docker-compose.env
    environment:
      SERVICES: mailer
    depends_on:
      - nats
    networks:
      - internal

  sms:
    build:
      context: .
    image: moleculer-akwa
    env_file: docker-compose.env
    environment:
      SERVICES: sms
    depends_on:
      - nats
    networks:
      - internal
        
  
  io:
    build:
      context: .
    image: moleculer-akwa
    env_file: docker-compose.env
    environment:
      SERVICES: io
      PORT: 5000
    depends_on:
      - nats
    networks:
      - internal

  nats:
    image: nats:2
    networks:
      - internal

  traefik:
    image: traefik:v2.1
    command:
      - "--api.insecure=true" # Don't do that in production!
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
    ports:
      - 3000:80
      - 3001:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - internal
      - default

networks:
  internal:

volumes:
  data:

更新:在我的本地机器上运行npm run dev时,我可以访问http://localhost:3030/metrics的度量url来获取所有正在运行的微服务的度量标准。但是,当我将代码部署到容器(上面的docker-Compose.yml)时,应用程序在http://host:3000上运行得很好,但是http://localhost:3030/是不可访问的。我禁用了防火墙,但没有成功,我在docker-come.yml文件中的traefik部分添加了端口映射3030:3030,但什么也没有。

代码语言:javascript
复制
ports:
          - 3000:80
          - 3001:8080
          - 3030:3030

谢谢你的帮助和耐心

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-19 08:01:33

最后在api服务声明中的docker-compose.yml中获得了它: 3030:3030

代码语言:javascript
复制
api:
build:
  context: .
environment:
  SERVICES: api
  PORT: 3000
depends_on:
  - nats
ports:
  - 3030:3030
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.api-gw.rule=PathPrefix(`/`)"
  - "traefik.http.services.api-gw.loadbalancer.server.port=3000"
networks:
  - internal

谢谢

票数 0
EN

Stack Overflow用户

发布于 2021-03-11 16:00:13

你用普罗米修斯做出口商吗?如果是这样的话,请检查https://github.com/AndreMaz/moleculer-prometheus-demo

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

https://stackoverflow.com/questions/66583822

复制
相关文章

相似问题

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