与有权重网站做友链,建个免费的销售网站好,学院网站建设管理制度,中山 网站制作在日常系统工作中#xff0c;我们为了洞察系统的问题和运作情况通常会记录日志的方式来进行分析#xff0c;但是在很多情况下都是被动的在出问题后才会去查日志。在很多时候#xff0c;我们可能更需要相对实时的了解整个系统或者某一时段的运行的情况#xff0c;诸如系统出… 在日常系统工作中我们为了洞察系统的问题和运作情况通常会记录日志的方式来进行分析但是在很多情况下都是被动的在出问题后才会去查日志。在很多时候我们可能更需要相对实时的了解整个系统或者某一时段的运行的情况诸如系统出错的频率以及响应时间等等指标。这些动态的准实时信息对于监控整个系统的运行和健康状况非常重要而本文的主角们能通过很好的配合帮助你实现这个目标而且是一种高大上的实现方式。想想泡杯茶翘着二郎腿看着偌大的屏幕上有着一堆华丽的仪表和曲线图即使看不懂也很牛B的样子啊谁知道我看得懂看不懂呢是不是Q: 那什么是App-Metrics?A: App Metrics是一个开源和跨平台的.NET库用于记录应用程序中各项指标。可以在.NET Core上运行也可以在支持.NET 4.5.2的完整.NET框架上运行。App Metrics对底层数据源做了很好的抽象以支持很多类型的数据库例如InfluxDb、Prometheus、ElasticSearch等等。。同时他又提供了很多Measurements比如Apdex, Gauges, Counters, Meters, Histograms 等等一大堆1. 安装GrafanaQ: 什么是GrafanaA: 一个类似Kibana的可视化数据开源程序一般配合时间序列数据库进行配合来展示数据这里为了方便使用docker来运行Grafanadocker run -d --namegrafana -p 3000:3000 grafana/grafana 接着我们确认下是否正常运行了docker ps -a 2. 安装 InfluxDBInfluxDb是比较流行的时序数据库可以根据需要替换成Prometheus同上为了方便我们还是使用docker来运行如果你希望每次都能保持之前docker运行收集的数据可以用docker 的-v选项把目录映射到本机的目录以便持久化数据注意influxdb有2个端口一个是admin一个databasedocker run -d -p 8083:8083 -p 8086:8086 --expose 8090 --expose 8099 tutum/influxdb 如图另外开一个控制台我们看到后台已经运行了2个容器输入http://127.0.0.1:8083/ 访问InfluxDb的控制界面以便创建数据库3. 配置AspNet Core2.x先照常新建一个MVC项目安装所需的第三方库dotnet add package App.Metrics.Extensions.Mvcdotnet add package App.Metrics.Formatters.Jsondotnet add package App.Metrics.Extensions.Reporting.InfluxDB 控制台显示安装成功修改Startup.csusing System;using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using App.Metrics.Configuration; using App.Metrics.Extensions.Reporting.InfluxDB; using App.Metrics.Extensions.Reporting.InfluxDB.Client; using App.Metrics.Reporting.Interfaces; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace WebApplication1 { public class Startup { public Startup(IConfiguration configuration) { Configuration configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { #region 注册 App-Metrics 配置输出report到influxdb var database MyMetrics; var uri new Uri( http://127.0.0.1:8086 ); //本地Docker中运行的influx实例注意InfluxDb有2个端口别搞错 services.AddMetrics(options { options.WithGlobalTags((globalTags, info) { globalTags.Add(app, info.EntryAssemblyName); globalTags.Add(env, stage); }); }) .AddHealthChecks() .AddReporting( factory { factory.AddInfluxDb( new InfluxDBReporterSettings { InfluxDbSettings new InfluxDBSettings(database, uri), ReportInterval TimeSpan.FromSeconds(5) }); }) .AddMetricsMiddleware(options options.IgnoredHttpStatusCodes new[] {404}); #endregion services.ConfigureCookiePolicyOptions(options { options.CheckConsentNeeded context true; options.MinimumSameSitePolicy SameSiteMode.None; }); //添加Metric Filter到mvc services.AddMvc(options options.AddMetricsResourceFilter()) .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime lifetime) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler(/Home/Error); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); loggerFactory.AddConsole(Configuration.GetSection( Logging )); app.UseMetrics(); app.UseMetricsReporting(lifetime); app.UseMvc(routes { routes.MapRoute( name: default, template: {controllerHome}/{actionIndex}/{id?}); }); } }} 接下来就是配置豪华的Grafana了打开浏览器试着访问docker内运行的Grafana容器默认的用户名和密码是admin/admin 不用担心第一次登录成功后系统会要求你重新设置新的密码很贴心登录成功后配置Datasource当然是选择我们之前运行的InfluxDb按图进行配置提交后如下图显示即配置成功接着就是创建你的Dashboard可以自己建立也可以自己配置json文件导入网上有很多例子可以直接下载 最后启动AspNetCore站点再建立点post get put什么的控制器和Action随便访问几次就可以了源代码下载处https://github.com/linkanyway/appmetrics_Grafana_InfluxDB_demografana.json是文中导入的dashboard配置文件相关文章.NET Core微服务之基于App.MetricsInfluxDBGrafana实现统一性能监控Metrics.net influxdb grafana 构建WebAPI的自动化监控和预警基于GrafanaSimpleJson的灵活报表解决方案.Net Core 2.0 InfluxDBGrafanaApp Metrics 实现跨平台的实时性能监控原文地址https://www.cnblogs.com/linkanyway/p/metrics-grafana-influxdb-dotnet-core.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com