Ocelot监控
網(wǎng)關(guān)的作用之一,就是有統(tǒng)一的數(shù)據(jù)出入口,基于這個功能,我們可以在網(wǎng)關(guān)上配置監(jiān)控,從而把所有web服務(wù)的請求應(yīng)答基本數(shù)據(jù)捕獲并展顯出來。
關(guān)于web的監(jiān)控,一般的做法是采集數(shù)據(jù)并保存,然后通過圖表的方式展示出來,所使用的數(shù)據(jù)庫一般是時序數(shù)據(jù)庫Graphite,InfluxDB(https://portal.influxdata.com/downloads),OpenDSDB等,本文使用的是InfluxDB,展示數(shù)據(jù)一般采用一個圖形化框架,本文用的是Grafana(https://grafana.com/get)
首先按上面鏈接下載InfluxDB和Grafana
InfluxDB下載后如下圖
關(guān)于InfluxDB的操作,有相應(yīng)的命令,可以參考官方文檔,這里不贅述,我們只在這里創(chuàng)建一個數(shù)據(jù)庫MetricsDB即可
Grafana下載后,在Bin目錄下grafana-server.exe為啟動程序,啟動即可
在瀏覽器里輸入http://localhost:3000,用戶名和密碼都是admin(進(jìn)入后可修改)
添加DataSource
添加Dashboards,可以使用導(dǎo)入https://grafana.com/dashboards/2125
點(diǎn)擊Import即可進(jìn)行圖形視圖面板
我們使用的是App.Metrics(https://www.app-metrics.io)的包來實(shí)現(xiàn)監(jiān)控
在OcelotGateway項(xiàng)目中,添加引用下面五個Nuget包
App.Metrics主包
App.Metrics.AspNetCore.Endpoints
App.Metrics.AspNetCore.Reporting
App.Metrics.AspNetCore.Tracking
App.Metrics.Reporting.InfluxDB
Startup.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Ocelot.DependencyInjection;
using Ocelot.Middleware;
using Ocelot.JWTAuthorizePolicy;
using App.Metrics;
using System;
namespace OcelotGateway
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
#region 注放Metrics?
var metrics = AppMetrics.CreateDefaultBuilder()
.Configuration.Configure(
options =>
{
options.AddAppTag("RepairApp");
options.AddEnvTag("stage");
})
.Report.ToInfluxDb(
options =>
{
options.InfluxDb.BaseUri = new Uri("http://127.0.0.1:8086");
options.InfluxDb.Database = "AppMetricsDemo";
options.InfluxDb.UserName = "admin";
options.InfluxDb.Password = "123456";
options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30);
options.HttpPolicy.FailuresBeforeBackoff = 5;
options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10);
options.FlushInterval = TimeSpan.FromSeconds(5);
})
.Build();
services.AddMetrics(metrics);
services.AddMetricsReportScheduler();
services.AddMetricsTrackingMiddleware();
services.AddMetricsEndpoints();
#endregion
#region 注放JWT
var audienceConfig = Configuration.GetSection("Audience");
//注入OcelotJwtBearer
services.AddOcelotJwtBearer(audienceConfig["Issuer"], audienceConfig["Issuer"], audienceConfig["Secret"], "GSWBearer");
#endregion
//注入配置文件,AddOcelot要求參數(shù)是IConfigurationRoot類型,所以要作個轉(zhuǎn)換
services.AddOcelot(Configuration as ConfigurationRoot);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
#region Metrics中間件
app.UseMetricsAllMiddleware();
app.UseMetricsAllEndpoints();
#endregion
app.UseOcelot().Wait();
}
}
}
接下來啟動AuthenticationAPI,DemoAAPI,DemoBAPI,OcelotGateway,TestClient,請求幾次后,查看localhost:3000的監(jiān)控頁面如下:
相關(guān)文章:
-
Ocelot——初識基于.Net Core的API網(wǎng)關(guān)
-
Ocelot API網(wǎng)關(guān)的實(shí)現(xiàn)剖析
-
微服務(wù)網(wǎng)關(guān)Ocelot
-
API網(wǎng)關(guān)Ocelot 使用Polly 處理部分失敗問題
-
談?wù)勎⒎?wù)中的 API 網(wǎng)關(guān)(API Gateway)
-
Ocelot網(wǎng)關(guān)
-
Ocelot統(tǒng)一權(quán)限驗(yàn)證
-
應(yīng)用監(jiān)控怎么做?
-
ASP.NET Core之跨平臺的實(shí)時性能監(jiān)控
-
.Net Core 2.0+ InfluxDB+Grafana+App Metrics 實(shí)現(xiàn)跨平臺的實(shí)時性能監(jiān)控
-
應(yīng)用程序的8個關(guān)鍵性能指標(biāo)以及測量方法
-
使用Metrics監(jiān)控應(yīng)用程序的性能
-
下一個計(jì)劃 : .NET/.NET Core應(yīng)用性能管理
原文:http://www.cnblogs.com/axzxs2001/p/8005101.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
- 上一篇: 用于.NET Core的ORM
- 下一篇: Visual Studio 2017的第