中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-06-17 19:33:15 來源:網絡 閱讀:924 作者:sshpp 欄目:web開發

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

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

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

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

 

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

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

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

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

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

 

所以本文分為3個步驟

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

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

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

下面我們正式開始

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

 

 

正文

 

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 stored
  dir = "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"

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

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

[admin]
  # Determines whether the admin service is enabled.
   enabled = true

  # The default bind address used by the admin service.
   bind-address = ":8083"

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

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

influxd -config influxdb.conf

得到如圖效果:

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

我們就安裝完成了.

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

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

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

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

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

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

如圖:

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

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

  

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

然后我們安裝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的安裝配置和添加數據源

 

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

接下來就是我們的重頭戲了,在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方法,如下:

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

 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();
        }

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

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

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

 

 

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

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?}");
            });
        }

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

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

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

 最后,我們跑起來.

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

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

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

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

芮城县| 呼玛县| 扎赉特旗| 阿勒泰市| 光泽县| 天台县| 卫辉市| 汶上县| 岑溪市| 井冈山市| 高淳县| 津市市| 钦州市| 崇仁县| 上栗县| 涿鹿县| 蓝山县| 普定县| 南汇区| 永德县| 准格尔旗| 墨竹工卡县| 阿尔山市| 翁源县| 环江| 鄂尔多斯市| 日土县| 方山县| 峡江县| 壤塘县| 兰溪市| 大埔区| 焉耆| 遵义市| 清远市| 正阳县| 祁阳县| 金寨县| 梨树县| 望谟县| 广德县|