天天看點

ASP.NET Core之跨平台的實時性能監控

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

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

ASP.NET Core之跨平台的實時性能監控

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

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

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

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

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

下面我們正式開始

ASP.NET Core之跨平台的實時性能監控

正文

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路徑如下:

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

最後cmd運作,進入到你的解壓目錄,執行指令:

得到如圖效果:

ASP.NET Core之跨平台的實時性能監控

我們就安裝完成了.

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

ASP.NET Core之跨平台的實時性能監控

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

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

ASP.NET Core之跨平台的實時性能監控

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

如圖:

ASP.NET Core之跨平台的實時性能監控

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

然後我們安裝Grafana,

下載下傳位址:https://grafana.com/get

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

ASP.NET Core之跨平台的實時性能監控

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

Grafana預設會監聽3000的端口,是以我們進入http://localhost:3000,

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

ASP.NET Core之跨平台的實時性能監控

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

位址如下:ht t p s: / / g r a f a n a . c om / d a s h b oa r d s / 2 140   (是個json檔案)

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

ASP.NET Core之跨平台的實時性能監控

然後,添加我們上面的資料源.

ASP.NET Core之跨平台的實時性能監控

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

ASP.NET Core之跨平台的實時性能監控

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

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

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

ASP.NET Core之跨平台的實時性能監控

 用nuget包添加引用:

核心程式:

ASP.NET Core之跨平台的實時性能監控

管道注入的擴充:

ASP.NET Core之跨平台的實時性能監控

ASP.NET Core MVC的擴充:

ASP.NET Core之跨平台的實時性能監控

其他相關要用到的庫:

ASP.NET Core之跨平台的實時性能監控

(注:我們這裡的資料源是influxDB是以用的這個庫,其他的庫請搜尋其他庫的字尾)

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

首先修改ConfigureServices方法,如下:

加入我們influxDB相關配置,其中database就是你自己輸入的資料庫名. uri就是你資料庫的位址.

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

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

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

 最後,我們跑起來.

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

然後進入到Grafana的監控頁面中,就可以看到如下資訊:

ASP.NET Core之跨平台的實時性能監控

本文轉自 sshpp 51CTO部落格,原文連結:http://blog.51cto.com/12902932/1949362,如需轉載請自行聯系原作者