美文网首页
influxdb+grafana+App Metrics监控系统

influxdb+grafana+App Metrics监控系统

作者: 老衲贫僧 | 来源:发表于2017-07-19 17:03 被阅读0次

    简介

    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之跨平台的实时性能监控

    相关文章

      网友评论

          本文标题:influxdb+grafana+App Metrics监控系统

          本文链接:https://www.haomeiwen.com/subject/bymlkxtx.html