我正在尝试列出Azure中存在的资源的指标,如:https://github.com/Azure-Samples/monitor-dotnet-metrics-api/blob/master/Program.cs
在这里,我首先进行调用以获取资源的指标定义,并使用我正在进行调用的指标定义来获取指标。
这种方法的问题是,当我在Azure中拥有数百万的资源时,进行数百万次API调用以获取指标定义将花费很多。
有人能帮我优化这个解决方案,使其在更大的环境中工作得更好吗?
我正在尝试列出Azure中存在的资源的指标,如:https://github.com/Azure-Samples/monitor-dotnet-metrics-api/blob/master/Program.cs
在这里,我首先进行调用以获取资源的指标定义,并使用我正在进行调用的指标定义来获取指标。
这种方法的问题是,当我在Azure中拥有数百万的资源时,进行数百万次API调用以获取指标定义将花费很多。
有人能帮我优化这个解决方案,使其在更大的环境中工作得更好吗?
1条答案
按热度按时间mi7gmzs61#
是的,调用数百万个API来获取每个资源的指标定义可能会非常昂贵,尤其是在大型环境中。以下是一些可以优化的方法:
1.高速缓存:优化解决方案的一种方法是高速缓存每个资源的度量定义。获取资源的度量定义后,可以将其存储在高速缓存中并在后续请求中重用。这样,就不必反复调用API来获取同一资源的度量定义。
1.批处理:您可以发出一个批处理请求,以便一次获取多个资源的指标定义,而不是为每个资源发出一个API调用。这样,您可以减少API调用的次数并降低成本。
1.使用Azure监视器的“指标”API:Azure Monitor的指标API允许你检索资源的指标数据,而无需预先知道指标定义。这可以减少检索资源的指标数据所需的API调用数。
1.使用Azure监视器的“指标定义”API:Azure Monitor的指标定义API允许你列出资源的指标定义。你可以使用此API获取资源可用的指标列表,然后使用指标API检索特定指标的数据。这样,你可以减少检索资源数据所需的API调用次数。
1.使用Azure监视器的“自动缩放”API:Azure Monitor的自动缩放API允许你检索资源的指标数据,而不必预先知道指标定义。这可以减少检索资源的指标数据所需的API调用数。
在实施之前,用一个小样本测试解决方案的性能是很重要的,请记住,最佳方法可能取决于您的用例的特定要求。