• 刚好有半天得闲功夫, 从项目里面找个功能来水一篇文章????.
  • 上线的项目通常都是需要做性能数据收集工作的, 它好处就不想打字了.
  • 业界有很多套方案, 工具[收费的, 免费的], 收集采用[拉取的,推送的]等等可以各种组合,各种优劣势等介绍和比较请自行google.

实施方案

InfluxDb

一个时序数据库, 用来存储监控数据很适合, 其他的比如Prometheus等都阔以.

Grafana

图表展示, 告警策略等

telegraf

在物理机, 虚拟机, container上收集主机的性能指标插件, 用的的Push模式, 同时它有很多插件可以用来采集不同的性能数据, 比如host相关的cpu, memory, network等, 应用程序nginx, rabbitmq, 等等几百个插件

App Metrics

  • 项目文档
  • 项目Github
  • 应用程序支持.NET Core, 也同时支持.NET 4.5.2+
  • 可以将数据上报到多种Source 支持Prometheus, GrafanaCloud Hosted Metrics, Influx Data, Datadog, StatsD, Http, Socket, Console, Azure Application Insights, Text File, Graphite, 自定义
  • 组件也提供了Http Api 可以直接浏览, 参考地址

集成App Metrics到项目中

  • 安装App.Metrics.* nuget 包到自己的项目, 具体要什么请查询文档, 在web项目下和console下可以细化用不同的包
  • 剩下的不想写了, 参考官方DEMO

在Grafana中展示App Metrics上报的数据

成果

Web程序的一些指标

集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标

某个业务的一些指标

集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标

Linux主机的一些指标

集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标
集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标
集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标
集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标
集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标

Win主机的一些指标

集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标
集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标

AWS ECS的一些指标

集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标

相关文章: