简介
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
安装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然后导入
配置数据库 配置数据库
如图填写好数据库配置,默认的数据库用户名密码是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。,最后查看监控界面
监控界面
网友评论