Prometheus是CNCF畢業的第二個項目,算是明星產品(可自行了解Prometheus的功能),asp.net core固然不能錯過與之配套使用。在.net中是經過prometheus.net【https://github.com/prometheus-net/prometheus-net 】引入的。
上圖是用Prometheus做監控結構圖,Prometheus默認採用拉取的方式,從應用服務中把metrics數據拉取出來,以便提供給Grafana去做展現。下面經過一個例子來進行說明。一、下載Prometheus【https://prometheus.io/download/ 】
prometheus.yml是配置文件,由於採有拉模式,須要在配置文件中配置應用服務的url http://localhost:5000
能夠雙擊prometheus.exe啓動了。git
下載Grafana【https://grafana.com/grafana/download?platform=windows 】
github
啓動grafana-server.exe
訪問:http://localhost:3000/用戶名密碼默認:username:admin,password:admin如今開始配置Grafana:json
建立一個asp.net core 5.0的api項目,引進nuget包prometheus-net.AspNetCore,同時在Starup.cs的configure中添加Prometheus的中間件:windows
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "PrometheusSimpal v1")); } app.UseRouting(); //http請求的中間件 app.UseHttpMetrics(); app.UseAuthorization(); app.UseEndpoints(endpoints => { //映射監控地址爲 /metrics endpoints.MapMetrics(); endpoints.MapControllers(); }); }
啓動服務:http://loclahost:5000api
本例是採用grafana模板10915來展現數據的,展現的信息只是請求和controller的跟蹤信息,能夠經過固定中間件來徹底收集,若是有業務方面的信息跟蹤展現,就須要開發人員根據本身的業務邏輯來展現對應的監控指標了。app