介绍

App.Metrics 是一款开源的支持 .NET Core 的监控插件,它还可以支持跑在 .NET Framework 上的应用程序(版本 >= 4.5.2)。

本篇介绍 App.Metrics + InfluxDB + Grafana,构建性能监控。

环境信息

本篇博客操作全部在Linux下部署

服务器 说明
192.168.200.123 influxdb 服务器,存储数据
192.168.200.167 grafana 服务器,展示数据
192.168.200.164 .NetCore 3.1 + Metrics 4.2,收集数据

前置条件

influxdb 、grafana 部署请参照博主其他博客,本篇不做介绍

  • influxdb(部署信息)
    UI:http://192.168.200.123:8083/
    User:root root
    数据端口:http://192.168.200.123:8086
    DB:AppMetricsDB
  • grafana(部署信息)
    UI: http://192.168.200.167:3000/login
    User:admin admin

部署

一、.Net Core API

  1. 安装 packge
    App.Metrics 4.2 、App.Metrics.AspNetCore.All 4.2 、App.Metrics.Reporting.InfluxDB 4.2
  2. 配置信息
{"AppMetrics": {"IsOpen": true,"DatabaseName": "AppMetricsDB","ConnectionString": "http://192.168.200.123:8086","UserName": "root","Password": "root","App": "ad-api","Env": "Development"}
}
  1. 注册服务
    在 starup 类中 ConfigureServices 方法注册
            // AppMetricsbool isOpenMetrics = Convert.ToBoolean(Configuration["AppMetrics:IsOpen"]);if (isOpenMetrics){string database = Configuration["AppMetrics:DatabaseName"];string connStr = Configuration["AppMetrics:ConnectionString"];string app = Configuration["AppMetrics:App"];string env = Configuration["AppMetrics:Env"];string username = Configuration["AppMetrics:UserName"];string password = Configuration["AppMetrics:Password"];var uri = new Uri(connStr);var metrics = AppMetrics.CreateDefaultBuilder().Configuration.Configure(options =>{options.AddAppTag(app);options.AddEnvTag(env);}).Report.ToInfluxDb(options =>{options.InfluxDb.BaseUri = uri;options.InfluxDb.Database = database;options.InfluxDb.UserName = username;options.InfluxDb.Password = password;options.HttpPolicy.BackoffPeriod = TimeSpan.FromSeconds(30);options.HttpPolicy.FailuresBeforeBackoff = 5;options.HttpPolicy.Timeout = TimeSpan.FromSeconds(10);options.FlushInterval = TimeSpan.FromSeconds(5);}).Build();services.AddMetrics(metrics);services.AddMetricsReportingHostedService();services.AddMetricsTrackingMiddleware();services.AddMetricsEndpoints();}

  1. 使用服务
    在 starup 类中 Configure 方法启用
            // AppMetricsbool isOpenMetrics = Convert.ToBoolean(Configuration["AppMetrics:IsOpen"]);if (isOpenMetrics){app.UseMetricsAllEndpoints();app.UseMetricsAllMiddleware();}

  1. 启动程序
    启动程序后,Metrics 会向 influxdb 实时写入程序运行资源信息。如果不知道是否写入成功,可以查看 influxdb log 进行查看。

二、添加面板

  1. 添加数据源,打开 grafana 进行数据源添加,配置 influxdb 信息,并测试是否成功

  2. 配置面板。添加Dashboards,可以使用导入 https://grafana.com/dashboards/2125 。
    官方有许多配置好的 Dashboards 可以直接拿来用

三、查看面板

对 API 项目进行访问或者压测模拟访问,可以根据指定条件查看指定程序信息

.NET Core 性能监控相关推荐

  1. AspNet Core下利用 app-metrics+Grafana + InfluxDB实现高大上的性能监控界面

    在日常系统工作中,我们为了洞察系统的问题和运作情况通常会记录日志的方式来进行分析,但是在很多情况下都是被动的在出问题后才会去查日志.在很多时候,我们可能更需要相对实时的了解整个系统或者某一时段的运行的 ...

  2. Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控

    在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的.小的模块或者重用已经有的模块来构建复杂的系统.随着模块的不断增多,一次请求可能会涉及到十几 ...

  3. 听云支持.NET Core的应用性能监控

    随着微软于2017年8月正式发布.NET Core 2.0, .NET Core 社区开始活跃,众多.NET开发者开始向跨平台转变. 听云于2017年11月推出了.NET Core应用监控工具,和听云 ...

  4. ASP.NET Core之跨平台的实时性能监控(2.健康检查)

    前言 上篇我们讲了<如何使用App Metrics 做一个简单的APM监控>,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core ...

  5. ASP.NET Core之跨平台的实时性能监控

    前言 前面我们聊了一下一个应用程序 应该监控的8个关键位置. 应用程序的8个关键性能指标以及测量方法 最后卖了个小关子,是关于如何监控ASP.NET Core的. 今天我们就来讲讲如何监控它,下面上效 ...

  6. NVIDIA深度学习Tensor Core性能解析(上)

    NVIDIA深度学习Tensor Core性能解析(上) 本篇将通过多项测试来考验Volta架构,利用各种深度学习框架来了解Tensor Core的性能. 很多时候,深度学习这样的新领域会让人难以理解 ...

  7. CentOS7性能监控系统安装

    CentOS7性能监控系统安装 想打造 New Relic 那样漂亮的实时监控系统我们只需要 InfluxDB/collectd/Grafana 这三个工具,这三个工具的关系是这样的: 采集数据(co ...

  8. JVM-10虚拟机性能监控与故障处理工具之【JDK的命令行】

    文章目录 思维导图 概述 命令行工具 jps 虚拟机进程状况工具 概述 语法及使用 jstat 虚拟机统计信息监视工具 概述 语法及使用 jinfo Java配置信息工具 概述 语法及使用 jmap ...

  9. JVM学习笔记之-JVM性能监控-JVM监控及诊断工具-命令行方式

    性能优化的步骤 第1步(发现问题):性能监控 一种以非强行或者入侵方式收集或查看应用运营性能数据的活动. 监控通常是指一种在生产.质量评估或者开发环境下实施的带有预防或主动性的活动. 当应用相关干系人 ...

最新文章

  1. 模板 - 输入输出优化
  2. 读《程序员的思维修炼》有感
  3. 【0521模拟赛】小Z爱数学
  4. hdu1879 继续畅通工程 最小生成树
  5. Source Insight 4.0常用设置
  6. android API 参考大全
  7. 解决设备升级至Android 4.2.2之后,可以连接但无法调试的问题
  8. Android/Java中使用Protobuf的Any类型实现泛型解析
  9. mysql存储过程触发器_MySQL存储过程及触发器
  10. c语言生成随机英文字母,菜鸟求助,写一个随机输出26个英文字母的程序
  11. EDUCoder编程练习题解(循环)
  12. asp.net ajax updatepanel中textbox 乱码问题 解决方案
  13. MAC开机启动项的管理
  14. vue 下载文件(后台返回为二进制流)
  15. linux操作系统和ucos操作系统,嵌入式操作系统ucos与linux比较
  16. js生成execl表格
  17. 考研数学 曲线曲面积分
  18. Oracle VM VirtualBox不能正常运行(电脑强行关机后,Linux不能正常运行)
  19. select2下拉框总结
  20. 最全的 lombok 注解详情(随着版本不定时更新)

热门文章

  1. 小妹使用栈实现计算器(上)
  2. 在PS里制作电影感复古海报
  3. 硬件常用测试软件整理,方便大家下载
  4. HTML网页常用的图像格式
  5. CMMI中QA是如何检查过程和产品 保证软件开发质量?
  6. Java - 打印昨天的当前时刻。
  7. 数值千分位显示,若为小数,保留两位小数,若为整数,小数点后默认为00
  8. react17源码浅析
  9. HEIC图片格式如何快速转换呢?
  10. 实例004:计算正方形的周长