• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于Prometheus + Spring Boot 应用监控的问题

springboot 搞代码 4年前 (2022-01-09) 10次浏览 已收录 0个评论
文章目录[隐藏]

1. Prometheus是什么

Prometheus是一个具有活跃生态系统的开源系统监控和告警工具包。一言以蔽之,它是一套来源gaodai#ma#com搞@代~码$网开源监控解决方案。

Prometheus主要特性:

  • 多维数据模型,其中包含由指标名称和键/值对标识的时间序列数据
  • PromQL,一种灵活的查询语言
  • 不依赖分布式存储; 单服务器节点是自治的
  • 时间序列收集通过HTTP上的pull模型进行
  • 通过中间网关支持推送(push)时间序列
  • 通过服务发现或静态配置发现目标
  • 支持多种模式的图形和仪表盘

为什么用pull(拉取)而不用push(推送)呢?

因为,pull有以下优势:

  • 进行更改时,可以在笔记本电脑上运行监控
  • 可以更轻松地判断目标是否下线
  • 可以手动转到目标并使用Web浏览器检查其运行状况

目标暴露HTTP端点,Prometheus服务端通过HTTP主动拉取数据。既然是服务端自己主动向目标拉取数据,那么服务端运行在本地(我们自己的电脑上)也是可以的,只要能访问目标端点即可,同时就像心跳检测一样可以判断目标是否下线,还有,服务端自己主动拉取,那么想拉取谁的数据就拉取谁的数据,因而可以随意切换拉取目标。

回想一下Skywalking是怎么做的,SkyWalking有客户端和服务端,需要在目标服务上安装探针(agent),探针采集目标服务的指标数据,上报给服务端OAP服务,这个对目标有一定的侵入性,不过可以接受。Prometheus不需要探针,可以借助push gateway来实现push效果。

对了,有个名词要先说清楚,metrics (译:度量,指标),个人更倾向于把它翻译成指标,后面说指标就是metrics

2. 基本概念

2.1. 数据模型

Prometheus基本上将所有数据存储为时间序列:具有时间戳的值流,它们属于同一个指标和同一组标记的维度。除了存储的时间序列外,Prometheus还可以生成临时派生的时间序列作为查询的结果。

Metric names and labels

Every time series is uniquely identified by its metric name and optional key-value pairs called labels.

每个时间序列都由它的指标名称和称为标签的可选键/值对唯一标识。

样本构成实际的时间序列数据。 每个样本包括:

  • 一个64位的浮点值
  • 一个毫秒时间戳

给定指标名称和一组标签,时间序列通常使用这种符号来标识:

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

例如,有一个时间序列,指标名称是api_http_requests_total,标签有method=”POST”和handler=”/messages”,那么它可能被表示成这样:

api_http_requests_total{method="POST", handler="/messages"}

2.2. 指标类型

Counter

counter是一个累积量度,代表一个单调递增的计数器,其值只能增加或在重新启动时重置为零。例如,可以使用计数器来表示已服务请求数,已完成任务或错误的数量。

不要使用计数器来显示可以减小的值。例如,请勿对当前正在运行的进程数使用计数器,代替的应该使用量规。

Gauge

量规是一种指标,代表可以任意上下波动的单个数值。

量规通常用于测量值,例如温度或当前内存使用量,还用于可能上升和下降的“计数”,例如并发请求数。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于Prometheus + Spring Boot 应用监控的问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址