gpt4 book ai didi

.net - 我的 dotnet core Web 服务可以计算对其进行的调用次数吗?

转载 作者:行者123 更新时间:2023-12-03 04:50:45 24 4
gpt4 key购买 nike

我有一个 dotnet core 1.1 Web API。我知道有人正在跟踪对其进行的调用次数,因为它托管在 Azure 中,我可以在该应用程序的概述页面上看到它的图表。

我想要做的是在 API 中拥有某种/stats 端点,它将报告对 API 的调用次数、HTTP-200 返回的数量以及非 200 返回的数量。

是否有内置方法可以从同一 API 的 Controller 内部获取这些数据?我的意思是,我可以创建一个中间件,在调用“await _next.Invoke(context)”之前增加计数器,但看起来我正在重新发明轮子。

对此有何想法?

Edit: I know (hat tip Danny Chen) that with Application Insights I can get this information from Azure console. I'd settle for being able to query Azure for that programmatically... Basically I want to be able to use this data in Zabbix or other system as well as Azure console.

最佳答案

Application Insights正是您想要的,实际上不仅仅是“计算失败响应”。您想要的功能可以使用 profiler 来实现。

更新由于您在不同的云平台中部署了应用程序并希望从第三个应用程序“获取数据”,因此您有两种选择:

解决方案1:在不修改应用程序的情况下,向云平台添加无服务器触发器。对于 Azure,请使用 Functions 。对于 AWS,请使用 Lambda 。好处是您不需要修改应用程序,这意味着您的 Web 应用程序专注于业务。让专业人士进行监控。 “缺点”是您需要为不同的云平台添加不同的实现,在我看来,这并没有那么糟糕,因为这是一项一次性工作,而且我们在世界上只有少数云提供商。

解决方案2(不推荐):向您的Web应用程序添加中间件,计算该中间件中的请求并使其数据可由Zabbix访问(例如Web API)。它是“平台兼容”的,但是如果有一个新功能说“统计旧版本 api 的请求数”怎么办?现在去修改代码,然后重新部署您的应用程序!哦,中间件有错误吗?天哪,整个应用程序都受到影响...

关于.net - 我的 dotnet core Web 服务可以计算对其进行的调用次数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46229605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com