Hi, I'm trying to get the metrics of the services declared in the file provider and the ones in the docker provider, but right now I'm only getting the docker ones, what am i missing?
docker-compose.yml:
version: "3.7"
services:
traefik:
image: traefik:v2.2
restart: unless-stopped
container_name: traefik
networks:
- traefik
ports:
- "80:80"
- "443:443"
volumes:
- ./acme.json:/acme.json
- ./conf.yml:/conf.yml
- ./traefik.yaml:/etc/traefik/traefik.yaml
- /var/run/docker.sock:/var/run/docker.sock
labels:
traefik.enable: true
traefik.http.routers.traefik.rule: Host(`gate2.example.com`)
traefik.http.services.traefik.loadbalancer.server.port: 8080
traefik.http.routers.traefik.middlewares: basic-auth, white-list
# generate new user: echo $(htpasswd -nb user password) | sed -e s/\\$/\\$\\$/g
traefik.http.middlewares.basic-auth.basicauth.users: user:password
traefik.http.middlewares.white-list.ipwhitelist.sourcerange: 0.0.0.0
# middleware redirect
traefik.http.middlewares.redirect-to-https.redirectscheme.scheme: https
# global redirect to https
traefik.http.routers.redirs.rule: hostregexp(`{subdomain:.+}.example.com`)
traefik.http.routers.redirs.entrypoints: web
traefik.http.routers.redirs.middlewares: redirect-to-https
prometheus:
image: prom/prometheus
restart: unless-stopped
container_name: prometheus
networks:
- traefik
volumes:
- ./prometheus/:/etc/prometheus/
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
labels:
traefik.enable: true
traefik.http.routers.prometheus.rule: Host(`prometheus.localhost`)
traefik.http.routers.prometheus.service: prometheus
traefik.http.services.prometheus.loadbalancer.server.port: 9090
grafana:
image: grafana/grafana
restart: unless-stopped
container_name: grafana
depends_on:
- prometheus
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
env_file:
- ./grafana/config.monitoring
networks:
- traefik
user: "104"
labels:
traefik.enable: true
traefik.http.routers.grafana.rule: Host(`grafana.localhost`)
traefik.http.routers.grafana.service: grafana
traefik.http.services.grafana.loadbalancer.server.port: 3000
networks:
traefik:
name: traefik
volumes:
prometheus_data: {}
grafana_data: {}
traefik.yml:
entrypoints:
web:
address: ":80"
websecure:
address: ":443"
http:
tls:
certResolver: letsencrypt
certificatesResolvers:
letsencrypt:
acme:
email: test@mail.com
storage: /acme.json
tlsChallenge: {}
httpChallenge:
entryPoint: web
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
useBindPortIP: true
exposedByDefault: false
file:
filename: /conf.yml
watch: true
metrics:
prometheus:
buckets:
- 0.1
- 0.3
- 1.2
- 5.0
api:
dashboard: true
insecure: true
debug: true
conf.yml:
http:
services:
storage-api:
loadBalancer:
healthCheck:
path: /
interval: 10s
timeout: 3s
servers:
- url: "http://127.0.0.1:9000"
test-api-dev:
loadBalancer:
healthCheck:
path: /
interval: 10s
timeout: 3s
servers:
- url: "http://127.0.0.1"
routers:
storage:
rule: Host(`storage.localhost`)
service: storage-api
epdev:
rule: Host(`epdev.localhost`)
service: alvarium-api-dev
With this I only can see the services defined in the docker-compose and not the ones in the file provider, is there a way to tell traefik to send metrics of the services in the file provider?
Thank you!