监控系统作用

监控系统主要用于保证所有业务系统正常运行, 和业务的瓶颈监控. 需要周期性采集和探测.

采集的详情

  • 采集: 采集器, 被监控端, 监控代理, 应用程序自带仪表盘, 黑盒监控, SNMP.
  • 存储: SQL, NoSQL(k/v, document, TSDB(series))
  • 展示: Grafana
  • 报警: Alert 通知 Email, 短信, 微信, 钉钉,
  • 常见开源实现: (Cacti/Nagios/ zabbix/ Prometheus)

监控体系

  • 系统层监控

    • 系统监控: CPU, Memory, Swap, Disk, Process, Load
    • 网络监控: 网络设备, 工作负载, 网络延迟, 丢包率...
  • 基础设施是监控
    • 消息中间件: Kafka, RocketMQ, RabbitMQ等..
    • Web服务容器: Tomcat, Jetty, Nginx等..
    • 数据库及缓存系统: Mysql, Redis, MogoDB, ElasticSearch.
    • 存储系统: Ceph等.
  • 应用层监控
    • 用于衡量应用程序代码的状态和性能.
  • 业务层监控
    • 用于衡量应用程序价值, 例如电子商务网站的销售量.
    • QPS,DAU日活, 转化率.
    • 业务接口: 登录数, 注册数, 订单量 搜索量, 的支付量等.

 云原生时代可观测性

  • 可观测性系统

    • 指标监控(Metrics): 随时间推移产生的一些于监控相关的可集合数据点.
    • 日志监控(Logging): 离散式的日志或事件.
    • 链路跟踪(Tracing): 分布式应用调用链链跟踪.

CNCF 将可观测性和数据分析归类一个单独的类别, 且划分成了4个子类

  • 系统监控: 以 Prometheus 等为代表.
  • 日志系统: 以 ElasticStack和PLG Stack等为代表
  • 分布式调用链跟踪系统: 以 Zipkin, Jaeger, SkyWalking, Pinpoint等为代表.
  • 混沌工程系统: 以 ChaosMonkey, 和 ChaosBlade等为代表.

Prometheus

prometheus 是一款时序(time series)数据库,  但他的功能却并非止步于TSDB,  而是一款设计用于进行目标(Target)监控的关键组件.

组合生态系统内的其他组件, 例如 Pushgateway, Altermanager 和 Grafana等, 可构成完整的IT监控系统.

Metric, 有独创的指标格式, Prometheus 格式.

多维度标签, 每个独立的标签组合都代表一个独立的时间序列.

内建时序数据的聚合, 切割, 切片功能.

支持双精度浮点型数据.

时序数据简介

时序数据, 是在一段时间内通过重复测量(measurement)而获得的观测值的集合; 将这些观测值绘制于图形之上, 它会有一个数据轴和一个时间轴.

服务器指标数据, 应用程序性能监控数据, 网络数据等也是时序数据.

如何抓取数据Pull?

基于 HTTP call, 从配置文件中指定的网络端点(endpoint) 上周期性获取指标数据.

Prometheus 支持通过三种类型的途径从目标上抓取(Scrape) 指标数据.

  • Exporters 内建不支持指标暴露

  • Instrumentation 应用程序内建的

  • Pushgateway

Prometheus 同其它 TSDB 相比有一个非常经典的特性; 他可以主动从 Target 上"拉取" 数据, 而非等待被监控端的agent推送"push";

两种方式各有优劣, 其中 Pull 模型的优势在于:

  • 集中控制: 有利于将配置集中在 Prometheus Server上完成, 包括指标即采集速率等.

  • Prometheus 的根本目标在于收集 在 Target 上预先完成集合的聚合性数据.而非一款由时间驱动的存储系统.

Prometheus 生态组件

  • Prometheus Server: 收集和存储时间序列数据.
  • Client Library: 客户端库, 目的在于为那些期望原生提供 Lnstrumentation 更的应用程序提供便捷的开发途径.
  • Push Gateway: 接收那些通常由短期作业生成的指标数据的网关, 并支持Prometheus Server 进行指标拉取操作;
  • Exporters: 用于暴露现有应用程序或者服务(不支持Instrumentation) 的指标给Prometheus Server.
  • Alertmanager: 从 Prometheus Server 接收到告警通知后, 通过去重分组, 路由等预处理功能以高效向用户完成告警信息发送.
  • Data Visuaization: Prometheus Web UI(Prometheus Server 内建), 及 Grafana 等,
  • Service Discovery: 动态发现待监控的Target, 从而完成监控配置的中间组件, 从容器化环境尤为重要, 该组件目前由 Prometheus Server内建支持.

Prometheus 数据模型

Prometheus 仅用于以键值形式存储的时间式的聚合数据, 它并不支持存储文本信息.

其中 键 成为指标 "Metric", 它通常意味着 CPU速率, 内存使用速率, 或 分区空闲比例等.

用一指标可能会适配到读个目标或设备, 因而他使用标签作为元数据, 从而为 Metric 添加更多的信息描述纬度.

这些标签还可以作为过滤器进行指标过滤机聚合运算.

指标类型

Counter 计数器

用于保存单调递增的数据, 例如访问站点访问次数等, 不能为负值, 也不支持减少, 但是可以重置为0.

Gauge 仪表盘

用于 存储有着起伏特征的指标数据, 例如内存空间大小等;

Gauge 是 Counter 的超集, 但存在指标数据丢失的可能性是, Counter 能让用户确切来哦接指标随时间的变化, 而 Gauge 则可能随时间流逝而精准度越来越低.

Histogram 直方图

它会在一段时间内对数据进行采样, 并将其计入可配置的 bucket 之中, Histogram 能够储存更多的信息, 包括样本值分部在每个 bucket (bucket 自身的可配置) 中的数量, 所有样本值之和和以及总的样本数量, 从而 Prometheus 能够使用内建函数进行如下操作:

  • 计算样本平均值: 以值的总和除以值的数量.

  • 计算样本分位值: 分为数有助于了解符合特定标准的数据个数. 例如评估响应时长超1秒中的请求比例, 若超过20%即发送告警等.

summary 摘要

Histogram 扩展类型, 单它使直接由被检测端自行聚合计算出分位数, 并将计算结果响应给 Prometheus Server 的样本采集请求, 因而, 其分位数计算是由监控端完成.

Prometheus基础的更多相关文章

  1. Prometheus基础应用

    简介 Prometheus使用扫盲,包含基础的概念和操作说明,基于官网和个人测试. versoin: 2.14 官网 GitHub 安装 prometheus安装运行非常方便,下载后解压,运行根目录下 ...

  2. Prometheus基础(二)

    1.什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控 ...

  3. Prometheus监控学习记录

    官方文档 Prometheus基础文档 从零开始:Prometheus 进阶之路:Prometheus —— 技巧篇 进阶之路:Prometheus —— 理解篇 prometheus的数据类型介绍 ...

  4. 360 基于 Prometheus的在线服务监控实践

    转自:https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主题简介: Prometheus基础介绍 Prometheus打点及查询技巧 Promethe ...

  5. 《为什么说 Prometheus 是足以取代 Zabbix 的监控神器?》

    为什么说 Prometheus 是足以取代 Zabbix 的监控神器?   Kuberneteschina 致力于提供最权威的 Kubernetes 技术.案例与Meetup! ​关注他 12 人赞同 ...

  6. prometheus学习系列一: Prometheus简介

    Prometheus简介 prometheus受启发于Google的Brogmon监控系统(相似kubernetes是从Brog系统演变而来), 从2012年开始由google工程师Soundclou ...

  7. Prometheus 学习目录

    Prometheus 介绍 Prometheus 安装 https://www.bookstack.cn/read/prometheus-book/quickstart-why-monitor.md ...

  8. 01 . Prometheus简介及安装配置Grafana

    Promethus简介 Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在S ...

  9. Python调用Prometheus监控数据并计算

    Prometheus是什么 Prometheus是一套开源监控系统和告警为一体,由go语言(golang)开发,是监控+报警+时间序列数 据库的组合.适合监控docker容器.因为kubernetes ...

随机推荐

  1. undefined reference to `recvIpcMsg(int, ipc_msg*)'——#ifdef __cplusplus extern "C" { #endif

    最近在弄一个进程间通信,原始测试demon用c语言写的,经过测试ok,然后把接口封装起来了一个send,一个recv. 使用的时候send端是在一个c语言写的http服务端使用,编译ok没有报错,但是 ...

  2. 数值的整数次方 牛客网 剑指Offer

    数值的整数次方 牛客网 剑指Offer 题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方 class Solution: #run ...

  3. binary-tree-preorder-traversal leetcode C++

    Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...

  4. 详解calc()函数功能

    calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢?这一点也让我百思不得其解,今天有一同事告诉我,说CSS3中有一个属性 ...

  5. 问题 Q: 最大的数

    题目描述 小明和小红在打赌说自己数学学的好,于是小花就给他们出题了,考考他们谁NB,题目是这样的给你N个数 在这n个数之间添加N-1个*或+,使结果最大,但不可以打乱原顺序,请得出这个结果 如 1 3 ...

  6. 逐浪CMSv8.2发布-集成Node与Vue脚手架和PowerShell支持的新一代网站管理系统

    极速下载:https://www.z01.com/down/3713.shtml 楼倚霜树外,镜天无一毫. 南山与秋色,气势两相高. -(唐)杜牧 北京时间2020年10月20日:领先的CMS与web ...

  7. Databend 设计概述 | 白皮书

    Databend 是一个开源的.完全面向云架构的新式数仓,它提供快速的弹性扩展能力,并结合云的弹性.简单性和低成本,使 Data Cloud 构建变得更加容易. Databend 把数据存储在像 AW ...

  8. dos的基本命令

    打开cmd的方式 开始+系统+命令提示符 Win键+R 输入cmd打开控制台(推荐使用) 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口 资源管理器的地址栏前面加上cmd + ...

  9. printf("%d\n",printf("%d",printf("%d",i)));

    #include <stdio.h> int printf( const char *format, ... );首先 得看printf的返回类型是 int 这个函数的返回值是 你输出的位 ...

  10. SpringCloud升级之路2020.0.x版-40. spock 单元测试封装的 WebClient(上)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们来测试下前面封装好的 WebClient,这里开始,我们使用 spock 编写 gro ...