使用Prometheus实现大规模的应用程序监视

2023-10-27

Prometheus是一个越来越受欢迎的开源工具,这有充分的理由。它可以为应用程序和服务器提供监视和警报。 Prometheus的强大优势在于监视服务器端指标,并将其存储为时间序列数据 。 尽管Prometheus不适合应用程序性能管理,主动控制或用户体验监视(尽管GitHub扩展确实使Prometheus可以使用用户浏览器指标),但Prometheus作为监视系统的能力很强,并且能够通过联盟实现高可扩展性服务器的数量使Prometheus成为各种使用案例的强大选择。

在本文中,我们将仔细研究Prometheus的体系结构和功能,然后研究该工具的详细实例。

Prometheus架构和组件

Prometheus由Prometheus服务器(通过PromQL查询语言处理服务发现,度量标准检索和存储以及时间序列数据分析),度量标准的数据模型,图形GUI和对Grafana的本机支持组成 。 还有一个可选的警报管理器,允许用户通过查询语言定义警报,以及一个可选的推送网关,用于短期应用程序监视。 这些组件的位置如下图所示。

Prometheus可以通过使用代理在应用程序环境中执行通用代码来自动捕获标准指标。 它还可以通过检测捕获自定义指标,将自定义代码放在受监视应用程序的源代码中。 Prometheus正式支持Go,Python,Ruby和Java / Scala的客户端库 ,还使用户能够编写自己的库。 此外,还有许多其他语言的非官方库。

出口商可以自动激活他们可能正在使用的许多流行软件解决方案的工具。 例如,基于JVM的应用程序(例如开源 Apache KafkaApache Cassandra)的用户可以利用现有的 JMX导出器轻松收集指标。 在其他情况下,将不需要导出程序,因为该应用程序将 公开 Prometheus格式的指标。 Cassandra上的用户可能还会发现Instaclustr的免费提供的Prosmetheus Cassandra Exporter很有帮助,因为它将Cassandra指标从自我管理的群集集成到Prometheus应用程序监视中。

同样重要的是:开发人员可以利用可用的节点导出器来监视内核指标和主机硬件。 Prometheus还提供了Java客户端 ,具有许多功能,这些功能可以通过单个DefaultExports.initialize()进行逐项注册或一次注册 命令-包括内存池,垃圾回收,JMX,类加载和线程计数。

Prometheus数据建模和指标

Prometheus提供了四种度量标准类型:

  • 计数器:计算递增值; 重新启动可以将这些值归零
  • 量规:跟踪可以上升和下降的指标
  • 直方图:根据指定的响应大小或持续时间观察数据,并对观察值的总和以及可配置存储桶中的计数进行计数
  • 摘要:对类似于直方图的观测数据进行计数,并提供可配置的分位数,这些分位数在滑动时间窗口内计算

Prometheus时间序列数据度量标准每个都包含一个字符串名称,该名称遵循命名约定,以包括受监视数据主体的名称,逻辑类型和所使用的度量单位。 每个度量标准都包括时间戳减少到毫秒的64位浮点值流,以及一组标注其测量尺寸的key:value对。 Prometheus会自动将JobInstance标签添加到每个度量标准,以分别跟踪数据目标的已配置作业名称和已刮取目标URL的<host>:<port>段。

普罗米修斯的例子:异常Machina异常检测实验

在进入示例之前,请按照此入门指南下载并开始使用开源Prometheus。

为了演示如何将Prometheus付诸实践并进行大规模的应用程序监视,让我们看一下最近在Instaclustr完成的实验性Anomalia Machina项目 。 这个项目只是一个测试用例,而不是商用解决方案,它在Kubernetes部署的应用程序中利用Kafka和Cassandra,该应用程序对流数据执行异常检测。 (这种检测对于包括IoT应用程序和数字广告欺诈在内的用例非常重要。)试验性应用程序严重依赖Prometheus来收集分布式实例中的应用程序度量标准并使其易于查看。

此图显示了实验的体系结构:

我们利用Prometheus的目标包括监视应用程序的更通用指标,例如吞吐量,以及由Kafka负载生成器(Kafka生产者),Kafka使用者和负责检测应用程序中任何异常情况的Cassandra客户端提供的响应时间。数据。 Prometheus还监视系统的硬件指标,例如运行该应用程序的每个AWS EC2实例的CPU。 该项目还依靠Prometheus来监视特定于应用程序的指标,例如每个Cassandra读取返回的总行数,以及至关重要的是,它检测到的异常数。 为了简化起见,所有这些监视都是集中的。

实际上,这意味着使用生产者,消费者和检测者方法以及以下三个指标形成测试管道࿱

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Prometheus实现大规模的应用程序监视 的相关文章

随机推荐

  • vscode远程连接调试

    远程调试是为了解决在本机开发环境与线上不一致导致调试难 搭建繁琐 环境 系统 win10 系统工具 openssh 工具 vscode vscode插件 Remote SSH Remote Development REST Client 下
  • Python实现多子图绘制系统

    文章目录 修改DrawType DrawType的调用逻辑 绘图逻辑 源代码 Python绘图系统 从0开始的3D绘图系统 一个3D坐标系 多个函数 图表类型和风格 极坐标绘图 散点图和条形图 混合类型图表 多子图 修改DrawType 之
  • ..\USER\stm32f10x.h(298): error: #67: expected a "}"

    相信很多人遇到过出现这个错误 USER stm32f10x h 298 error 67 expected a 其它博主大多数都是去掉这个宏定义 STM32F10X HD 不否认这种方法 此处引用博主 https www cnblogs c
  • Kotlin面向对象基础使用方法(继承、接口、Lambda、空指针检查机制等)

    三 面向对象 1 继承 1 1 open改变类的继承属性 在kotlin设计时默认所有的非抽象类是无法被继承的 如果想要使得一个非抽象类可以被继承 我们需要使用open关键字 open class Person var name var a
  • Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取

    为什么要写这篇文章 1 因为最近在学习 软件调试 这本书 看到书中的某个调试历程中讲了Windows的系统调用的实现机制 其中讲到了从Ring3跳转到Ring0之后直接进入了KiFastCallEntry这个函数 2 碰巧前天又在网上看到了
  • mapboxgl 添加带注记marker

  • 现有的评分和排名算法

    前言 在之前的文章 投票 公平 中已经得到了一个令人沮丧的结论 只有道德上的相对民主 没有制度上的绝对公平 投票是对不同选项或个体的排序 在投票中我们关注更多的是相对位置这样定性的结论 例如 积分前三名的同学才能进入下一环节 但有的时候我们
  • [python网站开发] 一.Django入门知识及创建第一个网站

    随着Python应用越来越广泛 学习Python相关知识越来越多的人选择 最新研究 Python已成为美国top高校最受欢迎的语言 同时国内用Python开发的网站越来越多 比较知名的网站如知乎 豆瓣 果壳等 再加上之前自己数据分析和网络爬
  • 本地部署 langchain-ChatGLM

    简介 什么是 langchain ChatGLM 一种利用 ChatGLM 6B langchain 实现的基于本地知识的 ChatGLM 应用 增加 clue ai ChatYuan 项目的模型 ClueAI ChatYuan large
  • 成为机器人工程师需要学习那些技术

    机器人工程师是未来比较吃香的工作岗位 要成为机器人工程师 ChatGPT的回答是 建议你需要学习以下技术 1 机械工程 了解机械结构 运动学和动力学 以及机械设计和制造方面的知识 2 电子工程 学习电路设计 电子元件选择和电子系统集成 以及
  • 初识Python装饰器

    Python装饰器 听过Python的人 肯定也听过装饰器的名头 但是好多人不明白装饰器是什么 是如何工作的 原理又是什么 先看看装饰器的定义 如果想要修改某个函数的功能 但是又不想修改这个函数的定义 这种在函数运行期间动态增加功能的方式成
  • ABP-使用Dapper框架

    ABP使用Dapper框架已经有很成熟的第三方包 简单的几句代码就能完成 一 首先准备好一个数据库建一个表 二 建一个实体表 Table BasBloodLevel public class BasBloodLevel Entity
  • 《设计模式》-代码质量评价标准和设计原则

    系列文章目录 设计模式 代码质量评价标准和设计原则 设计模式 创建型 单例模式 工厂模式 建造者模式 原型模式 设计模式 结构型 代理模式 装饰者模式 适配器模式 桥接模式 门面模式 组合模式 亨元模式 文章目录 系列文章目录 前言 一 代
  • 第10章 近似推断

    10 近似推断 在概率模型的应用中 一个中心任务是在给定观测 可见 数据变量X的条件下 计算潜在变量Z的后验概率分布 p Z X p Z X p Z X 以及计算
  • element表格翻页后回到顶部

  • Linux mode命令,linux命令

    一 inode节点号 在linux中 每一个文件都有唯一的inode号 inode号也是系统识别的唯一编码 而文件名仅仅是为了使用者区分辨认 inode index node 表中包含文件系统所有文件列表 一个节点 索引节点 是在一个表项
  • 数字IC设计——跨时钟域篇2(亚稳态)

    数字IC设计 跨时钟域篇2 亚稳态 一 建立时间与保持时间 前提条件 对任何一种触发器 在时钟触发沿前 后的一个小时间窗口内 输入信号必须稳定 输入信号应提前时钟上升沿 假设上升沿有效 T时间到达芯片 这个T就是建立时间Setup time
  • 海思3518E V200中RTSP实验自己构建RTP发送的函数代码及VLC播放器的一个播放注意事项

    在VLC播放器中 工具 首选项 设置里面需要注意必须使用下图中红色框圈出来的设置 如果选择的是后面的 RTP over RTSP TCP 的话会播放不出画面 具体原因未去深入探究 另可以参考他人的代码完成其他功能 网址如下 https bl
  • msi afterburner怎么设置最好?推荐设置

    msi afterburner是一款为显卡超频和监控提供的软件 广泛应用于游戏玩家和电脑爱好者之间 通过适当的设置 可以显著提升显卡的性能 下面就给大家介绍一下msi afterburner推荐设置 纯净之家 win7纯净版系统 win7
  • 使用Prometheus实现大规模的应用程序监视

    Prometheus是一个越来越受欢迎的开源工具 这有充分的理由 它可以为应用程序和服务器提供监视和警报 Prometheus的强大优势在于监视服务器端指标 并将其存储为时间序列数据 尽管Prometheus不适合应用程序性能管理 主动控制