Prometheus-分布式监控系统-普罗米修斯

 ++++++++++++++++ 壹    ++++++++++++++++++、

Prometheus简介

  1. 分布式监控系统。
  2. 同时也是时间序列数据库。
  3. 完全开源
  4. 被很多云厂商(架构)内置,在这些厂商(架构)中,可以简单部署Prometheus,用来监控整个云基础架构设施。
  5. Prometheus主要用于对基础设施的监控。包括服务器,数据库,VPS,几乎所有东西都可以通过Prometheus进行监控。

 

如前所述,Prometheus由各种不同的组件组成。从系统中提取监控指标,可以通过不同的方式做到:

  1. 通过应用程序给定监控项,对给定的公开URL上Prometheus兼容的指标。Prometheus将其定义为目标并加入监控系统。
  2. 通过使用云厂商内置Prometheus程序,会定义好整个监控项和监控工具集拥。例如,可以 Linux机器监控模版(节点导出器),数据库的模版(SQL导出器或MongoDB导出器),以及HTTP代理或者负载程序的模版(例如HAProxy导出器)等这些模版直接就可以加入监控并使用。
  3. 通过使用Pushgateway:应用程序或作业不会直接公开指标。某些应用程序要么没有合适的监控模版(例如批处理作业),对他们选择不能直接通过应用程序公开这些指标。如果我们忽略您可能使用Pushgateway的极少数情况,Prometheus是一个基于主动请求pull的监控系统。

Prometheus可以做什么

  1. 在业务层用作埋点系统 Prometheus支持各个主流开发语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。
  2. 我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购物车流程。
  3. 在应用层用作应用监控系统 一些主流应用可以通过官方或第三方的导出器,来对这些应用做核心指标的收集。如redis,mysql。
  4. 在系统层用作系统监控 除了常用软件, prometheus也有相关系统层和网络层exporter,用以监控服务器或网络。
  5. 集成其他的监控 prometheus还可以通过各种exporte,集成其他的监控系统,收集监控数据,如AWS CloudWatch,JMX,Pingdom等等。

不要用Prometheus做什么 

prometheus也提供了Grok exporter等工具可以用来读取日志,但是prometheus是监控系统,不是日志系统。应用的日志还是应该走ELK等工具栈。

 

grafana

prometheus一般配合grafana做前端展示

 

 ++++++++++++++++  贰    ++++++++++++++++++

一、Pushgateway 简介

Pushgateway 是 Prometheus 生态中一个重要工具,使用它的原因主要是:

  • Prometheus 采用 pull 模式,可能由于不在一个子网或者防火墙原因,导致 Prometheus 无法直接拉取各个 target 数据。
  • 在监控业务数据的时候,需要将不同数据汇总, 由 Prometheus 统一收集。

由于以上原因,不得不使用 pushgateway,但在使用之前,有必要了解一下它的一些弊端:

  • 将多个节点数据汇总到 pushgateway, 如果 pushgateway 挂了,受影响比多个 target 大。
  • Prometheus 拉取状态 up 只针对 pushgateway, 无法做到对每个节点有效。
  • Pushgateway 可以持久化推送给它的所有监控数据。

因此,即使你的监控已经下线,prometheus 还会拉取到旧的监控数据,需要手动清理 pushgateway 不要的数据。

 

 ++++++++++++++++ 叁    ++++++++++++++++++

埋点

什么是埋点? 

摘自:程序员杂货铺 https://blog.csdn.net/Zbylant 

所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语。指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。 埋点的技术实质,是先监听软件应用运行过程中的事件,当需要关注的事件发生时进行判断和捕获。

 

流量统计的基础:埋点 

摘自:https://zhuanlan.zhihu.com/p/25195217

所谓埋点就是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑,包括:
1、访问(Visits)
2、访客(Visitor)
3、停留时间(Time On Site)
4、页面查看(Page Views,又称为页面浏览)
5、跳出率(Bounce Rate,又可称为蹦失率)

这样的信息收集可以大致分为两种:
1、页面统计(track this virtual page view)
2、统计操作行为(track this button by an event)

   

意义何在?

  • 流量监测(在线情况分析、按时段分析、按来源分析);

  • 构建行为路径, 通过对处理后的信息进行关联,获取用户的整条行为链路;

  • 通过对埋点数据的处理、分析、建模,可以挖掘用户的喜好、需求,判断产品的效果和未来走向;

  • 监控应用运行状态,提供问题跟踪定位的数据支持;

  • 为营销策略提供数据支持;

  • 实施 AB Testing;

  • 作为数据平台中,数据采集的一个不可缺少的环节;

埋点的技术难点

现在的业务技术架构都不仅仅是单独的一种技术方案能解决的。现在只要是做互联网的公司,其业务系统都会包含如下系统模块:

  • 大前端。这里包含 WEB、HTML5, App(IOS、Android、Hybrid形式)

  • 后端应用系统

  • 服务器系统

 

posted @ 2020-09-21 15:45  linuxws  阅读(3271)  评论(0编辑  收藏  举报