Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Ella Core — Prometheus & Grafana Observability Setup

Monitor your 5G network health using Prometheus and Grafana alongside a running Ella Core instance.


Prerequisites

  • Docker installed
  • Ella Core running via Docker Compose (UI accessible at http://<your-ip>:5002)

Step 1: Clone or set up Ella Core

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 ella

You should see ella-ella-core-1 and ella-ueransim-1 running.


Step 2: Create the monitoring directory

mkdir -p ~/ella/monitoring
cd ~/ella/monitoring

Step 3: Create prometheus.yml

vim prometheus.yml

Paste 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


Step 4: Create docker-compose.yml

vim docker-compose.yml

Paste 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_default is the Docker network automatically created by your Ella Core compose project. Verify it exists with: docker network ls | grep ella


Step 5: Start the monitoring stack

docker compose up -d

Verify all containers are running:

docker ps

You should see prometheus and grafana both with status Up.


Step 6: Verify Prometheus is scraping Ella Core

Open Prometheus in your browser:

http://<your-server-ip>:9090/targets

You should see the ella-core job with status UP.

alt text

If it shows DOWN, check connectivity:

docker exec prometheus curl -s http://ella-ella-core-1:5002/api/v1/metrics | head -5

You should see lines starting with # HELP and # TYPE.


Step 7: Set up Grafana

  1. Open Grafana at http://<your-server-ip>:3000
  2. Login with admin / admin (you'll be asked to change the password)

Add Prometheus as a data source

  • Go to Connections → Data Sources → Add data source
  • Select Prometheus
  • Set URL to: http://prometheus:9090
  • Click Save & test

alt text

Import the Ella Network Health Dashboard

  • Go to Dashboards → Import
  • Enter Dashboard ID: 24751
  • Click Load
  • Select your Prometheus data source
  • Click Import

alt text


Step 8: View your dashboard

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.

References

Video

To see more detailed setps, follow this tutorial: https://youtu.be/bU_Ct41MSik?si=ktY4hFsRLX9WFDVr