c# - 在 ASP.NET Core MVC 中使用 Prometheus 的示例项目?
问题描述
我想用 Prometheus 监控我的 ASP.NET Core MVC 应用程序。按照https://github.com/prometheus-net/prometheus-net上的说明,我设法根据需要从我的应用程序中公开了一些指标。
我以前没有使用 Prometheus 的经验,而且我通常是 C# 和 ASP.NET Core MCV 的新手。因此,我对研究示例项目很感兴趣。
在网上搜索我只找到了一些小的代码片段,但没有什么接近完成的。有人可以指导我进行此类示例项目吗?
我感兴趣的一些问题包括
- 如何暴露
/metric
端点?使用专用的MetricController
还是简单地app.UseMetricServer()
按照Startup.cs
Github 项目页面的建议添加? - 为
/metric
端点使用专用端口是最佳实践吗?如果是这样,你如何公开这个端口?(UseMetricServer
似乎不接受端口) - 添加指标的最佳方式是什么?例如,如果我想在我的应用程序中计算对特定端点的调用次数,是否应该简单地在控制器中为该特定路由添加计数逻辑?或者有更好的方法吗?
解决方案
我在这里写了一些例子:https ://github.com/PrometheusClientNet/Prometheus.Client.Examples
但是,我使用自己的 fork:https ://github.com/PrometheusClientNet/Prometheus.Client 。
您可以适应原始库,也可以使用我的。
你的问题:
这是您的选择。我更喜欢对 Web 使用中间件(https://github.com/PrometheusClientNet/Prometheus.Client.AspNetCore ),对控制台使用MetricServer(https://github.com/PrometheusClientNet/Prometheus.Client.MetricServer )
最好的方法是使用
/metrics
与应用程序相同的端口。如果这是不可能的,那么我需要详细信息您可以使用我的库:https ://github.com/PrometheusClientNet/Prometheus.Client.HttpRequestDurations 。或者只是从我的存储库中获取代码。
推荐阅读
- python - 设置 Beeware:我无法在激活的 venv 中创建 JAR 支持文件
- reactjs - 无法将照片从 React Native 发送到 Cloudinary
- c++ - 从控制台将输入作为段落
- python-3.x - 在安装的不同文件夹中使用 python 程序中的 python 库 (Biopython)
- android - Retrofit - 转换 Json 响应以使用 Room 轻松存储数据
- python - 从 rpy2 数据帧到 pandas 数据帧的转换不适用于字符串类型的列
- android - Android:以编程方式制作图像并将其保存到位图的最佳方法?
- java - 使用 Eclipse 获取 NoClassDefFoundError -> com/sun/jna/platform/win32/Psapi
- css - 如何在烧瓶应用程序中将 css 添加到 remember_me?
- arrays - 将更新的数组数据传递给 uipickerview