日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core之跨平台的实时性能监控

發布時間:2023/12/4 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core之跨平台的实时性能监控 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

前面我們聊了一下一個應用程序 應該監控的8個關鍵位置.

應用程序的8個關鍵性能指標以及測量方法

最后賣了個小關子,是關于如何監控ASP.NET Core的.

今天我們就來講講如何監控它,下面上效果圖:

?

閱讀本文需要了解的相關技術與內容:

InfluxDb(分布式時序數據庫,開源)(注:分布式部分已商業化最新的分布式版本已不在開源,單例的繼續開源)

Grafana(開源的,功能齊全的度量儀表盤和圖形編輯器)

App Metrics(主角,開源的支持.NET Core的監控插件,采用管道注入的方式,對代碼的入侵性極小)

本文測試環境為Windows64位,當然 這個方案全部都可以在linux上實現(甚至windows才應該是備用方案 - -,尷尬.)

?

所以本文分為3個步驟

1.安裝InfluxDb,并創建數據庫

2.安裝Grafana,并添加相關配置

3.在ASP.NET Core中使用App Metrics

下面我們正式開始

?

?

正文

?

1.安裝InfluxDb,并創建數據庫

App.Metrics支持的庫很多,有InfluxDB、Graphite?、Prometheus.

今天我們主要已InfluxDb為例子.

首先下載,InfluxDb

知道你們懶得找..地址如下:https://portal.influxdata.com/downloads#influxdb

下載你需要的對應的系統的版本.這里我就直接下載Windows Binaries (64-bit)

linux的安裝步驟我就不多說了,網上一大把..講一下windows安裝InfluxDb的注意事項(..這玩意對liunx的支持比windows好的多)..

解壓后打開influxdb.conf,因為influxdb的默認配置全是針對linux配置的..所以我們要修改一下配置文件.

修改下面3個liunx的路徑,改為winodws路徑如下:

[meta]# Where the metadata/raft database is storeddir = "D:/influxdb/meta" [data]# The directory where the TSM storage engine stores TSM files.dir = "D:/influxdb/data" # The directory where the TSM storage engine stores WAL files.wal-dir = "D:/influxdb/wal"

然后修改網頁圖形化管理界面配置,端口如下:


[admin]# Determines whether the admin service is enabled.enabled = true# The default bind address used by the admin service.bind-address = ":8083"


最后cmd運行,進入到你的解壓目錄,執行命令:

influxd -config influxdb.conf

得到如圖效果:

我們就安裝完成了.

我們進入管理界面的監聽端口:http://localhost:8083/,會看到如下界面:

然后我們輸入SQL語句 ?CREATE DATABASE "你的庫名"

看到下圖,就是執行成功了.

我們查一下看是不是真的,輸入SQL語句:SHOW DATABASES

如圖:

除了默認的第一個庫以外,還有你自己添加的庫名,就說明是加成功了,好了,安裝就到此結束

?

?

?

?

2.安裝Grafana,并添加相關配置

然后我們安裝Grafana,

下載地址:https://grafana.com/get

我們解壓后進入bin目錄,如圖:

直接運行grafana-server.exe即可.

Grafana默認會監聽3000的端口,所以我們進入http://localhost:3000,

會讓你登陸,直接輸入本地的管理員帳戶即可,帳戶:admin ?密碼:admin,進入后如圖:

安裝完成之后,我們下載相關的儀表模版.

地址如下:https://grafana.com/dashboards/2140 ? (是個json文件)

然后我們導入我們的儀表:如圖操作即可:

然后,添加我們上面的數據源.

如圖:

選擇Add DataSource,然后操作如下:

這樣,我們就完成了Grafana的安裝配置和添加數據源

?

3.在ASP.NET Core中使用App Metrics

接下來就是我們的重頭戲了,在ASP.NET Core中使用AppMetrics.

我們隨便創建一個ASP.NET Core MVC項目,如圖:

?

?用nuget包添加引用:

核心程序:

管道注入的擴展:

ASP.NET Core MVC的擴展:

其他相關要用到的庫:(注:我們這里的數據源是influxDB所以用的這個庫,其他的庫請搜索其他庫的后綴)

我們回到我們熟悉的C#代碼,在Startup中我們編寫注入代碼如下:

首先修改ConfigureServices方法,如下:

public void ConfigureServices(IServiceCollection services){ ? ? ? ? ?
? ? ? ??
var database = "TestData"; ?
? ? ? ? ?
var uri = new Uri("http://127.0.0.1:8086");services.AddMetrics(options =>{options.GlobalTags.Add("app", "sample app");options.GlobalTags.Add("env", "stage");}).AddHealthChecks().AddJsonSerialization().AddReporting(factory =>{factory.AddInfluxDb( ? ? ? ? ? ? ? ?new InfluxDBReporterSettings{InfluxDbSettings = new InfluxDBSettings(database, uri),ReportInterval = TimeSpan.FromSeconds(5)});}).AddMetricsMiddleware(options => options.IgnoredHttpStatusCodes = new[] { 404 }); ? ? ? ? ? ?// Add framework services. ? ? ? ? ? ?services.AddMvc();}

加入我們influxDB相關配置,其中database就是你自己輸入的數據庫名.?uri就是你數據庫的地址.

然后我們需要在程序啟動的時候就注入我們的Metrics監控,所以修改Configure代碼如下:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime lifetime){loggerFactory.AddConsole(Configuration.GetSection("Logging"));app.UseMetrics();app.UseMetricsReporting(lifetime); ? ? ? ? ? ?//loggerFactory.AddDebug();if (env.IsDevelopment()){app.UseDeveloperExceptionPage();app.UseBrowserLink();} ? ? ?
? ? ? ? ? ?
else{app.UseExceptionHandler("/Home/Error");}app.UseStaticFiles();app.UseMvc(routes =>{routes.MapRoute(name: "default",template: "{controller=Home}/{action=Index}/{id?}");});}

其中app.UseMetrics(); ?app.UseMetricsReporting(lifetime) ,是我們的注入代碼..

其他的地方.不用動一絲一毫..怎么樣 是不是幾乎沒有什么入侵性~.

?最后,我們跑起來.

隨便在home中點擊幾下頁面,或者調用一下..

然后進入到Grafana的監控頁面中,就可以看到如下信息:

??寫在最后

這篇只是簡單的講了如何做到初級的監控,其實還有心跳檢測等比較多的功能,后面會慢慢來講..

.Net Core也就今年社區才慢慢起步,所這個監控也是剛剛完成,作者一直在積極的更新中.

比較遺憾的是本來這個是支持 .NET4.5.2以上的,但是由于關注的人比較少.所以就只出了RC的預覽版.對最新版支持不完善.

我也在GitHub上給作者提了Issues,https://github.com/alhardy/AppMetrics/issues/177

相關文章:?

  • 互聯網級監控系統必備-時序數據庫之Influxdb技術

  • 互聯網級監控系統必備-時序數據庫之Influxdb集群及踩過的坑

原文地址:http://www.cnblogs.com/GuZhenYin/p/7170010.html


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的ASP.NET Core之跨平台的实时性能监控的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。