Originally created by @eugeniumegherea on GitHub (Oct 15, 2025).
Describe the Bug
First of all, amazing project! I am not sure if this is a valid bug so please correct me
I have an issue where prometheus doesn't see the service names correctly. I've enabled prometheus endpoint in traefik and added them to the default traefik dashboard. I wanted to understand how can we see the resources names in there but I am struggling so far. I have added 6 services so far
I was digging into the code and found the traefik provider that exposes the targets and it seems that that service name is set from the api itself. https://github.com/fosrl/pangolin/blob/3b8ba4737709e2d8b45760a44ebc096b6e57b4e2/server/lib/traefik/getTraefikConfig.ts#L199
But what is confusing to me, if resource.name would have been empty, service name would be ${key}--service (double dashes in case name is empty). So I don't yet understand where the service names like <number>-service is coming from. Maybe there is some sanitization further down the line that I don't know.
Surely I miss something but cannot understand what, I'll appreciate any help on this
Environment
OS Type & Version: (e.g., Ubuntu 22.04) debian 12
Pangolin Version: 1.10.3
Gerbil Version: -
Traefik Version: 3.5
Newt Version: -
Olm Version: (if applicable) -
I only run pangolin and traefik in docker compose. I don't need tunneling so far.
docker config:
name: pangolin
services:
pangolin:
image: docker.io/fosrl/pangolin:1.10.3
container_name: pangolin
restart: unless-stopped
volumes:
- ./config:/app/config
- pangolin-data:/var/certificates
- pangolin-data:/var/dynamic
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
interval: "10s"
timeout: "10s"
retries: 15
traefik:
image: docker.io/traefik:v3.5
container_name: traefik
restart: unless-stopped
ports:
- 443:443
- 80:80
- 853:853 # dns over tls with custom traefik config, not relevant to this issue I think
- 8082:8082
depends_on:
pangolin:
condition: service_healthy
command:
- --configFile=/etc/traefik/traefik_config.yml
volumes:
- ./config/traefik:/etc/traefik:ro # Volume to store the Traefik configuration
- ./config/letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates
- ./config/traefik/logs:/var/log/traefik # Volume to store Traefik logs
# Shared volume for certificates and dynamic config in file mode
- pangolin-data:/var/certificates:ro
- pangolin-data:/var/dynamic:ro
whoami:
image: "traefik/whoami"
restart: unless-stopped
ports:
- 8080:80
networks:
default:
driver: bridge
name: pangolin
volumes:
pangolin-data:
I am running prometheus and grafana in a separate proxmox container which I am not sure if this is revelant, they are not custom in any way.
To Reproduce
Create a simple proxy service, run a few requests through it and then access grafana and check the reported service names
Expected Behavior
Prometheus should have a human friendly service names, ideally the names of the resources from the pangolin UI
Originally created by @eugeniumegherea on GitHub (Oct 15, 2025).
### Describe the Bug
First of all, amazing project! I am not sure if this is a valid bug so please correct me
I have an issue where prometheus doesn't see the service names correctly. I've enabled prometheus endpoint in traefik and added them to the default traefik dashboard. I wanted to understand how can we see the resources names in there but I am struggling so far. I have added 6 services so far
<img width="378" height="260" alt="Image" src="https://github.com/user-attachments/assets/e598b0ba-feed-4916-b38d-3711ecfd3cdb" />
I was digging into the code and found the traefik provider that exposes the targets and it seems that that service name is set from the api itself.
https://github.com/fosrl/pangolin/blob/3b8ba4737709e2d8b45760a44ebc096b6e57b4e2/server/lib/traefik/getTraefikConfig.ts#L199
But what is confusing to me, if `resource.name` would have been empty, service name would be `${key}--service` (double dashes in case name is empty). So I don't yet understand where the service names like `<number>-service` is coming from. Maybe there is some sanitization further down the line that I don't know.
and then here it creates a named config for all resources and matching rules etc that it then returns back to traefik https://github.com/fosrl/pangolin/blob/3b8ba4737709e2d8b45760a44ebc096b6e57b4e2/server/lib/traefik/getTraefikConfig.ts#L421
Surely I miss something but cannot understand what, I'll appreciate any help on this
### Environment
- OS Type & Version: (e.g., Ubuntu 22.04) debian 12
- Pangolin Version: 1.10.3
- Gerbil Version: -
- Traefik Version: 3.5
- Newt Version: -
- Olm Version: (if applicable) -
I only run pangolin and traefik in docker compose. I don't need tunneling so far.
docker config:
```
name: pangolin
services:
pangolin:
image: docker.io/fosrl/pangolin:1.10.3
container_name: pangolin
restart: unless-stopped
volumes:
- ./config:/app/config
- pangolin-data:/var/certificates
- pangolin-data:/var/dynamic
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
interval: "10s"
timeout: "10s"
retries: 15
traefik:
image: docker.io/traefik:v3.5
container_name: traefik
restart: unless-stopped
ports:
- 443:443
- 80:80
- 853:853 # dns over tls with custom traefik config, not relevant to this issue I think
- 8082:8082
depends_on:
pangolin:
condition: service_healthy
command:
- --configFile=/etc/traefik/traefik_config.yml
volumes:
- ./config/traefik:/etc/traefik:ro # Volume to store the Traefik configuration
- ./config/letsencrypt:/letsencrypt # Volume to store the Let's Encrypt certificates
- ./config/traefik/logs:/var/log/traefik # Volume to store Traefik logs
# Shared volume for certificates and dynamic config in file mode
- pangolin-data:/var/certificates:ro
- pangolin-data:/var/dynamic:ro
whoami:
image: "traefik/whoami"
restart: unless-stopped
ports:
- 8080:80
networks:
default:
driver: bridge
name: pangolin
volumes:
pangolin-data:
```
I am running prometheus and grafana in a separate proxmox container which I am not sure if this is revelant, they are not custom in any way.
### To Reproduce
Create a simple proxy service, run a few requests through it and then access grafana and check the reported service names
### Expected Behavior
Prometheus should have a human friendly service names, ideally the names of the resources from the pangolin UI
@eugeniumegherea commented on GitHub (Oct 17, 2025):
I installed today 1.11.0 and the issue is gone, it was fixed it seems. Thank you very much!
I will close the issue
@eugeniumegherea commented on GitHub (Oct 17, 2025):
I installed today 1.11.0 and the issue is gone, it was fixed it seems. Thank you very much!
I will close the issue
<img width="752" height="169" alt="Image" src="https://github.com/user-attachments/assets/17897aa6-3f8f-4c4d-9674-7ff0c8136c32" />
@oschwartz10612 commented on GitHub (Oct 17, 2025):
Glad its working well! We added the resource names into the
services/routers in the latest release! :}
@oschwartz10612 commented on GitHub (Oct 17, 2025):
Glad its working well! We added the resource names into the
services/routers in the latest release! :}
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @eugeniumegherea on GitHub (Oct 15, 2025).
Describe the Bug
First of all, amazing project! I am not sure if this is a valid bug so please correct me
I have an issue where prometheus doesn't see the service names correctly. I've enabled prometheus endpoint in traefik and added them to the default traefik dashboard. I wanted to understand how can we see the resources names in there but I am struggling so far. I have added 6 services so far
I was digging into the code and found the traefik provider that exposes the targets and it seems that that service name is set from the api itself.
https://github.com/fosrl/pangolin/blob/3b8ba4737709e2d8b45760a44ebc096b6e57b4e2/server/lib/traefik/getTraefikConfig.ts#L199
But what is confusing to me, if
resource.namewould have been empty, service name would be${key}--service(double dashes in case name is empty). So I don't yet understand where the service names like<number>-serviceis coming from. Maybe there is some sanitization further down the line that I don't know.and then here it creates a named config for all resources and matching rules etc that it then returns back to traefik https://github.com/fosrl/pangolin/blob/3b8ba4737709e2d8b45760a44ebc096b6e57b4e2/server/lib/traefik/getTraefikConfig.ts#L421
Surely I miss something but cannot understand what, I'll appreciate any help on this
Environment
I only run pangolin and traefik in docker compose. I don't need tunneling so far.
docker config:
I am running prometheus and grafana in a separate proxmox container which I am not sure if this is revelant, they are not custom in any way.
To Reproduce
Create a simple proxy service, run a few requests through it and then access grafana and check the reported service names
Expected Behavior
Prometheus should have a human friendly service names, ideally the names of the resources from the pangolin UI
@eugeniumegherea commented on GitHub (Oct 17, 2025):
I installed today 1.11.0 and the issue is gone, it was fixed it seems. Thank you very much!
I will close the issue
@oschwartz10612 commented on GitHub (Oct 17, 2025):
Glad its working well! We added the resource names into the
services/routers in the latest release! :}