Prometheus-是什么

Prometheus是什么?

  Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,

拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算

基金会(CNCF),成为继Kubernetes之后的第二个托管项目

Prometheus 特点:

• 多维数据模型:由度量名称和键值对标识的时间序列数据

• PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询

• 不依赖分布式存储,单个服务器节点可直接工作

• 基于HTTP的pull方式采集时间序列数据

• 推送时间序列数据通过PushGateway组件支持

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

• 多种图形模式及仪表盘支持(grafana)

Prometheus架构

• Prometheus Server:收集指标和存储时间序列数据,并提供查询接口

• ClientLibrary:客户端库

• Push Gateway:短期存储指标数据。主要用于临时性的任务

• Exporters:采集已有的第三方服务监控指标并暴露metrics

• Alertmanager:告警

• Web UI:简单的Web控制台

数据模型

Prometheus将所有数据存储为时间序列;具有相同度量名称以及标签属于同一个指标。

每个时间序列都由度量标准名称和一组键值对(也成为标签)唯一标识。

时间序列格式:

<metric name>{<label name>=<label value>, ...}

示例:api_http_requests_total{method="POST", handler="/messages"}

指标类型

• Counter:递增的计数器

• Gauge:可以任意变化的数值

• Histogram:对一段时间范围内数据进行采样,并对所有数值求和与统计数量

• Summary:与Histogram类似

作业与实例

实例:可以抓取的目标称为实例(Instances)

作业:具有相同目标的实例集合称为作业(Job)

scrape_configs:

- job_name: 'prometheus'

static_configs:

- targets: ['localhost:9090']

- job_name: 'node'

static_configs:

- targets: ['192.168.1.10:9090']

总结:

  prometheus是一个开源的监控系统 他比较适合以机器为目标面向服务的一个监控架构

  它的数据模型分为 一个指标名 和一个标签 还有值组成的

  指标类型有四个适用于不同的场景 主要是在写客户端时你需要暴露的数据类型

  作业和实例就是需要监控目标专业术语

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。