监控系统作用

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

采集的详情

  • 采集: 采集器, 被监控端, 监控代理, 应用程序自带仪表盘, 黑盒监控, 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. C# 如何将日期格式化ISO8601模式

    类似于这样的时间戳格式:预计来访时间,时间参数需满足ISO8601格式:yyyy-MM-ddTHH:mm:ss+当前时区,例如北京时间:2018-07-26T15:00:00 + 08:00 stri ...

  2. PWN二进制漏洞学习指南

    目录 PWN二进制漏洞学习指南 前言 前置技能 PWN概念 概述 发音 术语 PWN环境搭建 PWN知识学习途径 常见漏洞 安全机制 PWN技巧 PWN相关资源博客 Pwn菜鸡小分队 PWN二进制漏洞 ...

  3. 腾讯云星星海SA2云服务器特点

    一.腾讯云星星海SA2云服务器特点 腾讯云深度定制AMD处理器.AMD EPYC ROME ,频率3.3Ghz.提供超大单核 L3 Cache.(基础频率2.6Ghz,睿频3.3Ghz).企业级服务器 ...

  4. sql注入理解

    一.SQL注入产生的原因和危害 1.原因 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序.而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原 ...

  5. AliRTC 开启视频互动 “零计算” 时代

    在 2021 云栖大会<产业视频化创新与最佳实践>视频云主题论坛中,阿里云智能高级技术专家在<AliRTC 开启视频互动 "零处理" 时代>的主题演讲中,发 ...

  6. JVM 核心参数

    JVM 内存相关的几个核心参数 参数部分看我笔记   https://note.youdao.com/s/Ch3awnVu JVM模板 1. ParNew + CMS 版 根据服务调整 -Xmx -X ...

  7. docker file 笔记

    FROM    # FROM scratch,  FROM centos, FROM ubuntu:latest LABEL RUN  # 每运行一次RUN,image都会生成新的一层,为了美观,避免 ...

  8. 监控框架 - prometheus - 参数指标

    基于SpringBoot2.0+ Actuator metrics的监控(基于Oracle JDK9,G1) 引言 SpringBoot2在spring-boot-actuator中引入了microm ...

  9. web前端学习路径推荐

    如果你是从其他行业转行到web前端开发领域,如果你没有计算机方面基础,建议大家先从最基础的网页制作开始学习,web前端的范围非常广泛,现在已经达到了大前端的要求,不过薪资待遇也是越来越好,可以说前端开 ...

  10. Databend 社区积极拥抱 Rust 生态(202111回顾)

    Databend 旨在成为一个 开源.弹性.可靠 的无服务器数仓,查询快如闪电,与 弹性.简单.低成本 的云服务有机结合.数据云的构建,从未如此简单! Databend 对 Rust 社区的意义 Da ...