About the data
Meraki DataMagic is a Datamart for Meraki data. It is designed to provide a simple, easy to use interface to allow you to view your Meraki data in a way that is meaningful to you. The data is stored in an SQL database dedicated to your Tenant, containing information about one or more Meraki Organizations, and is continually updated. You can use the built in tools or your own to view the data.
Though most of the data in the Datamart is "current", we also offer a cost-effective monitoring solution to provide a historic view. Contact us via the Feedback link in the top right for more information.
However you consume the data, this page will give you an overview of:
Data hierarchy
The basic data hierarchy is as follows:
Eoxes
EoX stands for "End of Life/Sale/Support". When a Meraki device reaches its EoX date, it is no longer supported by Meraki.
Mac Vendors
MAC addresses have two main parts: the OUI (Organizationally Unique Identifier) and the NIC (Network Interface Controller). The OUI is stored in the first bits of the MAC address (normally the first three bytes), and identifies the manufacturer of the device. The NIC is the rest of the MAC address, and is unique to the device.
In order to show the manufacturer of a device, Meraki DataMgic uses a table of MAC Vendors. This is your own Tenant's list, with a recent list being provided on Tenant creation. Tenant Admins can update this list via the Admin menu.
Certain MAC vendors may be more important to you than others. You can mark a vendor as a "Preferred Vendor" in the MAC Vendors table by setting its MAC priority. You can later use this to filter your data views.
Organizations
An Organization is the top level of the Meraki hierarchy. You can add as many Organizations as you like to your Tenant - there is no limit and no additional cost to doing so. This is useful if you have multiple Meraki accounts, you are a Managed Service Provider, or if you want to separate your data for any other reason.
Field | Type | Purpose | Description |
---|---|---|---|
Id | GUID | Primary Key | |
Created | DateTimeOffset | Property | When this record was first created. |
LastModified | DateTimeOffset | Property | When this record was last modified. |
IsEnabled | bool | Property | Whether to collect data for this Organization. You can temporarily disable data collection at any time by setting this value to false in the Admin | Organizations page. |
MerakiId | string | Property | The Meraki ID, as shown at the bottom of the page in the Meraki Dashboard. |
ApiNode | string | Property | The API node (shard) for this Organization. Auto-discovered by Meraki DataMagic |
ApiKeyEncrypted | string | Property | The salted, encrypted API key that you provided when configuring the Organization in the Admin | Organizations page. We do not provide the decryption key. |
ApiKeySalt | string | Property | The salt used to encrypt the API key. |
Name | string | Property | The organization name. Though this is auto-discovered when you first add the Organization, you can override this value in the Admin | Organizations page. |
Url | string | Property | The Url for the Organization in the Meraki Dashboard. |
ChangeLogRetentionHours | int | Property | The number of hours that the change log entries will be kept before being deleted. This value has an upper limit set by your subscription. |
NetworkEventMaxAgeDays | int | Property | The number of days that network events will be kept before being deleted. This value has an upper limit set by your subscription. |
SamlConsumerUrl | Uri? | Property | The SAML consumer URL for single sign-on. |
EventLogLastEventAt | DateTimeOffset | Property | The DateTime of the last observed Change Log event. |
ConfigurationChangeLastObservedAt | DateTimeOffset? | Property | The DateTime of the last observed Change Log event (duplicate of the previous value). |
NetworkClientDescriptionStorageMode | string | Property | One of Unencrypted, Encrypted, Hashed or Redacted. |
NetworkClientMacStorageMode | string | Property | One of Full, Aggregated or Redacted. |
NetworkAllowFunction | string | Property | This field is an NCalc that can be used to determine whether to collect data for any given Network and can be set in the Admin | Organizations screen. For example, you may choose to only collect data for networks with a particular Tag. |
NetworkGroupFunction | string | Property | This field is an NCalc that can be used to determine each Network's Group. For example, you may choose to group Networks based on its name or a specific Tag. |
StatNetworkCount | int | Property | The total number of networks in this Organization. |
StatNetworkLoopIndex | int | Property | The total number of loops around the Network round robin since last system upgrade/restart. |
StatNetworkIndex | int | Property | The current, zero-indexed position in the current network round robin. |
StatNetworkSuccessCount | int | Property | The number of successful network data fetches within the current round robin. |
StatNetworkWarningCount | int | Property | The number of warnings associated with network data fetches with within the current round robin. |
StatNetworkErrorCount | int | Property | The number of errors associated with network data fetches with within the current round robin. |
StatPrioritizedNetworkQueueLength | int | Property | For future use. |
StatPriorityNetworkQueueDelaySeconds | int | Property | For future use. |
StatNetworkApiTotalRequestCount | int | Property | The total number of API calls relating to network data collection within the current round robin. |
StatNetworkApiBackOffCount | int | Property | The total number of 429 response codes received for API calls relating to network data collection within the current round robin. |
StatDeviceCount | int | Property | The total number of Devices in this Organization. |
StatDeviceLoopIndex | int | Property | The total number of loops around the Device round robin since last system upgrade/restart. |
StatDeviceIndex | int | Property | The current, zero-indexed position in the current Device round robin. |
StatDeviceSuccessCount | int | Property | The number of successful Device data fetches within the current round robin. |
StatDeviceWarningCount | int | Property | The number of warnings associated with Device data fetches with within the current round robin. |
StatDeviceErrorCount | int | Property | The number of errors associated with Device data fetches with within the current round robin. |
StatPrioritizedDeviceQueueLength | int | Property | For future use. |
StatPriorityDeviceQueueDelaySeconds | int | Property | For future use. |
StatDeviceApiTotalRequestCount | int | Property | The total number of API calls relating to Device data collection within the current round robin. |
StatDeviceApiBackOffCount | int | Property | The total number of 429 response codes received for API calls relating to Device data collection within the current round robin. |
Networks | Collection[Network] | Incoming FK | Networks referencing this organization. |
ConfigurationTemplates | Collection[ConfigurationTemplate] | Incoming FK | ConfigurationTemplates referencing this organization. |
ConfigurationChanges | Collection[ConfigurationChange] | Incoming FK | ConfigurationChanges referencing this organization. |
OrganizationStats | Collection[OrganizationStat] | Incoming FK | OrganizationStats referencing this organization. |
OrganizationMacVendorPriorities | Collection[OrganizationMacVendorPriority] | Incoming FK | OrganizationMacVendorPriorities referencing this organization. |
Configuration Changes
Configuration Changes are the changes made to a Organizations's configuration and can only be performed by Meraki Dashboard users with Admin rights. DataMagic tracks these and stores them in the ConfigurationChanges table.
Configuration Templates
Configuration Templates are used to apply a common configuration to multiple networks. They are created in the Meraki Dashboard and can only be created by Meraki Dashboard users with Admin rights. DataMagic tracks these and stores them in the ConfigurationTemplates table.
Network Event Types
Network Event Types are the types of events that can occur on a network. DataMagic will automatically add new Network Event Types to the table when it observes them.
Network Groups
Network Groups are used to group networks together. They are controlled by an Organization's NetworkGroupFunction. DataMagic does NOT store these in a dedicated NetworkGroups table, as they are dynamically created by the NetworkGroupFunction as each network is processed by the round robin.
Networks
An Organization contains one or more Networks, which can be grouped together in Network Groups. Network groups are calculated by Meraki DataMagic, and can be based on Network Name or tags you have assigned to your Networks. Additionally, there is a special group called "Unassigned" which contains Devices that are not assigned to a Network.
Field | Type | Purpose | Description |
---|---|---|---|
Id | GUID | Primary Key | |
Created | DateTimeOffset | Property | When this record was first created. |
LastModified | DateTimeOffset | Property | When this record was last modified. |
OrganizationId | GUID | Link | ...to the Organizations table. |
ConfigurationTemplateId | GUID? | Link | ...to the ConfigurationTemplates table if a Configuration Template is in use. |
MerakiConfigurationTemplateId | string? | Property | The Meraki ConfigurationTemplate ID if a Configuration Template is in use. |
EnrolmentString | string? | Property | The enrolment string. |
IsBoundToConfigTemplate | bool? | Property | Whether the network is bound to a Configuration Template. |
MerakiId | string | Property | The Meraki Network ID. |
Name | string | Property | The name. |
Group | string | Property | The calculated Network Group Name. See the Organizations table for more details. |
Notes | string | Property | The notes. |
ProductTypes | string | Property | The types of associated product. |
Tags | string | Property | The tags. |
TimeZone | string | Property | The Time Zone. |
Url | string | Property | The Url for this Network in the Meraki Dashboard. |
WirelessConnectionsLastHourAssoc | long | Property | For Access Points, the number of failed associations in the full hour previous to Meraki DataMagic's last update. |
WirelessConnectionsLastHourAuth | long | Property | For Access Points, the number of failed authentications in the full hour previous to Meraki DataMagic's last update. |
WirelessConnectionsLastHourDhcp | long | Property | For Access Points, the number of failed DHCP requests in the full hour previous to Meraki DataMagic's last update. |
WirelessConnectionsLastHourDns | long | Property | For Access Points, the number of failed DNS provisions in the full hour previous to Meraki DataMagic's last update. |
WirelessConnectionsLastHourSuccess | long | Property | For Access Points, the number of clients to successfully attach in the full hour previous to Meraki DataMagic's last update. |
WirelessConnectionsLastHourTotal | long | Property | For Access Points, the number of clients to attempt to attach in the full hour previous to Meraki DataMagic's last update. |
Channel0UtilizationWifiPercent | double | Property | For Access Points, percentage channel 0 wifi utilization. |
Channel0UtilizationNonWifiPercent | double | Property | For Access Points, percentage channel 0 non-wifi utilization. |
Channel0UtilizationTotalPercent | double | Property | For Access Points, percentage channel 0 total utilization. |
Channel1UtilizationWifiPercent | double | Property | For Access Points, percentage channel 1 wifi utilization. |
Channel1UtilizationNonWifiPercent | double | Property | For Access Points, percentage channel 1 non-wifi utilization. |
Channel1UtilizationTotalPercent | double | Property | For Access Points, percentage channel 1 total utilization. |
LastEventOccurredAt | DateTimeOffset? | Property | The last time an event occurred, as observed by Meraki DataMagic. |
HealthAlertCriticalCount | int | Property | The count of critical-level Health Alerts. |
HealthAlertErrorCount | int | Property | The count of error-level Health Alerts. |
HealthAlertWarningCount | int | Property | The count of warning-level Health Alerts. |
HealthAlertOtherCount | int | Property | The count of Health Alerts not labelled critical, error or warning. |
IsUnassignedNetwork | bool | Property | One network for each organization will be present to store "Unassigned" devices, i.e. those that have been claimed into the Organization Inventory, but which are not assigned to a network. |
IsActive | bool | Property | Whether the network is marked "Active" in the Meraki Dashboard. |
Devices | Collection[Device] | Incoming FK | Devices referencing this network. |
FloorPlans | Collection[FloorPlan] | Incoming FK | Floor Plans referencing this network. |
NetworkEventAggregations | Collection[NetworkEventAggregation] | Incoming FK | NetworkEventAggregations referencing this network. |
NetworkEvents | Collection[NetworkEvent] | Incoming FK | NetworkEvents referencing this network. |
NetworkClients | Collection[NetworkClient] | Incoming FK | NetworkClients referencing this network. |
WirelessFailedConnections | Collection[WirelessFailedConnection] | Incoming FK | Wireless Failed Connections referencing this network. |
ConfigurationChanges | Collection[ConfigurationChange] | Incoming FK | Configuration Changes referencing this network. |
Network Clients
A Network may contain clients, such as laptops, phones, etc. DataMagic retrieves clients from the Meraki Dashboard, and stores them in the NetworkClients table.
Network Events
A Network may contain events, such as client connections, client disconnections, etc. DataMagic retrieves events from the Meraki Dashboard as part of the robin, and stores them in the NetworkEvents table. Events are collected after a late arrival window and are written to the NetworkEvents table in batches of one hour. For this reason, the NetworkEvents table will have "missing" data for the last few hours.
Network Event Aggregations
For performance reasons, DataMagic aggregates events into NetworkEventAggregations. NetworkEventAggregations are created by the DataMagic service and are written at the same time as the Network Events.
Devices
A Network may contain devices, such as Access Points, Switches, Cameras, etc. Devices have the following fields
Field | Type | Purpose | Description |
---|---|---|---|
Id | GUID | Primary Key | |
Created | DateTimeOffset | Property | When this record was first created. |
LastModified | DateTimeOffset | Property | When this record was last modified. |
NetworkId | GUID | Link | ...to the Networks table. |
Serial | string[64] | Property | The unique serial number of the device. |
Name | string?[64] | Property | The name of the device. |
PublicIp | string?[64] | Property | The public IP address. |
PrimaryDnsIp | string?[20] | Property | The primary DNS IP address. |
SecondaryDnsIp | string?[20] | Property | The secondary DNS IP address. |
Product Type | string?[20] | Property | The product type. |
Status | string[20] | Property | The status. |
Tags | string[200] | Property | The tags, separated by spaces. |
UsingCellularFailover | bool? | Property | Whether the device is using cellular failover. |
Wan1Ip | string?[20] | Property | The IP address on the first WAN interface. |
Wan2Ip | string?[20] | Property | The IP address on the secondary WAN interface. |
ConfigurationUpdatedAt | DateTime? | Property | The last time the configuration was updated. |
GatewayIp | string?[20] | Property | The device's gateway IP address. |
IpType | string?[20] | Property | The type of IP address. |
LanIp | string?[20] | Property | The LAN management IP address. |
LastReportedAt | DateTime? | Property | The last time that the device reported in. |
Mac | string?[20] | Property | The MAC address of the device's primary interface. |
Channel0Utilization80211 | double? | Property | For wifi devices, the 802.11 Channel 0 utilization for the full hour preceding the last update. |
Channel0UtilizationNon80211 | double? | Property | For wifi devices, the non-802.11 Channel 0 utilization for the full hour preceding the last update. |
Channel0UtilizationTotal | double? | Property | For wifi devices, the total Channel 0 utilization for the full hour preceding the last update. |
Channel0LatencyBackgroundTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for background traffic for the full hour preceding the last update. |
Channel0LatencyBestEffortTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for best-effort traffic for the full hour preceding the last update. |
Channel0LatencyVideoTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for video traffic for the full hour preceding the last update. |
Channel0LatencyVoiceTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for voice traffic for the full hour preceding the last update. |
Channel1Utilization80211 | double? | Property | For wifi devices, the 802.11 Channel 0 utilization for the full hour preceding the last update. |
Channel1UtilizationNon80211 | double? | Property | For wifi devices, the non-802.11 Channel 0 utilization for the full hour preceding the last update. |
Channel1UtilizationTotal | double? | Property | For wifi devices, the total Channel 0 utilization for the full hour preceding the last update. |
Channel1LatencyBackgroundTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for background traffic for the full hour preceding the last update. |
Channel1LatencyBestEffortTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for best-effort traffic for the full hour preceding the last update. |
Channel1LatencyVideoTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for video traffic for the full hour preceding the last update. |
Channel1LatencyVoiceTrafficMeanMs | double? | Property | For wifi devices, the mean Channel 0 latency in ms for voice traffic for the full hour preceding the last update. |
IsWirelessLatencyStatsCapable | bool? | Property | For wifi devices true, otherwise false. |
BasicServiceSetCount | int | Property | The number of basic service sets. |
WirelessEthernetStatusAggregationEnabled | bool? | Property | True if wireless Ethernet status aggregation is enabled, otherwise false. |
WirelessEthernetStatusAggregationSpeedMbps | int? | Property | If wireless Ethernet status aggregation is enabled, the aggregation speed in Mbps. |
WirelessEthernetStatusPowerAcIsConnected | bool? | Property | For Access Points, whether AC power is connected. |
WirelessEthernetStatusPowerPoeIsConnected | bool? | Property | For Access Points, whether Power over Ethernet (PoE) power is connected. |
WirelessEthernetStatusPort0PoeStandard | string? | Property | For Access Points, the port 0 PoE standard in use (if any). |
WirelessEthernetStatusPort0LinkNegotiationDuplex | string? | Property | For Access Points, whether port 0 link duplex is enabled. |
WirelessEthernetStatusPort0LinkNegotiationSpeedMbps | int? | Property | For Access Points, whether port 0 link negotiation speed in Mbps. |
OrderNumber | string? | Property | The order number for the purchase of this device. |
OrderNumber | string? | Property | The order number for the purchase of this device. |
OrderNumber | DateTimeOffset? | Property | The date/time that this device was claimed into the organization. |
LicenseExpirationDate | DateTimeOffset? | Property | The date/time that this device's license will expire. |
AccessPointSsids | Collection[AccessPointSsid] | Incoming FK | AccessPointSsids referencing this device. |
DeviceHealthAlertScopes | Collection[DeviceHealthAlertScope] | Incoming FK | DeviceHealthAlertScopes referencing this device. |
DeviceHistories | Collection[DeviceHistory] | Incoming FK | DeviceHistories referencing this device. |
Ports | Collection[Port] | Incoming FK | Ports referencing this device. |
WirelessFailedConnections | Collection[WirelessFailedConnection] | Incoming FK | WirelessFailedConnections referencing this device. |
NetworkClients | Collection[NetworkClient] | Incoming FK | NetworkClients referencing this device. |
Access Point SSIDs
AccessPointSsids are the SSIDs configured on an Access Point.
Device Health Alert Scopes
DeviceHealthAlertScopes are the scopes for which a device health alert is configured.
Device Histories
DeviceHistories are the history device changes, as observed by DataMagic and will include IP address and status changes.
Ports
Ports are the ports on a device.
Wireless Failed Connections
WirelessFailedConnections are the failed wireless connections on a device.
Floor Plans
FloorPlans are the floor plans for a network. Meraki DataMagic will collect the floor plans for a network, including the floor plan image as a binary object. However, due to the size of the floor plan images, we recommend that you use the stored URL to directly retrieve the image.
Organization Stats
OrganizationStats are the statistics for an organization. Meraki DataMagic will collect the statistics for an organization, including the statistics for each network in the organization.
Users
Users are the Meraki DataMagic Users. Little information is stored about the users, other than their name, email address and DataMagic access rights. Authentication is performed using Single Sign On (SSO) via Microsoft Azure Active Directory, so no user credentials are held in this table.
Data collection
Meraki DataMagic collects data from your Meraki account on a continual basis via the Meraki Dashboard API.
At present, the Meraki API is limited in how much data it can return at any one time, and so Meraki DataMagic will make multiple calls to the API to retrieve all the data.
For example, if you have 1000 networks, in your Meraki account, Meraki DataMagic must query the data one network at a time to retrieve all the data.
Each network may require several API calls to retrieve all the data.
This can take some time, and so Meraki DataMagic must use the "Round Robin" algorithm to collect data from each Network in turn.
An organization with 1000 networks will take approximately 1 hour to collect all the data.
This means that the data in your Tenant may not be up to date.
If you need real-time data, you should use the Meraki Dashboard, which you can link to using the button wherever you see it.