influxdb+grafana+App Metrics监控系统

字数 277阅读 3240

简介

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的监控系统是物理机的监控,在一个物理机跑...
  • Docker从2013年发布第一个版本以来,已经火遍全球,技术迭代也比较频繁,其周边产品和技术也越来越丰富。Doc...
  • Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器和容器的监控越来越必要。本文将...
  • 一年光景看将尽,愁绪难驱叹此身。 膝下稚儿初识字,鬓边霜雪已催人。 凌云谁肯好风送?曳尾不甘陋巷贫。 碌碌无为虚度...
  • (一) 仿佛爱情一样突然就从空气中产生了看起来晶莹剔透实际上无比脆弱等到热情似火之时它又凭空消失了 (二) 在叶子...