asp.net core监控—引入Prometheus(一)
Prometheus是CNCF畢業(yè)的第二個(gè)項(xiàng)目,算是明星產(chǎn)品(可自行了解Prometheus的功能),asp.net core當(dāng)然不能錯(cuò)過(guò)與之配套使用。在.net中是通過(guò)prometheus.net【https://github.com/prometheus-net/prometheus-net】引入的。
上圖是用Prometheus作監(jiān)控結(jié)構(gòu)圖,Prometheus默認(rèn)采有拉的方式,從應(yīng)用服務(wù)中把metrics數(shù)據(jù)拉取出來(lái),以便提供給Grafana去作展示。下面通過(guò)一個(gè)例子來(lái)進(jìn)行說(shuō)明。
1、下載Prometheus【https://prometheus.io/download/】
prometheus.yml是配置文件,因?yàn)椴捎欣J?#xff0c;需要在配置文件中配置應(yīng)用服務(wù)的url http://localhost:5000
可以雙擊prometheus.exe啟動(dòng)了。
2、下載Grafana【https://grafana.com/grafana/download?platform=windows】
啟動(dòng)grafana-server.exe
訪問(wèn):http://localhost:3000/
用戶名密碼默認(rèn):username:admin,password:admin
現(xiàn)在開(kāi)始配置Grafana:
a、配置數(shù)據(jù)源
b、配置監(jiān)控面板
3、創(chuàng)建一個(gè)asp.net core 5.0的api項(xiàng)目,引進(jìn)nuget包prometheus-net.AspNetCore,同時(shí)在Starup.cs的configure中添加Prometheus的中間件:
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請(qǐng)求的中間件app.UseHttpMetrics();app.UseAuthorization();app.UseEndpoints(endpoints =>{//映射監(jiān)控地址為 /metricsendpoints.MapMetrics();endpoints.MapControllers();});}啟動(dòng)服務(wù):http://loclahost:5000
本例是采用grafana模板10915來(lái)展示數(shù)據(jù)的,展示的信息只是請(qǐng)求和controller的跟蹤信息,可以通過(guò)固定中間件來(lái)完全收集,如果有業(yè)務(wù)方面的信息跟蹤展示,就需要開(kāi)發(fā)人家根據(jù)自己的精力邏輯來(lái)展示了。
總結(jié)
以上是生活随笔為你收集整理的asp.net core监控—引入Prometheus(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 彭博社:中企游说政府否决英伟达收购Arm
- 下一篇: asp.net core监控—引入Pro