Nlea
Nlea
RRailway
Created by Nlea on 7/19/2023 in #✋|help
Connecting prometheus instance with python app via internal network
Hey everyone, I am new to Railway. I deployed a Python App to railway via GitHub repo and Dockerimage and did the same for a Prometheus instance in a separated repo. Both apps are up and running. Within the Python app I have set the variable PORT = 80 because without this setting I would have been not able to access the app. The python app provides an endpoint /metrics form there I want the prometheus instance to poll the metrics. To do so one can configure a prometheus.yml. I managed that Prometheus is connecting to my app via the public domain, but I would like to have it connect via the internal network. I tried multiple things but it is still failing. My prometheus.yml looks like this:
scrape_configs:
- job_name: internal-endpoint
metrics_path: /metrics
static_configs:
# Replace the port with the port your /metrics endpoint is running on
- targets: ['fastapi-on-railway.railway.internal']
# For a real deployment, you would want the scrape interval to be
# longer but for testing, you want the data to show up quickly
scrape_interval: 200ms

- job_name: external-endpoint
metrics_path: /metrics
static_configs:
# Replace the port with the port your /metrics endpoint is running on
- targets: ['fastapi-on-railway-production.up.railway.app:443']
scheme: https
# For a real deployment, you would want the scrape interval to be
# longer but for testing, you want the data to show up quickly
scrape_interval: 200ms
scrape_configs:
- job_name: internal-endpoint
metrics_path: /metrics
static_configs:
# Replace the port with the port your /metrics endpoint is running on
- targets: ['fastapi-on-railway.railway.internal']
# For a real deployment, you would want the scrape interval to be
# longer but for testing, you want the data to show up quickly
scrape_interval: 200ms

- job_name: external-endpoint
metrics_path: /metrics
static_configs:
# Replace the port with the port your /metrics endpoint is running on
- targets: ['fastapi-on-railway-production.up.railway.app:443']
scheme: https
# For a real deployment, you would want the scrape interval to be
# longer but for testing, you want the data to show up quickly
scrape_interval: 200ms
I tried different target options for the internal one including: 0.0.0.0:80 , fastapi-on-railway.railway.internal:80 and basically fastapi-on-railway. If I look into the Prometheus frontend it takes the endpoint but reports that the service is down. Has anyone an idea how to make this connection within the Railway network? This would be amazing! Thank you and cheers Nele
26 replies