Prometheus exporter for Cisco Meraki Dashboard API metrics
Project description
Meraki Dashboard Exporter
A Prometheus exporter for Cisco Meraki Dashboard API metrics with OpenTelemetry support.
Features
- Collects metrics from all Meraki device types (MS, MR, MV, MT, MX, MG)
- Organization-level metrics (API usage, licenses, device counts)
- Device-specific metrics (status, performance, sensor readings)
- Async collection for improved performance
- OpenTelemetry support for metrics and logs
- Structured logging with JSON output
- Docker support with health checks
- Configurable collection intervals
Quick Start
Using Docker
-
Copy
.env.exampleto.envand add your Meraki API key:cp .env.example .env # Edit .env and add your MERAKI_API_KEY
-
Run with Docker Compose:
docker-compose up -d
-
Access metrics at http://localhost:9090/metrics
Using Python
-
Install dependencies:
uv pip install -e .
-
Set environment variables:
export MERAKI_API_KEY=your_api_key_here
-
Run the exporter:
python -m meraki_dashboard_exporter
Configuration
All configuration is done via environment variables. See .env.example for all available options.
Key settings:
MERAKI_API_KEY: Your Meraki Dashboard API key (required)MERAKI_EXPORTER_ORG_ID: Specific org ID to monitor (optional)MERAKI_EXPORTER_SCRAPE_INTERVAL: Collection interval in seconds (default: 300)MERAKI_EXPORTER_LOG_LEVEL: Logging level (default: INFO)
Metrics
Organization Metrics
meraki_org_api_requests_total: Total API requestsmeraki_org_networks_total: Number of networksmeraki_org_devices_total: Number of devices by typemeraki_org_licenses_total: License counts by type and status
Device Metrics
meraki_device_up: Device online statusmeraki_device_uptime_seconds: Device uptime
Switch (MS) Metrics
meraki_ms_port_status: Port connection statusmeraki_ms_port_traffic_bytes: Port traffic countersmeraki_ms_port_errors_total: Port error counters
Access Point (MR) Metrics
meraki_mr_clients_connected: Connected client countmeraki_mr_channel_utilization_percent: Channel utilization
Sensor (MT) Metrics
meraki_mt_temperature_celsius: Temperature readingsmeraki_mt_humidity_percent: Humidity readingsmeraki_mt_door_status: Door sensor statusmeraki_mt_water_detected: Water detection status- And more...
Development
Running Tests
uv run pytest
Linting and Type Checking
uv run ruff check .
uv run mypy .
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file meraki_dashboard_exporter-0.1.0.tar.gz.
File metadata
- Download URL: meraki_dashboard_exporter-0.1.0.tar.gz
- Upload date:
- Size: 22.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4516c289b76277b26e38c2737fb034c07674c81b2953fc532eab6e54ff3b8b4c
|
|
| MD5 |
e3fe623096a545694e23bfff05919ce7
|
|
| BLAKE2b-256 |
7ca0069c7cc808017ede8ec4ac51ce9b38247d552c2044690863470380a9975f
|
Provenance
The following attestation bundles were made for meraki_dashboard_exporter-0.1.0.tar.gz:
Publisher:
python-publish.yml on rknightion/meraki-dashboard-exporter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meraki_dashboard_exporter-0.1.0.tar.gz -
Subject digest:
4516c289b76277b26e38c2737fb034c07674c81b2953fc532eab6e54ff3b8b4c - Sigstore transparency entry: 264396106
- Sigstore integration time:
-
Permalink:
rknightion/meraki-dashboard-exporter@4c7c709a94e13e42641fab304496143d056f2616 -
Branch / Tag:
refs/tags/0.0.1 - Owner: https://github.com/rknightion
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@4c7c709a94e13e42641fab304496143d056f2616 -
Trigger Event:
release
-
Statement type:
File details
Details for the file meraki_dashboard_exporter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: meraki_dashboard_exporter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a74b7fba88fe9d03b38db31cf6d577108db9a1d07e4cb2cdc5eed0499fd3a7c8
|
|
| MD5 |
4b2a56fb7a09cebd0b19516d024b0ddf
|
|
| BLAKE2b-256 |
cc8ebc3d9ada113bcf6655e1050447f68b8a79912b1d14d064ad4eaa3eebe88d
|
Provenance
The following attestation bundles were made for meraki_dashboard_exporter-0.1.0-py3-none-any.whl:
Publisher:
python-publish.yml on rknightion/meraki-dashboard-exporter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
meraki_dashboard_exporter-0.1.0-py3-none-any.whl -
Subject digest:
a74b7fba88fe9d03b38db31cf6d577108db9a1d07e4cb2cdc5eed0499fd3a7c8 - Sigstore transparency entry: 264396108
- Sigstore integration time:
-
Permalink:
rknightion/meraki-dashboard-exporter@4c7c709a94e13e42641fab304496143d056f2616 -
Branch / Tag:
refs/tags/0.0.1 - Owner: https://github.com/rknightion
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@4c7c709a94e13e42641fab304496143d056f2616 -
Trigger Event:
release
-
Statement type: