Channel Utilization Endpoint

Solved
Prodrick
Building a reputation

Channel Utilization Endpoint

In this endpoint, I wonder if there might be a standard regarding wifi0, wifi1, wifi2..., i.e. is wifi0 always 2.4 GHz, wifi1 always 5 GHz, and wifi2 always 6 GHz, or does it depend on the Access Point model?  Thanks

https://api.meraki.com/api/v1/networks/:networkId/networkHealth/channelUtilization

Example payload from https://documenter.getpostman.com/view/897512/SzYXYfmJ#fa882a45-0dad-4576-b9ee-eb803e109721


[
{
"serial": "Q234-ABCD-5678",
"model": "MR34",
"tags": " recently-added ",
"wifi0": [
{
"startTime": "2018-10-09T22:18:27Z",
"endTime": "2018-10-09T22:19:27Z",
"utilizationTotal": 33.84,
"utilization80211": 32,
"utilizationNon80211": 1.84
},
{
"startTime": "2018-10-09T22:19:27Z",
"endTime": "2018-10-09T22:20:27Z",
"utilizationTotal": 33.85,
"utilization80211": 32.01,
"utilizationNon80211": 1.84
},
{
"startTime": "2018-10-09T22:20:27Z",
"endTime": "2018-10-09T22:21:27Z",
"utilizationTotal": 34.89,
"utilization80211": 33.48,
"utilizationNon80211": 1.41
}
],
"wifi1": [
{
"startTime": "2018-10-09T22:18:27Z",
"endTime": "2018-10-09T22:19:27Z",
"utilizationTotal": 33.84,
"utilization80211": 32,
"utilizationNon80211": 1.84
},
{
"startTime": "2018-10-09T22:19:27Z",
"endTime": "2018-10-09T22:20:27Z",
"utilizationTotal": 33.85,
"utilization80211": 32.01,
"utilizationNon80211": 1.84
},
{
"startTime": "2018-10-09T22:20:27Z",
"endTime": "2018-10-09T22:21:27Z",
"utilizationTotal": 34.89,
"utilization80211": 33.48,
"utilizationNon80211": 1.41
}
]
}
]

1 Accepted Solution
John-K
Meraki Employee
Meraki Employee

To answer your question: The radio index is often (but not necessarily always) 0 for 2.4, 1 for 5, and 2 for either a fixed 6 or flex 5/6-capable radio.

 

Ironically, the endpoint you mentioned probably isn't your best friend for answering your actual question.

 

Have you looked at these? All of these are much more explicit and AFAIC better suited to most if not all use cases regarding spectrum utilization.

 

https://developer.cisco.com/meraki/api-v1/#!get-average-channel-utilization-for-all-bands-in-a-netwo...

https://developer.cisco.com/meraki/api-v1/#!get-average-channel-utilization-across-all-bands-for-all...

 

https://developer.cisco.com/meraki/api-v1/#!get-a-time-series-of-average-channel-utilization-for-all...

https://developer.cisco.com/meraki/api-v1/#!get-a-time-series-of-average-channel-utilization-for-all...

 

View solution in original post

9 Replies 9
PhilipDAth
Kind of a big deal
Kind of a big deal

I don't know the answer.

 

I'm guessing they refer to the physical radios - radio0, radio1, etc.  If this is the case, it might get very tricky with the 9100 APs, as they have software-defined radios.  It should be possible (for example) to have all three of their radios operating on a single band (using different frequencies of course).

John-K
Meraki Employee
Meraki Employee

To answer your question: The radio index is often (but not necessarily always) 0 for 2.4, 1 for 5, and 2 for either a fixed 6 or flex 5/6-capable radio.

 

Ironically, the endpoint you mentioned probably isn't your best friend for answering your actual question.

 

Have you looked at these? All of these are much more explicit and AFAIC better suited to most if not all use cases regarding spectrum utilization.

 

https://developer.cisco.com/meraki/api-v1/#!get-average-channel-utilization-for-all-bands-in-a-netwo...

https://developer.cisco.com/meraki/api-v1/#!get-average-channel-utilization-across-all-bands-for-all...

 

https://developer.cisco.com/meraki/api-v1/#!get-a-time-series-of-average-channel-utilization-for-all...

https://developer.cisco.com/meraki/api-v1/#!get-a-time-series-of-average-channel-utilization-for-all...

 

Prodrick
Building a reputation

Hi, @John-K and thanks for this.  We have been trying to migrate from using this endpoint so we can mitigate total API calls and organize data by channel rather than wifi interface.  However, we have tried it against multiple Meraki Orgs and it either doesn't return at all using shortest interval 300s or has a 502 bad gateway error after discovering a few pages.

Endpoint we've been testing:

https://developer.cisco.com/meraki/api-v1/get-organization-wireless-devices-channel-utilization-hist...

This is an example response (i replaced the actual OrgID with 123456).  Does this make sense?

 

 
java.net.ProtocolException: Server returned HTTP code 502 for https: //n399.meraki.com/api/vi/organizations/123456/wireless/devices/ChannelUtilization/history/byDevice/ byInterval?interval=300&perPage=10006startingAfter=2023-08-02T17%350%3A00Z%2SerialNumber




Hi @Prodrick I'm glad to hear you got a chance to use these endpoints, but sorry to hear there were some errors or empty responses. I recommend removing the serial # from your post for privacy purposes.

 

In both cases, i.e. no data for timespan 300 and 502 errors on some pages, this could be the result of a bug. You should feel confident to report it to Meraki Support for triage.

Prodrick
Building a reputation

Thanks and I sanitized my post 🙂 

Prodrick
Building a reputation

Hi @John-K I wonder if you might provide a screenshot of a working example of this endpoint (not what's shown in the API docs as the example output):

https://developer.cisco.com/meraki/api/get-organization-wireless-devices-channel-utilization-by-devi...

We haven't been able to get it to work, and maybe there is a simple reason (perhaps syntax).  The use case is orgs with thousands of APs, where we want to get the utilization for each AP by band, i.e. 2.4, 5, 6.

Thanks

Sure, although the example is correct. If you are having an issue using it with your organization, please do open a support case.

 

GET https://api.meraki.com/api/v1/organizations/:organizationId/wireless/devices/channelUtilization/byDe...

 

[
    {
        "serial": "actual AP serial",
        "mac": "actual AP MAC",
        "byBand": [],
        "network": {
            "id": "actual network ID"
        }
    },
    {
        "serial": "actual AP serial",
        "mac": "actual AP MAC",
        "network": {
            "id": "actual network ID"
        },
        "byBand": [
            {
                "band": "2.4",
                "wifi": {
                    "percentage": 18.48
                },
                "nonWifi": {
                    "percentage": 1.55
                },
                "total": {
                    "percentage": 20.03
                }
            },
            {
                "band": "5",
                "wifi": {
                    "percentage": 1.82
                },
                "nonWifi": {
                    "percentage": 0.19
                },
                "total": {
                    "percentage": 2.01
                }
            }
        ]
    },
    {
        "serial": "actual AP serial",
        "mac": "actual AP MAC",
        "network": {
            "id": "actual network ID"
        },
        "byBand": [
            {
                "band": "2.4",
                "wifi": {
                    "percentage": 40.78
                },
                "nonWifi": {
                    "percentage": 2.56
                },
                "total": {
                    "percentage": 43.34
                }
            },
            {
                "band": "5",
                "wifi": {
                    "percentage": 14.83
                },
                "nonWifi": {
                    "percentage": 0.52
                },
                "total": {
                    "percentage": 15.35
                }
            },
            {
                "band": "6",
                "wifi": {
                    "percentage": 0.41
                },
                "nonWifi": {
                    "percentage": 0.12
                },
                "total": {
                    "percentage": 0.53
                }
            }
        ]
    },
    {
        "serial": "actual AP serial",
        "mac": "actual AP MAC",
        "network": {
            "id": "actual network ID"
        },
        "byBand": [
            {
                "band": "2.4",
                "wifi": {
                    "percentage": 20.63
                },
                "nonWifi": {
                    "percentage": 7.13
                },
                "total": {
                    "percentage": 27.76
                }
            },
            {
                "band": "5",
                "wifi": {
                    "percentage": 13.01
                },
                "nonWifi": {
                    "percentage": 0.77
                },
                "total": {
                    "percentage": 13.78
                }
            },
            {
                "band": "6",
                "wifi": {
                    "percentage": 0.22
                },
                "nonWifi": {
                    "percentage": 0.05
                },
                "total": {
                    "percentage": 0.27
                }
            }
        ]
    },
    {
        "serial": "actual AP serial",
        "mac": "actual AP MAC",
        "network": {
            "id": "actual network ID"
        },
        "byBand": [
            {
                "band": "2.4",
                "wifi": {
                    "percentage": 41.99
                },
                "nonWifi": {
                    "percentage": 6.26
                },
                "total": {
                    "percentage": 48.25
                }
            },
            {
                "band": "5",
                "wifi": {
                    "percentage": 2.79
                },
                "nonWifi": {
                    "percentage": 0.11
                },
                "total": {
                    "percentage": 2.9
                }
            }
        ]
    }
]

 

 

Prodrick
Building a reputation

Thanks @John-K . Today, I tested this with two different orgs and it is working as you stated. I really appreciate your timely response (as always).

 

curl -L --request GET \
--url 'https://api.meraki.com/api/v1/organizations/[Org ID Here]/wireless/devices/channelUtilization/byDevice?timespan=840&interval=600' \
--header 'Authorization: Bearer [API Key Here]' \
--header 'Accept: application/json'

Glad it hear it! Thanks for the confirmation.

Get notified when there are additional replies to this discussion.