asp.net core監控—引入Prometheus(一)

Promethues

Prometheus是CNCF畢業的第二個項目,算是明星產品(可自行了解Prometheus的功能),asp.net core固然不能錯過與之配套使用。在.net中是經過prometheus.net【https://github.com/prometheus-net/prometheus-net 】引入的。
asp.net core監控—引入Prometheus(一)
上圖是用Prometheus做監控結構圖,Prometheus默認採用拉取的方式,從應用服務中把metrics數據拉取出來,以便提供給Grafana去做展現。下面經過一個例子來進行說明。一、下載Prometheus【https://prometheus.io/download/
asp.net core監控—引入Prometheus(一)
prometheus.yml是配置文件,由於採有拉模式,須要在配置文件中配置應用服務的url http://localhost:5000
asp.net core監控—引入Prometheus(一)
能夠雙擊prometheus.exe啓動了。git

Grafana

下載Grafana【https://grafana.com/grafana/download?platform=windows
asp.net core監控—引入Prometheus(一)github

asp.net core監控—引入Prometheus(一)

啓動grafana-server.exe
訪問:http://localhost:3000/用戶名密碼默認:username:admin,password:admin如今開始配置Grafana:json

配置數據源

asp.net core監控—引入Prometheus(一)
asp.net core監控—引入Prometheus(一)
asp.net core監控—引入Prometheus(一)

配置監控面板

asp.net core監控—引入Prometheus(一)
asp.net core監控—引入Prometheus(一)
asp.net core監控—引入Prometheus(一)

application

建立一個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

asp.net core監控—引入Prometheus(一)
本例是採用grafana模板10915來展現數據的,展現的信息只是請求和controller的跟蹤信息,能夠經過固定中間件來徹底收集,若是有業務方面的信息跟蹤展現,就須要開發人員根據本身的業務邏輯來展現對應的監控指標了。app

相關文章
相關標籤/搜索