influxdb+grafana+App Metrics监控系统

简介

Influxdb(分布式时序数据库,开源)
Grafana(开源的,功能齐全的度量仪表盘和图形编辑器)
App Metrics(开源的支持.NET Core的监控插件)

influxdb安装

前置条件:安装docker,我安装的是 docker for windows

搜索 indluxdb

docker search influxdb 

安装 tutum/influxdb

docker pull tutum/influxdb

运行

docker run -d -p 8083:8083 -p8086:8086 --expose 8090 --expose 8099 --name influxsrv tutum/influxdb

其中8083 是web管理工具的端口,8086是influxdb http api 的端口

现在可以输入 http://localhost:8083 ,并创建数据库 test

influxdb管理界面

安装grafana

搜索 grafana

docker search grafana

安装grafana

docker pull grafana/grafana

运行 grafana

docker run -d -p 3000:3000 --name grafanasrv grafana/grafana

现在可以输入http://localhost:3000访问管理界面 默认账户密码是admin

安装完成后需要下载 仪表模板 https://grafana.com/dashboards/2125然后导入

grafana监控界面

配置数据库

配置数据库

如图填写好数据库配置,默认的数据库用户名密码是root


配置数据库

至此,grafana安装配置完成

.net core中使用App Metrics

创建一个web Api项目,然后添加如下引用

App.Metrics
App.Metrics.Extensions.Middleware
App.Metrics.Extensions.Mvc
App.Metrics.Extensions.Reporting.InfluxDB
App.Metrics.Extensions.Middleware
App.Metrics.Formatters.Json

然后修改startup类

 public void ConfigureServices(IServiceCollection services)
        {
            var database = "test";
            var uri = new Uri("http://127.0.0.1:8086");

            services.AddMetrics(options =>
            {
                options.GlobalTags.Add("app", "sample app");
                options.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 });

            // Add framework services.
            services.AddMvc();
        }
 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory,IApplicationLifetime lifetime)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();
            app.UseMetrics();
            app.UseMetricsReporting(lifetime);

            app.UseMvc();
        }

运行api 然后调用几次api。,最后查看监控界面

监控界面

参考文档:ASP.NET Core之跨平台的实时性能监控

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 随着线上服务的全面docker化,对docker容器的监控就很重要了。SA的监控系统是物理机的监控,在一个物理机跑...
    __七把刀__阅读 14,163评论 3 22
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,261评论 4 61
  • Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器和容器的监控越来越必要。本文将...
    jaymarco阅读 1,846评论 0 5
  • 一年光景看将尽,愁绪难驱叹此身。 膝下稚儿初识字,鬓边霜雪已催人。 凌云谁肯好风送?曳尾不甘陋巷贫。 碌碌无为虚度...
    青蔓阅读 352评论 4 6
  • (一) 仿佛爱情一样突然就从空气中产生了看起来晶莹剔透实际上无比脆弱等到热情似火之时它又凭空消失了 (二) 在叶子...
    牛皮社阅读 774评论 7 9