.NetCore 中使用AppMetrics向InfluxDB中添加监控数据并通过Grafana图像分析
2018-11-05 15:50
393 查看
考虑到分布式部署监控环境是所有的请求情况,所以这一块一般在网关GateWay里面加比较省事,聚合在一起的,如果放在api服务中,如果只有1个还好,一旦部署Node多是很痛苦的事情
这天需要添加的Nuget包如下:
在配置添加
{ "Logging": { "LogLevel": { "Default": "Warning" } }, //AppMetrics配置 "AppMetrics": { "DataBaseName": "lymtest", "ConnectionString": "http://192.168.0.212:8086", "UserName": "liyouming", "Password": "lym123!@#", "App": "体检服务", "Env": "测试环境" }, "AllowedHosts": "*" }
注意使用中文一定要指定U8,不然文字会乱码,设置好连接地址 、数据库名称、用户名、密码、应用名称、应用环境
下面看下代码中的处理
配置ConfigServices服务
AppMetricsConfig config = Configuration.GetSection("AppMetrics").Get<AppMetricsConfig>(); services.AddMetrics(AppMetrics.CreateDefaultBuilder() .Configuration.Configure( options => { options.AddAppTag(config.App); options.AddEnvTag(config.Env); }) .Report.ToInfluxDb( options => { options.InfluxDb.BaseUri = new Uri(config.ConnectionString); options.InfluxDb.Database = config.DataBaseName; options.InfluxDb.UserName = config.UserName; options.InfluxDb.Password = config.Password; options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30); options.HttpPolicy.FailuresBeforeBackoff = 5; options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10); options.FlushInterval = TimeSpan.FromSeconds(5); }) .Build()); services.AddMetricsReportScheduler(); services.AddMetricsTrackingMiddleware(); services.AddMetricsEndpoints();
Configure中添加需要跟踪的中间件
app.UseMetricsAllMiddleware(); app.UseMetricsActiveRequestMiddleware(); app.UseMetricsErrorTrackingMiddleware(); app.UseMetricsPostAndPutSizeTrackingMiddleware(); app.UseMetricsRequestTrackingMiddleware(); app.UseMetricsOAuth2TrackingMiddleware(); app.UseMetricsApdexTrackingMiddleware(); app.UseMetricsAllEndpoints(); app.UseMetricsEndpoint(); app.UseMetricsTextEndpoint(); app.UseEnvInfoEndpoint();
然后运行下程序访问下一些功能,监控需要的数据已经加到InfluxDB中去了
接下来就需要把InfluxDB中的数据导入到Grafana中,下面就进入到Grafana中去Import,这里根据配置的5s从InfluxDB刷新数据
这里可以输入Dashboard的地址,也可以直接输入ID 2125
Import导入可以看到Dashboard
我们也可以看下Dashboard管理中去看现有的所有Dashboard
这里,我程序还没有运行起来,下面我运行好程序,迅速刷新几十次可以看到下面的数据统计情况
然后这块节本就搞定了
相关文章推荐
- Swift - 使用NSURLSession同步获取数据(通过添加信号量)
- 使用 Grafana+collectd+InfluxDB 打造现代监控系统
- 利用vmstat命令监控Linux资源使用并将数据通过图形化方式显示
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- Swift - 使用NSURLSession同步获取数据(通过添加信号量)
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- .NetCore下使用Prometheus实现系统监控和警报 (三)集成Grafana
- 【jmeter】基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示
- 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
- grafana-大数据图表监控分析框架
- 利用vmstat命令监控Linux资源使用并将数据通过图形化方式显示
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- Python数据分析与机器学习-使用Kmeans进行图像压缩
- 通过改变网络拓扑使用Sniffer Pro监控、分析协议的示意图
- (转)在C#中使用WIA获取扫描仪数据(四、通过编程方式扫描图像)
- 使用NSURLSession同步获取数据(通过添加信号量)
- 使用python操作elasticsearch实现监控数据及kibana分析
- 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
- 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统