Hi PhilipDAth and thanks for the reply, Yes I have looked into those endpoints and I believe we are currently using the first one you mentioned to monitor the general status of the devices (I'm not 100% sure as it's a different script doing that and I have not worked on it for a couple of years now). The one I'm currently using are more device focused as we need some metrics that are not available from an organization wide API like: https://developer.cisco.com/meraki/api-v1/get-network-wireless-client-count-history/ https://developer.cisco.com/meraki/api-v1/get-organization-wireless-devices-channel-utilization-by-device/ https://developer.cisco.com/meraki/api-v1/get-organization-appliance-vpn-statuses/ And many other like these We currently have 35 organizations of various sizes, most of them have a few hundred devices, some even less than 100 and a couple goes as high as 1500-2000 devices. As the rate limit is as per organization, I do not have any issue with small organizations but I am testing the worst case scenario with the bigger organization. I have already reduced the frequency of Prometheus scraping and added a nginx proxy to cache results for a few minutes to reduce the number of calls actually going trough to Meraki Cloud. The nginx proxy also caches 429 replies so that a specific request that got rate limited will not get to the Cloud again for a few minutes, the issue is that the script waits on rate limit even if it's trying it only one time and thus it could directly give up and raise the APIError, thus Prometheus is going into timeout and discarding all data anyway. Regarding the asyncio or standard blocking io, that is a bit over my understanding to be honest so I could be wrong but I'm using uvicorn to expose the http port on which the exporter is served to Prometheus and it can manage multiple request for multiple devices at the same time; the execution of API calls for a given device instead are blocking as I only do one at a time and in order. I hope this gives some more details. Thanks, Gianluca
... View more