doina

一个小菜鸟运维工程师.

Prometheus概述

[toc]

Prometheus是什么?

一个最初在soundcloud上构建的监控系统,自2012年成为开源社区项目,于2016年加入云原生基金会CNCF

Prometheus官网
https://prometheus.io

Prometheus介绍及特点

  • 多维数据模型-由度量名称和键值对标识的时间序列数据
  • PromSQL-一种灵活的查询语言,可以利用多维数据完成复杂的查询
  • 不依赖于分布式存储,单个服务器节点可以直接工作
  • 基于http pull的方式采集时间序列数据
  • 推送时间序列数据通过pushgatway组件支持
  • 通过服务发现或静态配置发现目标
  • 多种图形模式及仪表盘支持grafana

prometheus的组成与架构

  • prometheus server-retrieval/TSDB/http-server 收集指标和存储时间序列数据,并提供查询接口
  • pushgateway-短期存储指标数据,用于临时性任务
  • alertmanager-告警
  • service discovery-服务发现
  • promQL-grafana/prometheus web-UI-简单的web控制台
  • clientlibrary-客户端库
  • exporters-采集已有的第三方服务监控指标并暴露metrics

监控指标数据类型

  • counter-递增的计数器
  • gauge-可以任意变化的数值
  • histogram-对一段时间范围内数据进行采样,并对所有数值求和与统计数量
  • summary-与histogram类似

监控指标数据模型

所有数据存储为时间序列,具有相同度量名称以及标签属于同一指标
每一个时间序列都由度量标准名称和一对键值对,也称为标签唯一标识
时间序列格式 <metric name>{<label name = label value>}
示例:api_http_requests_total{method="POST",handler="/messages"}

作业和实例

  • 实例-可以抓取的目标称为实例instances
  • 作业-具有相同目标的实例集合称为作业job
scrape_configs:
  -job_name: 'prometheus'
    static_configs:
    -targets: ['localhost:9090']
  -job_name: 'node'
    static_configs:
    -targets: ['192.168.1.10:9090'],['192.168.1.11:9090'],['192.168.1.12:9090']
  • job称为作业
  • targets称为实例
点赞

发表评论

邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据