集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标
前情概要
- 刚好有半天得闲功夫, 从项目里面找个功能来水一篇文章.
- 上线的项目通常都是需要做性能数据收集工作的, 它好处就不想打字了.
- 业界有很多套方案, 工具[收费的, 免费的], 收集采用[拉取的,推送的]等等可以各种组合,各种优劣势等介绍和比较请自行google.
实施方案
- 数据存储使用时序数据库InfluxDb
- 数据展示使用Grafana
- .NET Core 程序组件使用App Metrics
- Host收集组件使用telegraf
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 api的dashboards模板
- 其他模板可以在dashboards搜索添加, 比如Linux主机, docker主机, win主机, docker主机, docker容器, aws容器.
成果
Web程序的一些指标

某个业务的一些指标

Linux主机的一些指标





Win主机的一些指标


AWS ECS的一些指标

集成InfluxDb, telegraf, Grafana, App Metrics以记录性能指标的更多相关文章
- .Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控
最近这段时间一直在忙,没时间写博客,负责了一个项目,从前端到后端一直忙,同时还有其他第几个项目的系统架构要处理. 去年就开始关注net core了,只是平时写写demo,没用在项目中,正好这次机会就用 ...
- .Net Core 2.*+ InfluxDB+Grafana+App Metrics实时性能监控
前言 .net core 2.* 实施性能监控 这个工具其实给运维 大大们用起来是更爽的.但是Grafana现在还没有找到中文版. 本文需要了解的相关技术与内容: InfluxDb(分布式时序数据库, ...
- .NET Core使用App.Metrics监控消息队列(一):初探
一.简介 App Metrics是一个开放源代码和跨平台的.NET库,用于记录应用程序中的指标.App Metrics可以在.NET Core或也支持.NET 4.5.2的完整.NET框架上运行. A ...
- 使用App.Metrics监控消息队列
使用App.Metrics监控消息队列 一.简介 App Metrics是一个开放源代码和跨平台的.NET库,用于记录应用程序中的指标.App Metrics可以在.NET Core或也支持.NET ...
- Springboot2 Metrics之actuator集成influxdb, Grafana提供监控和报警
到目前为止,各种日志收集,统计监控开源组件数不胜数,即便如此还是会有很多人只是tail -f查看一下日志文件.随着容器化技术的成熟,日志和metrics度量统计已经不能仅仅靠tail -f来查看了,你 ...
- .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...
- 基于.net core微服务(Consul、Ocelot、Docker、App.Metrics+InfluxDB+Grafana、Exceptionless、数据一致性、Jenkins)
1.微服务简介 一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(RESTfu ...
- .net core使用App.Metrics+InfluxDB+Grafana进行APM监控
一.InfluxDB 1.下载InfluxDB wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.2.x86_64.rpm 2 ...
- grafana+influxdb+telegraf监控服务器cpu,内存和硬盘
随便抄了一篇,目前我们的项目也在用,这个是linux和windows通吃的一种监控方案,非常有效,详细和优美,需要监控什么具体的业务内容,自己向influxdb中插入就行了. 监控服务器状态是运维必不 ...
- Grafana+Influxdb+Telegraf监控mysql
Grafana+Influxdb+Telegraf监控mysql 一.安装 1.1安装Grafana+influxdb+telegraf 1.2启动服务,添加开机启动 1.3查看grafana界面 二 ...
随机推荐
- 【MySQL】Windows-5.7.30 解压版 下载安装
1.Download 下载 mysql官网: https://dev.mysql.com/ 找到download点击进入下载页面: https://dev.mysql.com/downloads/ 找 ...
- Attempting to use uninitialized value beta2_power -------TensorFlow报错
版本: Python=3.7 TensorFlow=1.14 具体代码: init=[tf.global_variables_initializer(), tf.local_variables_ini ...
- 中国超级计算机为什么不能为AI提供算力?
网上看到这样的帖子: https://www.zhihu.com/question/609008408/answer/3130831897 ============================== ...
- Visual Studio 个人配置和插件
主题和字体 一般为黑色深色主题,看起来比较舒服. 字体使用Fira Code,好处就是它把 =>和!=换成更加熟悉的表示.就比如以下.缺点就是习惯之后,看别人的代码就不习惯. 插件 当然是首推R ...
- 白鲸开源 X SelectDB 金融大数据联合解决方案公布!从源头解决大数据开发挑战
业务挑战与痛点 随着互联网技术的发展.云计算技术的成熟.人工智能技术的兴起和数字化经济的崛起,数据已成为企业的核心资产.在金融行业中,数字化已成为了支撑各类业务场景的核心力量,包括个人理财.企业融资. ...
- Sentry 开源版与商业 SaaS 版的区别
您会在官方的文档中找到大量对 sentry 和 getsentry 的引用.两者都是 Django 应用程序,但 sentry 是开源的, getsentry 是闭源的.里面有什么? https:// ...
- .Net Aspire次体验
上次用上了在微软MVP的带领下用上了Aspire,在开发阶段隐藏了细节,什么都不用做,点个调试按钮就跑起来了,可是部署时出现了难题, 因为发布时只能选择Azure环境,为此注册了Azure,开了科网. ...
- .NET周刊【8月第1期 2024-08-04】
国内文章 EF Core性能优化技巧 https://www.cnblogs.com/baibaomen-org/p/18338447 这篇文章介绍了在代码层面上优化EF Core实例池和拆分查询的方 ...
- loj6669 Nauuo and Binary Tree 题解
https://loj.ac/p/6669 赛时做法 先 \(n-1\) 次问出深度 逐层考虑.slv(vector<int> a,vector<int> b) 表示在点集 \ ...
- vue 报错 Component template should contain exactly one root element. If you are using v-if on multiple elements
vue 报错 Component template should contain exactly one root element. If you are using v-if on multiple ...