上次在腾讯的AI沙龙上听到关于用Prometheus作监控的案例,我在网上搜了一下,记录一下:前端
转自:https://baijiahao.baidu.com/s?id=1621512315202282098&wfr=spider&for=pcjava
介绍python
Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合.由SoundCloud公司开发。mysql
Prometheus基本原理是经过HTTP协议周期性抓取被监控组件的状态,这样作的好处是任意组件只要提供HTTP接口就能够接入监控系统,不须要任何SDK或者其余的集成过程。这样作很是适合虚拟化环境好比VM或者Docker 。redis
Prometheus应该是为数很少的适合Docker、Mesos、Kubernetes环境的监控系统之一。近几年随着k8s的流行,prometheus成为了一个愈来愈流行的监控工具。sql
并且Prometheus是开源的,真是我等伸手党的福音。数据库
架构ruby
Prometheus能够作什么服务器
在业务层用做埋点系统 Prometheus支持各个主流开发语言(Go,java,python,ruby官方提供客户端,其余语言有第三方开源客户端)。咱们能够经过客户端方面的对核心业务进行埋点。以下单流程、添加购物车流程。在应用层用做应用监控系统 一些主流应用能够经过官方或第三方的导出器,来对这些应用作核心指标的收集。如redis,mysql。在系统层用做系统监控 除了经常使用软件, prometheus也有相关系统层和网络层exporter,用以监控服务器或网络。集成其余的监控 prometheus还能够经过各类exporte,集成其余的监控系统,收集监控数据,如AWS CloudWatch,JMX,Pingdom等等。不要用Prometheus作什么网络
prometheus也提供了Grok exporter等工具能够用来读取日志,可是prometheus是监控系统,不是日志系统。应用的日志仍是应该走ELK等工具栈。
grafana
通常配合grafana作前端展现