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

前情概要

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

某个业务的一些指标

Linux主机的一些指标





Win主机的一些指标


AWS ECS的一些指标

posted @ 2021-05-13 17:38  czd890  阅读(198)  评论(0编辑  收藏  举报