博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ocelot监控
阅读量:4583 次
发布时间:2019-06-09

本文共 2949 字,大约阅读时间需要 9 分钟。

网关的作用之一,就是有统一的数据出入口,基于这个功能,我们可以在网关上配置监控,从而把所有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 OcelotGateway12 {13 public class Startup14 {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 #endregion48 49 #region 注放JWT50 var audienceConfig = Configuration.GetSection("Audience");51 //注入OcelotJwtBearer52 services.AddOcelotJwtBearer(audienceConfig["Issuer"], audienceConfig["Issuer"], audienceConfig["Secret"], "GSWBearer");53 #endregion54 //注入配置文件,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 #endregion63 app.UseOcelot().Wait();64 }65 }66 }
View Code

接下来启动AuthenticationAPI,DemoAAPI,DemoBAPI,OcelotGateway,TestClient,请求几次后,查看localhost:3000的监控页面如下:

 

《基于.net core微服务架构视频》

 http://edu.51cto.com/course/13342.html

转载于:https://www.cnblogs.com/axzxs2001/p/8005101.html

你可能感兴趣的文章
北航软院2013级C#期末考试部分考题解答
查看>>
CentOS 系统中安装 ArcGIS Server10.1 一些问题及解决
查看>>
asp.net里登陆记住密码
查看>>
【BZOJ】2190 [SDOI2008]仪仗队(欧拉函数)
查看>>
线性规划中的单纯形法与内点法(原理、步骤以及matlab实现)(一)
查看>>
简单DP【p2758】编辑距离
查看>>
Spring Data JPA:关联映射操作
查看>>
JWT入门简介
查看>>
结对编程——吐槽必应词典
查看>>
katalon系列八:Katalon Studio图片识别
查看>>
Spring操作指南-针对JDBC配置声明式事务管理(基于XML)
查看>>
sql server 调优----索引缺失
查看>>
spring + junit 测试
查看>>
.net core 无法获取本地变量或参数的值,因为它在此指令指针中不可用,可能是因为它已经被优化掉了...
查看>>
Poj2186Popular Cows
查看>>
TCP之listen&backlog
查看>>
实验室的毕业照
查看>>
核心编程答案(第六章)
查看>>
Spring 3.x jar 包详解 与 依赖关系
查看>>
java线程详解二
查看>>