| |
|
![]() |
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 |
-> C# -> Ocelot监控 -> 正文阅读 |
[C#]Ocelot监控 |
网关的作用之一,就是有统一的数据出入口,基于这个功能,我们可以在网关上配置监控,从而把所有web服务的请求应答基本数据捕获并展显出来。 关于web的监控,一般的做法是采集数据并保存,然后通过图表的方式展示出来,所使用的数据库一般是时序数据库Graphite,InfluxDB(https://portal.influxdata.com/downloads),OpenDSDB等,本文使用的是InfluxDB,展示数据一般采用一个图形化框架,本文用的是Grafana(https://grafana.com/get) 首先按上面链接下载InfluxDB和Grafana InfluxDB下载后如下图 ![]() 关于InfluxDB的操作,有相应的命令,可以参考官方文档,这里不赘述,我们只在这里创建一个数据库MetricsDB即可 Grafana下载后,在Bin目录下grafana-server.exe为启动程序,启动即可 在浏览器里输入http://localhost:3000,用户名和密码都是admin(进入后可修改) 添加DataSource ![]() 添加Dashboards,可以使用导入https://grafana.com/dashboards/2125 ![]() ![]() 点击Import即可进行图形视图面板 我们使用的是App.Metrics(https://www.app-metrics.io)的包来实现监控 在OcelotGateway项目中,添加引用下面五个Nuget包 App.Metrics主包 App.Metrics.AspNetCore.Endpoints App.Metrics.AspNetCore.Reporting App.Metrics.AspNetCore.Tracking App.Metrics.Reporting.InfluxDB Startup.cs ![]() ![]() 1 using Microsoft.AspNetCore.Builder; 2 using Microsoft.AspNetCore.Hosting; 3 using Microsoft.Extensions.Configuration; 4 using Microsoft.Extensions.DependencyInjection; 5 using Ocelot.DependencyInjection; 6 using Ocelot.Middleware; 7 using Ocelot.JWTAuthorizePolicy; 8 using App.Metrics; 9 using System; 10 11 namespace OcelotGateway 12 { 13 public class Startup 14 { 15 public Startup(IConfiguration configuration) 16 { 17 Configuration = configuration; 18 } 19 public IConfiguration Configuration { get; } 20 public void ConfigureServices(IServiceCollection services) 21 { 22 #region 注放Metrics 23 var metrics = AppMetrics.CreateDefaultBuilder() 24 .Configuration.Configure( 25 options => 26 { 27 options.AddAppTag("RepairApp"); 28 options.AddEnvTag("stage"); 29 }) 30 .Report.ToInfluxDb( 31 options => 32 { 33 options.InfluxDb.BaseUri = new Uri("http://127.0.0.1:8086"); 34 options.InfluxDb.Database = "AppMetricsDemo"; 35 options.InfluxDb.UserName = "admin"; 36 options.InfluxDb.Password = "123456"; 37 options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30); 38 options.HttpPolicy.FailuresBeforeBackoff = 5; 39 options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10); 40 options.FlushInterval = TimeSpan.FromSeconds(5); 41 }) 42 .Build(); 43 services.AddMetrics(metrics); 44 services.AddMetricsReportScheduler(); 45 services.AddMetricsTrackingMiddleware(); 46 services.AddMetricsEndpoints(); 47 #endregion 48 49 #region 注放JWT 50 var audienceConfig = Configuration.GetSection("Audience"); 51 //注入OcelotJwtBearer 52 services.AddOcelotJwtBearer(audienceConfig["Issuer"], audienceConfig["Issuer"], audienceConfig["Secret"], "GSWBearer"); 53 #endregion 54 //注入配置文件,AddOcelot要求参数是IConfigurationRoot类型,所以要作个转换 55 services.AddOcelot(Configuration as ConfigurationRoot); 56 } 57 public void Configure(IApplicationBuilder app, IHostingEnvironment env) 58 { 59 #region Metrics中间件 60 app.UseMetricsAllMiddleware(); 61 app.UseMetricsAllEndpoints(); 62 #endregion 63 app.UseOcelot().Wait(); 64 } 65 } 66 } View Code 接下来启动AuthenticationAPI,DemoAAPI,DemoBAPI,OcelotGateway,TestClient,请求几次后,查看localhost:3000的监控页面如下: ![]() |
C# 最新文章 |
字符串阵列分别输出元素的索引,原值和长度 |
格式化你的字符串 |
C#宣告一个变量 |
C#中级 |
拆分一个字符串并把每个字符单独输出 |
通过手机号定位归属地 |
C# DBNULL与NULL之间的区别【转】 |
Xamarin |
List,DataTable实现行转列的通用方案 |
C# 语音识别 |
上一篇文章 下一篇文章 查看所有文章 |
|
360图书馆
软件开发
购物精选
智慧山
阅读网
日历
万年历
2021年3日历 2021/3/6 21:42:13 |
|
网站联系: qq:121756557 email:121756557@qq.com 编程知识 |