Cisco Meraki Data Source Plugin for Grafana
Description
The Cisco Meraki Data Source Plugin is a Grafana backend data source plugin that queries and visualizes Cisco Meraki network and device data directly in Grafana panels.
Cisco Meraki is a cloud-managed IT platform for wireless, switching, security appliances, SD-WAN and cellular gateways. The plugin connects to the Cisco Meraki Dashboard API v1 to retrieve device availability and status, device memory and CPU, power supplies, network and security events, clients, wireless statistics, switch ports, appliance uplinks and site-to-site VPN performance.
Features
- Query and visualize Cisco Meraki data directly within Grafana
- Eighteen query types spanning six groups:
- Device Status
- Device Availabilities — current status of each device, with an optional change history
- Device Status Overview — count of online, alerting, offline and dormant devices
- Device Statuses — status, IP addresses and last report time of each device
- Power Module Statuses — status of each power supply slot
- System Resources
- Device Memory Usage History — memory usage per device over time, for all device types
- Wireless CPU Load History — 5-minute CPU load per access point, in percent of all cores
- Wireless Controller CPU Utilization — CPU usage per wireless LAN controller over time
- Appliance Performance Score — load score of a primary MX security appliance
- Events
- Network Events — the event log of a network, per product type
- Security Events — IDS/IPS and malware events from security appliances
- Clients
- Network Clients — clients seen on a network, with usage
- Device Clients — clients connected to a device, with usage
- Wireless
- Wireless Client Count — wireless client count over time
- Wireless Connection Stats — association, authentication, DHCP and DNS results
- Wireless Latency Stats — wireless latency by traffic class
- Switching & WAN
- Switch Port Statuses — status, speed and duplex of each switch port
- Appliance Uplink Statuses — WAN uplink status of each security appliance
- VPN Stats — site-to-site VPN latency, loss, jitter and MOS
- Device Status
- Network, device and product type filters, with Network and Device dropdowns populated from the Meraki API
- Required fields marked in the query editor; queries that need a device are not run when none is available
- Per-query-type time range limits enforced before the request is sent
- Link-header pagination on every paginated endpoint, with no row cap
- Rate-limit handling that honours the Meraki
Retry-Afterheader - Configurable Base URL for regional Meraki API endpoints
- Six pre-built dashboards covering device status, infrastructure, wireless and VPN, network events, security events and clients
Compatibility
| Component | Version / Detail |
|---|---|
| Grafana | >= 12.0.0 |
| Meraki API | Cisco Meraki Dashboard API v1 |
| Authentication | Meraki Dashboard API key (Bearer token) |
| Base URL | Configurable per data source — defaults to https://api.meraki.com/api/v1 |
Installation
Requirements
- Grafana >= 12.0.0
- A Cisco Meraki organization with Dashboard API access enabled
- A Meraki Dashboard API key with read access to the organization
- Network egress from the Grafana backend to the Meraki API (
api.meraki.com, or your regional endpoint) on TCP/443
Obtain a Meraki API Key
- Sign in to the Meraki Dashboard.
- Go to Organization → Settings and make sure API access is enabled.
- Open your profile (top-right user menu → My profile).
- Under API access, click Generate new API key.
- Copy the key and store it securely — it is shown only once.
- Note your Organization ID. Call
GET https://api.meraki.com/api/v1/organizationswith the API key as a Bearer token; the response lists the ID of each organization the key can access.
Install the Plugin
Grafana Cloud
- Navigate to your Grafana Cloud stack.
- Go to Administration → Plugins and data → Plugins.
- Search for Cisco Meraki and click Install.
Self-managed Grafana
grafana cli plugins install crestdata-ciscomeraki-datasource
Restart the Grafana server after installation.
Configure the Data Source
Navigate to Connections → Data sources → Add new data source and select Cisco Meraki.
| Field | Type | Required | Description |
|---|---|---|---|
| Base URL | String | No | The Meraki API base URL. Defaults to https://api.meraki.com/api/v1. Change it for regional endpoints (Canada, China, India, US FedRAMP). |
| Organization ID | String | Yes | The ID of the Meraki organization to query. |
| API Key | Secure string | Yes | Your Meraki Dashboard API key. |
The API key is stored encrypted in Grafana's secure settings store and is never returned to the browser.
Click Save & Test. The plugin calls GET /organizations/{organizationId} to confirm that the API key, organization ID and network path work.
Usage
Query Editor
Select a Query Type first. Query types are grouped by category, and the editor then shows only the filters that query type supports. Fields marked with * are required; every other filter is optional and is left out of the request when blank. When a query type needs a device and none is available, the editor shows a warning and the query is not run.
Query types with history use the dashboard time range. Live query types return the current state and ignore it — the editor shows a note for each.
Available Query Types
Device Availabilities
Current status of each device: online, alerting, offline or dormant. Enable Historical Data to return the status change history instead.
- Filters: Product Type, Historical Data
- Time range: not applied (current state); with Historical Data, up to 31 days
- Frame: table, one row per device (or per status change)
Device Status Overview
Number of devices in each status.
- Filters: Network, Product Type
- Time range: not applied (current state)
- Frame: table, one row with Online, Alerting, Offline and Dormant counts
Device Statuses
Status, LAN and public IP, gateway and last report time of every device.
- Filters: Network, Device Serial, Product Type
- Time range: not applied (current state)
- Frame: table, one row per device
Power Module Statuses
Status of each power supply slot on devices with field-replaceable power supplies.
- Filters: Network, Device Serial, Product Type
- Time range: not applied (current state)
- Frame: table, one row per power supply slot
Device Memory Usage History
Memory used and free per device over time, for every device type.
- Filters: Network, Device Serial, Product Type
- Time range: applied, up to 31 days
- Frame: time series in long format, one row per device per interval
Wireless CPU Load History
The 5-minute CPU load average of each access point. CPU Load is the percentage of all cores in use, as Meraki Dashboard shows it: the raw cpuLoad5 value divided by 1,000 × CPU Count (Meraki reports the load average × 100,000). CPU Load (5 min avg) keeps the raw value.
- Filters: Network, Device Serial (access points only)
- Time range: applied, up to 1 day
- Frame: time series in long format, one row per access point per sample
Wireless Controller CPU Utilization
Average CPU usage of each wireless LAN controller.
- Filters: Device Serial (wireless controllers only)
- Time range: applied, up to 31 days
- Frame: time series in long format, one row per controller per interval
Appliance Performance Score
One performance score for a primary MX security appliance over the time range. Higher means the appliance is more heavily loaded.
- Filters: Network, Device Serial (required, MX appliances only)
- Time range: applied, up to 30 days; a range longer than 14 days uses its most recent 14 days
- Frame: table, one row
Network Events
The event log of a network for one product type.
- Filters: Network (required), Product Type (required)
- Time range: applied
- Frame: table, one row per event
Security Events
IDS/IPS and malware events from security appliances, for the organization or one network.
- Filters: Network
- Time range: applied, up to 365 days
- Frame: table, one row per event
Network Clients
Clients currently or recently seen on a network, with status, OS, VLAN and usage.
- Filters: Network (required)
- Time range: not applied (current state)
- Frame: table, one row per client
Device Clients
Clients currently or recently connected to a device, with VLAN and usage.
- Filters: Device Serial (required)
- Time range: not applied (current state)
- Frame: table, one row per client
Wireless Client Count
Wireless client count over time for a network or one access point.
- Filters: Network (required), Device Serial
- Time range: applied, up to 31 days
- Frame: time series
Wireless Connection Stats
Association, authentication, DHCP and DNS results for a network or one access point.
- Filters: Network (required), Device Serial
- Time range: applied, up to 180 days back with a window of at most 7 days
- Frame: table
Wireless Latency Stats
Average wireless latency for background, best-effort, video and voice traffic.
- Filters: Network (required), Device Serial
- Time range: applied, up to 180 days back with a window of at most 7 days
- Frame: table
Switch Port Statuses
Status, speed and duplex of each port on each switch.
- Filters: Network, Device Serial
- Time range: not applied (current state)
- Frame: table, one row per port
Appliance Uplink Statuses
WAN uplink status and IP addresses of each security appliance.
- Filters: Network, Device Serial
- Time range: not applied (current state)
- Frame: table, one row per uplink
VPN Stats
Site-to-site VPN latency, packet loss, jitter, MOS and usage between networks.
- Filters: Network
- Time range: applied, up to 31 days
- Frame: table, one row per peer and uplink pair
Time Range Handling
Eleven query types use the dashboard time range: Device Availabilities (with Historical Data), Device Memory Usage History, Wireless CPU Load History, Wireless Controller CPU Utilization, Appliance Performance Score, Network Events, Security Events, Wireless Client Count, Wireless Connection Stats, Wireless Latency Stats and VPN Stats.
The remaining query types report current state and ignore the time picker: Device Availabilities, Device Status Overview, Device Statuses, Power Module Statuses, Network Clients, Device Clients, Switch Port Statuses and Appliance Uplink Statuses.
When the selected range starts earlier than a query type supports, the query is rejected before it reaches Meraki and the panel explains the limit.
Error Handling and Retry Strategy
- HTTP 429 (rate limited): the plugin waits for the
Retry-Afterinterval and retries. - HTTP 5xx and network errors: retried with exponential backoff, up to 3 attempts.
- Other HTTP 4xx errors: returned immediately without retry.
- Error messages never include credentials, URLs or Meraki response text. The detail is written to the Grafana server log.
Save & test
| Condition | Message shown |
|---|---|
| Organization ID empty | Organization ID is required. |
| API Key empty | API Key is required. |
| Both empty | Organization ID and API Key are required. |
| HTTP 401 | Authentication failed. Check the configured credentials. |
| HTTP 403 | Access denied. Check the service account's permissions. |
| HTTP 429 (after retries) | Too many requests. Try again later. |
| Any other failure | Unable to connect, see Grafana logs for details. |
Queries
| Condition | Message shown |
|---|---|
| Data source not configured | Query failed, see Grafana server log for details |
| Query cancelled | The query was cancelled. |
| Request timed out | The request to Cisco Meraki timed out. Try again later or use a shorter time range. |
| TLS certificate cannot be verified | Unable to verify the Cisco Meraki TLS certificate. Check the Base URL. |
| Hostname cannot be resolved | Unable to resolve the Cisco Meraki hostname. Check the Base URL. |
| Connection refused or reset | Unable to connect to Cisco Meraki. Check the Base URL and that Grafana can reach it over the network. |
| HTTP 401 | Authentication failed. Check the configured credentials. |
| HTTP 403 | Access denied. Check the service account's permissions. |
| HTTP 404 | Cisco Meraki could not find the requested resource. Check the Base URL, Organization ID and API Key, and that the selected network or device still exists. |
| HTTP 429 (after retries) | Too many requests. Try again later. |
| Other HTTP 4xx | Cisco Meraki rejected the request. Check the query's filter values. |
| HTTP 500 | Cisco Meraki encountered an internal error. Try again later. |
| HTTP 502 / 503 / 504 | Cisco Meraki returned an invalid response / is temporarily unavailable / did not respond in time. Try again later. |
| Response cannot be read, or unexpected failure | Query failed, see Grafana server log for details |
| Unknown query type | Unsupported query type "X". Select a query type from the list. |
| Time range starts too early | Selected time range exceeds the maximum supported lookback (N days) for this query type. |
| Wireless stats window longer than 7 days | Selected time range is too wide. Meraki wireless stats support a maximum window of 7 days. |
| Performance score for a non-MX device | Performance score is only available for primary MX security appliances |
| VPN Stats without site-to-site VPN | Site-to-site VPN not enabled in your organization |
| Security Events on a network without an MX | This endpoint only supports MX networks |
Meraki returns 404, not 401, for a missing or incorrect API key in some cases. If a query shows the 404 message, check the API Key and Organization ID as well as the Base URL.
Resources Reference
| Query Type | Meraki Dashboard API endpoint | Frame type |
|---|---|---|
| Device Availabilities | /organizations/{organizationId}/devices/availabilities (/changeHistory with Historical Data) |
Table |
| Device Status Overview | /organizations/{organizationId}/devices/statuses/overview |
Table |
| Device Statuses | /organizations/{organizationId}/devices/statuses |
Table |
| Power Module Statuses | /organizations/{organizationId}/devices/powerModules/statuses/byDevice |
Table |
| Device Memory Usage History | /organizations/{organizationId}/devices/system/memory/usage/history/byInterval |
Time series |
| Wireless CPU Load History | /organizations/{organizationId}/wireless/devices/system/cpu/load/history |
Time series |
| Wireless Controller CPU Utilization | /organizations/{organizationId}/wirelessController/devices/system/utilization/history/byInterval |
Time series |
| Appliance Performance Score | /devices/{serial}/appliance/performance |
Table |
| Network Events | /networks/{networkId}/events |
Table |
| Security Events | /organizations/{organizationId}/appliance/security/events or /networks/{networkId}/appliance/security/events |
Table |
| Network Clients | /networks/{networkId}/clients |
Table |
| Device Clients | /devices/{serial}/clients |
Table |
| Wireless Client Count | /networks/{networkId}/wireless/clientCountHistory |
Time series |
| Wireless Connection Stats | /networks/{networkId}/wireless/connectionStats or /devices/{serial}/wireless/connectionStats |
Table |
| Wireless Latency Stats | /networks/{networkId}/wireless/latencyStats or /devices/{serial}/wireless/latencyStats |
Table |
| Switch Port Statuses | /organizations/{organizationId}/switch/ports/statuses/bySwitch |
Table |
| Appliance Uplink Statuses | /organizations/{organizationId}/appliance/uplink/statuses |
Table |
| VPN Stats | /organizations/{organizationId}/appliance/vpn/stats |
Table |
Included Dashboards
All six dashboards ship with auto-refresh disabled so you opt in explicitly.
Cisco Meraki - Device Status
Online, alerting, offline and dormant device counts, total, reachable and unreachable devices, a status distribution chart, device status by product type, and a device status table. Availability change analysis with status transition patterns, the devices with the most changes and the change history. A device statuses table with IP addresses and last report time, and power supplies by status with a power module table. Filtered by the Product Type variable.
Cisco Meraki - Infrastructure
Switch port totals, ports by status and a switch port table. Appliance uplink totals, active uplinks, uplinks by status and an uplink table. System resources with memory usage by device over time, peak memory by device, and the MX performance score and memory usage of a selected security appliance. Filtered by the Network and Security Appliance variables.
Cisco Meraki - Wireless & VPN
Wireless client count over time, average latency by traffic class and connection results. Site-to-site VPN latency, packet loss, MOS and peer count, latency by peer and a peer table. Access point CPU load over the last 24 hours and wireless controller CPU usage. Filtered by the Network variable.
Cisco Meraki - Network Events
Total events, unique devices and event types, events by category, and the devices, event types and client MACs with the most events, plus the full event log. Filtered by the Network and Product Type variables.
Cisco Meraki - Security Events
Total security events, events by type, the most frequent event types and a security event table. Filtered by the Network variable.
Cisco Meraki - Clients
Client totals, online clients and data sent and received for a network, the top clients by data sent and by OS, and a client table. Device client totals, the top device clients by data sent and by VLAN, and a device client table. Filtered by the Network and Device variables.
Limitations and Recommendations
Supported Time Range per Query Type
Limits follow the Cisco Meraki Dashboard API v1 documentation for each endpoint. Max lookback is how far back the selected range can start; Max window is the longest range one query can cover.
| Query Type | Max lookback | Max window | Notes |
|---|---|---|---|
| Device Availabilities | — | — | Current state; the time range is ignored |
| Device Availabilities (Historical) | 31 days | 31 days | |
| Device Status Overview | — | — | Current state; the time range is ignored |
| Device Statuses | — | — | Current state; the time range is ignored |
| Power Module Statuses | — | — | Current state; the time range is ignored |
| Device Memory Usage History | 31 days | 31 days | |
| Wireless CPU Load History | 1 day | 1 day | |
| Wireless Controller CPU Utilization | 31 days | 31 days | |
| Appliance Performance Score | 30 days | 14 days | A longer range uses its most recent 14 days |
| Network Events | — | — | Time range applied; Meraki documents no fixed limit |
| Security Events | 365 days | 365 days | |
| Network Clients | — | — | Current state: clients seen in the last day; the time range is ignored |
| Device Clients | — | — | Current state: clients seen in the last day; the time range is ignored |
| Wireless Client Count | 31 days | 31 days | |
| Wireless Connection Stats | 180 days | 7 days | |
| Wireless Latency Stats | 180 days | 7 days | |
| Switch Port Statuses | — | — | Current state; the time range is ignored |
| Appliance Uplink Statuses | — | — | Current state; the time range is ignored |
| VPN Stats | 31 days | 31 days |
Recommendations
- Rate limit: Meraki allows 10 requests per second per organization. This budget is shared with every other API client of the organization. Dashboards with many panels and short refresh intervals can reach it; keep refresh off or no faster than 1 minute.
- Device coverage: the Appliance Performance Score is reported only for primary MX appliances, and Wireless Controller CPU Utilization only for wireless LAN controllers.
- Large organizations: paginated endpoints return every page, so queries over large organizations or long time ranges may take several seconds.
Support
For issues, questions or feature requests, contact grafanalabs.integrations@crestdata.ai.
Authors and Acknowledgment
Developed by Crest Data.
License
This plugin is distributed under EULA License. See the LICENSE file for details.
References
Grafana Cloud
Connect any plugin in Grafana Cloud.
- 150+ data source integrations
- Grafana Assistant - AI that correlates your data, builds queries, and answers questions
- 10k Prometheus metrics + 50 GB logs, traces, and profiles on the free tier
- ...and more
Insights
- Adoption
Running on 21 active Grafana instances.
- Activity
Last updated 22 Oct 2026.
3 releases in the past year.
- Queries
157 total queries served across all Grafana Cloud instances.
- Version
- 1.1.0
- Dependencies
- Grafana >=12.0.0
- Developer
- crestdata
Grafana Cloud
Connect any plugin in Grafana Cloud.
- 150+ data source integrations
- Grafana Assistant - AI that correlates your data, builds queries, and answers questions
- 10k Prometheus metrics + 50 GB logs, traces, and profiles on the free tier
- ...and more