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+App Metrics监控系统_第1张图片
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然后导入

influxdb+grafana+App Metrics监控系统_第2张图片
grafana监控界面

配置数据库

influxdb+grafana+App Metrics监控系统_第3张图片
配置数据库

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


influxdb+grafana+App Metrics监控系统_第4张图片
配置数据库

至此,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。,最后查看监控界面

influxdb+grafana+App Metrics监控系统_第5张图片
监控界面

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

你可能感兴趣的:(influxdb+grafana+App Metrics监控系统)