1. 初探--prometheus调研 (2)

  除了直接使用社区提供的Exporter程序以外,用户还可以基于Prometheus提供的Client Library创建自己的Exporter程序,目前Promthues社区官方提供了对以下编程语言的支持:GoJava/ScalaPythonRuby。同时还有第三方实现的如:BashC++Common LispErlang,HaskeelLuaNode.jsPHPRust等。

1.2.3 client libraries

  顾名思义,用来生成自定义的exportersjava库。

1.2.3 push gateway

  由于Prometheus数据采集基于Pull模型进行设计,因此在网络环境的配置上必须要让Prometheus Server能够直接与Exporter进行通信。 当这种网络需求无法直接满足时(短周期或者临时采集的样本数据),就可以利用PushGateway来进行中转。可以通过PushGateway将内部网络的监控数据主动PushGateway当中。而Prometheus Server则可以采用同样Pull的方式从PushGateway中获取到监控数据。

  推送数据的方式:

  1API 方式 Push 数据到 PushGateway

  2、用 Client SDK Push 数据到 Pushgateway

1.2.4  Alertmanager

  在Prometheus Server中支持基于PromQL创建告警规则,如果满足PromQL定义的规则,则会产生一条告警,而告警的后续处理流程则由AlertManager进行管理。在AlertManager中我们可以与邮件,Slack等等内置的通知方式进行集成,也可以通过Webhook自定义告警处理方式。AlertManagerPrometheus体系中的告警处理中心。

1.2.5 various support tools

 

1.3 特性

  1. 由指标名称和和键/值对标签标识的时间序列数据组成的多维数据模型

  2. 强大的查询语言 PromQL

  3. 不依赖分布式存储;单个服务节点具有自治能力。

  4. 时间序列数据是服务端通过 HTTP 协议主动拉取获得的。

  5. 也可以通过中间网关推送时间序列数据

  6. 可以通过静态配置文件服务发现来获取监控目标。

  7. 支持多种类型的图表和仪表盘  

 引自官网:

a multi-dimensional data model with time series data identified by metric name and key/value pairs;

PromQL, a flexible query language to leverage this dimensionality;

no reliance on distributed storage; single server nodes are autonomous;

time series collection happens via a pull model over HTTP;

pushing time series is supported via an intermediary gateway;

targets are discovered via service discovery or static configuration;

multiple modes of graphing and dashboarding support.

1.4 数据类型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydwfz.html