Deployment & Operations¶
This exporter is distributed as a container image. Use the Getting Started guide for initial setup and the provided docker-compose.yml as a baseline for production deployments.
Endpoints¶
The exporter exposes endpoints for metrics (/metrics), liveness (/health),
readiness (/ready), an exporter self-health dashboard (/status), cardinality
reports (/cardinality), and optional client (/clients) and webhook
(POST /api/webhooks/meraki) features. See the HTTP Endpoints
reference for the authoritative list and enablement notes.
Monitoring¶
Prometheus and Grafana integration examples live in the Integration & Dashboards guide.
Updating¶
Pull the latest image and restart the container:
Troubleshooting¶
- Check container logs with
docker compose logs meraki_dashboard_exporter. - Verify the API key and network connectivity.
- Metrics
meraki_exporter_collector_errors_totalhelp identify failing collectors. - Open
/statusfor an at-a-glance view of tier health, last collection durations, and network filter resolution.
Network Filter¶
For large organisations, restrict scraping to a subset of networks via the
MERAKI_EXPORTER_NETWORK_FILTER__* settings (include/exclude by name glob, ID,
or tag). The filter is inactive by default; if a filter is configured but
resolves to zero networks across all configured orgs at startup, the exporter
exits with an error so typos fail loudly. See .env.example and the
Configuration guide for details.
Log Aggregation¶
The exporter outputs structured logs in logfmt format by default, which is ideal for Loki ingestion. You can switch to JSON format by setting:
Grafana Alloy Configuration¶
To ship logs to Loki using Grafana Alloy, add this to your Alloy configuration:
local.file_match "meraki_exporter" {
path_targets = [{"__path__" = "/var/log/meraki-exporter/*.log"}]
}
loki.source.file "meraki_exporter" {
targets = local.file_match.meraki_exporter.targets
forward_to = [loki.write.default.receiver]
}
loki.write "default" {
endpoint {
url = "http://loki:3100/loki/api/v1/push"
}
}
For Docker or Kubernetes deployments, use the container log discovery instead:
discovery.docker "meraki" {
host = "unix:///var/run/docker.sock"
filter {
name = "name"
values = ["meraki-dashboard-exporter"]
}
}
loki.source.docker "meraki" {
host = "unix:///var/run/docker.sock"
targets = discovery.docker.meraki.targets
forward_to = [loki.write.default.receiver]
}
Example LogQL Queries¶
Collector failures:
Rate limit events:
Slow collections (>60s):
Error summary by collector:
sum by (collector) (count_over_time({container="meraki-dashboard-exporter"} |= "error" | logfmt [1h]))
For configuration options see the Configuration guide. A list of exported metrics is available in the Metrics Reference.