首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

influxdb+grafana+App Metrics监控系统

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。,最后查看监控界面
返回列表