Fork me on GitHub

.NetCore下使用Prometheus实现系统监控和警报 (一)介绍【译】

【译】原文https://prometheus.io/docs/introduction/overview

什么是Prometheus?

Prometheus是一个开源系统监控和警报工具包,最初起源于SoundCloud。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目有一个非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,Prometheus在2016年加入了云计算基金会,成为继Kubernetes(k8s)之后的第二个托管项目。

特性介绍

Prometheus的主要特点是:

通过键值对(Key/Value)处理多维时序数据模型

实现灵活维度查询

不依赖分布式存储,单节点独立存储

通过Http Pull操作处理时序数据

通过网关(GateWay)中推送时序数据

通过服务发现或静态配置发现目标

支持各种图形表盘展示数据

组件

Prometheus由多个组件组成,其中大多数是可以选择的:

(Prometheus server)最主要的就是Prometheus Server,它用来收集和存储时序数据

(client libraries)客户端用来检测被监控的应用程序代码

(push gateway)支持瞬时的网关推送处理

(*. exporters)包括对 HAProxy, StatsD, Graphite等的额外支持

(alertmanager)监控预警管理、以及各种工具

大多数Prometheus组件都是用Go编写的,这使得它们易于构建并作为静态二进制文件部署

整体结构

下图说明了Prometheus的体系结构及其系统的一些组成部分:


Prometheus从直接或间接的瞬时推送从指定的网关作业中提取的度量标准,并在本地存储了推送的数据,聚合处理这些数据然后记录生成新的时序数据并按照一定的数据处理算法规则生成预警,
最后使用Grafana或其他API来对收取的数据实现可视化查看。

适用场景

Prometheus能够更好的记录数字类型的时序数据,它既可用于以机器为中心的监视,也适用于高度动态的面向服务的架构的监视。在微服务的场景中,它对多维数据收集和查询的支持有很特殊的优势。

为可靠性而设计的Prometheus可以让您在宕机的时候快速诊断分析问题。每个Prometheus服务器都是独立的,不依赖于网络存储或其他远程服务,当基础结构的其他部分损坏时,您可以依赖它,并且不需要设置更多额外的基础结构来使用它。

不适用场景

Prometheus非常重视可靠性,即使在发生故障的情况下,你也可以查看有关系统中的可用统计信息,但是如果你需要百分之百精准统计(如:每次账单请求信息)对Prometheus而言是不适用的,因为收集的数据可能不够详细和完整。在这种情况下,最好使用其他系统来收集和分析数据,并使用Prometheus进行其余额外的监视。

posted @ 2018-11-08 14:34  龙码精神  阅读(3184)  评论(0编辑  收藏  举报