Monitor your 5G network health using Prometheus and Grafana alongside a running Ella Core instance.
- Docker installed
- Ella Core running via Docker Compose (UI accessible at
http://<your-ip>:5002)
Follow the official tutorial to get Ella Core running: https://docs.ellanetworks.com/tutorials/end_to_end_network/
Make sure both containers are up:
docker ps | grep ellaYou should see ella-ella-core-1 and ella-ueransim-1 running.
mkdir -p ~/ella/monitoring
cd ~/ella/monitoringvim prometheus.ymlPaste the following (replace ella-ella-core-1 with your actual Ella Core container name if different):
global:
scrape_interval: 15s
scrape_configs:
- job_name: "ella-core"
metrics_path: "/api/v1/metrics"
static_configs:
- targets: ["ella-ella-core-1:5002"]To find your container name run:
docker ps | grep ella-core
vim docker-compose.ymlPaste the following:
networks:
monitoring:
driver: bridge
ella_default:
external: true # connects to Ella Core's Docker network
volumes:
prometheus_data: {}
grafana_data: {}
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
ports:
- "9090:9090"
networks:
- monitoring
- ella_default # allows Prometheus to reach Ella Core by container name
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin # change this in production
volumes:
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
networks:
- monitoring
depends_on:
- prometheus
ella_defaultis the Docker network automatically created by your Ella Core compose project. Verify it exists with:docker network ls | grep ella
docker compose up -dVerify all containers are running:
docker psYou should see prometheus and grafana both with status Up.
Open Prometheus in your browser:
http://<your-server-ip>:9090/targets
You should see the ella-core job with status UP.
If it shows DOWN, check connectivity:
docker exec prometheus curl -s http://ella-ella-core-1:5002/api/v1/metrics | head -5You should see lines starting with # HELP and # TYPE.
- Open Grafana at
http://<your-server-ip>:3000 - Login with admin / admin (you'll be asked to change the password)
- Go to Connections → Data Sources → Add data source
- Select Prometheus
- Set URL to:
http://prometheus:9090 - Click Save & test
- Go to Dashboards → Import
- Enter Dashboard ID:
24751 - Click Load
- Select your Prometheus data source
- Click Import
You should now see real-time panels for:
Change the time range to Last 15 minutes and trigger some UE activity to see data flow.
- Ella Core Observability Docs
- Ella Core Metrics API
- Grafana Dashboard 24751 — Ella Core Network Health
- Prometheus Docker Setup
To see more detailed setps, follow this tutorial: https://youtu.be/bU_Ct41MSik?si=ktY4hFsRLX9WFDVr


