<em id="3iliw"></em>
  • <progress id="3iliw"></progress>
  • <tbody id="3iliw"><pre id="3iliw"></pre></tbody><dd id="3iliw"><noscript id="3iliw"></noscript></dd>

    <progress id="3iliw"></progress>

    杭州.net培訓
    達內杭州.net培訓中心

    13175137725

    如何對ASP.NET Core進行實時性能監控

    • 時間:2018-04-24 17:12
    • 發布:杭州.NET培訓
    • 來源:知識庫

    一 配置ASP.NET Core應用程序

    假設你熟悉ASP.NET Core。如果不熟悉ASP.NET Core,請查閱ASP.NET Core入門教程。

    https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc

    1.安裝nuget包

    App.Metrics 1.3.0

    App.Metrics.Extensions.Mvc 1.2.0

    App.Metrics.Formatters.Json 1.2.0

    App.Metrics.Extensions.Middleware 1.2.0

    注意,當前版本為1.3.0,后面的代碼均基于此版本進行編寫。

    2.注冊服務

    public void ConfigureServices(

    IServiceCollection services)

    {

    services.AddMetrics()

    .AddHealthChecks()

    .AddJsonSerialization()

    .AddMetricsMiddleware(options => options

    .IgnoredHttpStatusCodes = ew [] {404});

    services.AddMvc(options => options

    .AddMetricsResourceFilter());

    }

    3.注冊中間件

    public void Configure(

    IApplicationBuilder app, 

    IHostingEnvironment env, 

    ILoggerFactory loggerFactory)

    {

    loggerFactory

    .AddConsole(Configuration

    .GetSection("Logging"));

    app.UseMetrics();

    app.UseMvc();

    }

    配置完畢。按F5查看App Metrics通過中間件提供的以下幾個URL。

    1 /ping 

    應用程序需要負載均衡時有用,返回pong。

    2 /health 

    執行所有注冊的健康檢查,并將檢查結果通過JSON格式返回。

    3./metrics 

    獲取應用程序指標的快照,并將測量結果通過JSON格式返回。

    如,執行/health:

    {  

    "degraded": {},  

    "healthy": {   

    "apdex Score": "Satisfied. Score 1"  

    },  

    "ignored": {},  

    "status": "Healthy",  

    "timestamp": "2017-07-23T17:45:33.2258Z",  

    "unhealthy": {} 

    }

    如,執行/metrics

    {  

    "timestamp": "2017-07-23T17:46:19.5907999Z",  

    "environment": {    

    "machineName": "DESKTOP-X",    

    "processName": "dotnet",    

    "os": "Windows",    

    "osVersion": "10.0.14393",    

    "cpuCount": "4",    

    "hostName": "DESKTOP-X",    

    "localTime": "2017-07-24T01:46:19.5907+08:00",    

    "entryAssemblyName": "WebApplication7",    

    "entryAssemblyVersion": "1.0.0.0"  

    }

    ... ...

    {          

    "name": "Transactions Per Endpoint|route:GET",          

    "unit": "req",          

    "activeSessions": 0,          

    "count": 0,          

    "durationUnit": "ms",          

    "histogram": {            

    "lastValue": 0.0,            

    "max": 0.0,            

    "mean": 0.0,            

    "median": 0.0,            

    "min": 0.0,            

    "percentile75": 0.0,            

    "percentile95": 0.0,            

    "percentile98": 0.0,            

    "percentile99": 0.0,            

    "percentile999": 0.0,            

    "sampleSize": 0,           

    "stdDev": 0.0,            

    "sum": 0.0          

    },          

    "rate": {            

    "fifteenMinuteRate": 0.0,            

    "fiveMinuteRate": 0.0,            

    "meanRate": 0.0,            

    "oneMinuteRate": 0.0          

    },          

    "rateUnit": "min",          

    "tags": {            

    "route": "GET",            

    "app": "WebApplication7",           

    "server": "DESKTOP-CF8UFG7",           

    "env": "release"          

    }        

    }

    }

    為了將度量指標可視化,我們可以把應用程序的指標推送到InfluxDB中,并使用Grafana進行實時分析。

    我們先設置InfluxDB。

    二 安裝InfluxDB

    1.下載

    influxdb當前版本1.3.1,支持Windows 64-bit。

    官方下載地址

    https://dl.influxdata.com/influxdb/releases/influxdb-1.3.1_windows_amd64.zip

    2.配置

    假如解壓至C:\influxdb-1.3.1-1。

    編輯C:\influxdb-1.3.1-1\influxdb.conf文件。

    [meta]

    dir = "C:/influxdb/meta"

    [data]

    dir = "C:/influxdb/data"

    wal-dir = "C:/influxdb/wal"

    [http]

    enabled = true

    bind-address = ":8086"

    3.運行服務端

    influxd.exe -config influxdb.conf

    4.運行客戶端

    influx.exe

    顯示數據庫列表

    show databases;

    新建一個數據庫

    create database netcoresample;

    命令類似mysql。

    注,1.3.1版本的客戶端運行命令時,如果出現“There was an error writing history file: open : The system cannot find the file specified.”,那么可以在influx.exe之前,執行“set home=C:\influxdb-1.3.1-1”。

    InfluxDB安裝完畢,我們創建了一個新的數據庫netcoresample。后續的配置中我們將使用這個數據庫。

    三 安裝Grafana

    1.下載、解壓、執行

    Grafana當前版本4.4.1,支持Windows 64-bit。

    官方下載地址

    https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.1.windows-x64.zip

    解壓至C:\grafana-4.4.1,執行.\bin\grafana-server.exe。

    grafana服務默認監聽端口3000。

    http://localhost:3000

    2.配置數據源

    進入http://localhost:3000,添加一個數據源。

    選擇類型為influxDB,數據庫填寫剛剛創建的數據庫netcoresample。點擊“Add”進入下一步。

    點擊“Save  & Test”進行測試。連接成功說明InfluxDB服務運行正常。

    3.下載App Metrics儀表盤配置文件

    grafana.com提供App Metrics儀表盤配置文件可供下載。

    https://grafana.com/dashboards/2125

    打開并下載,存儲為app-metrics-web-monitoring-influxdb_rev3.json文件。

    4.導入App Metrics儀表盤配置文件

    打開grafana http://localhost:3000,導入app-metrics-web-monitoring-influxdb_rev3.json文件。

    開始上傳配置文件,然后導入。

    grafana安裝和配置工作完畢,可視化效果如下。

    此時沒有任何指標數據,因為InfluxDB數據庫中還沒有任何數據進來。

    接下來,我們配置應用程序,將指標數據推送到InfluxDB中。

    四 配置InfluxDB報表

    1.安裝nuget包

    App.Metrics.Extensions.Reporting.InfluxDB 1.2.0

    2.注冊服務

    public void ConfigureServices(

    IServiceCollection services)

    {

    var database = "netcoresample";

    var uri = new Uri("http://127.0.0.1:8086");

    services.AddMetrics(options =>

    {

    options.WithGlobalTags((globalTags, info) =>

    {

    globalTags.Add("app", info.EntryAssemblyName);

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

    services.AddMvc(options => options

    .AddMetricsResourceFilter());

    }

    3.注冊中間件

    public void Configure(

    IApplicationBuilder app, 

    IHostingEnvironment env,

    ILoggerFactory loggerFactory, 

    IApplicationLifetime lifetime)

    {

    loggerFactory.AddConsole(Configuration

    .GetSection("Logging"));

    app.UseMetrics();

    app.UseMetricsReporting(lifetime);

    app.UseMvc();

    }

    預約申請免費試聽課

    怕錢不夠?就業掙錢后再付學費!    怕學不會?從入學起,達內定制課程!     擔心就業?達內多家實踐企業供你挑選!

    上一篇:持續進化的.NET
    下一篇:自學.NET這些書你應該看
    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    江西省

    貴州省

    廣西省

    海南省

    国拍自产亚洲 2019国拍自产在线,国拍自产亚洲,国产a在线不卡 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>