Prometheus 架构及其特性

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用微信支付,扫码加群。由于维护成本问题得不到解决,可能将停止线上维护。

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》
https://blog.csdn.net/qq_57756904/category_12173599.html
uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!

2

Prometheus 是一个 云原生计算基金会 项目,它是一个系统和服务的监控系统。它会从配置的目标中以指定的时间间隔收集指标,评估规则表达式,显示结果,并在观察到的条件满足时触发警报。

以下特性使得 Prometheus 与其他指标和监控系统区别开来:

  • 多维度 数据模型(由指标名称和键/值维度集定义的时间序列)
  • PromQL,一种 强大且灵活的查询语言,以利用这种维度
  • 不依赖于分布式存储;单个服务器节点是自主的
  • 使用 HTTP 拉取模式 收集时间序列
  • 支持通过中间网关 推送时间序列,适用于批处理作业
  • 目标可通过 服务发现静态配置 进行发现
  • 支持多种 图表和仪表盘模式
  • 支持层级和水平 联合

架构概览

安装

安装 Prometheus 有多种方法。

预编译二进制文件

可在 下载 部分 的 prometheus.io 上获取发布版本的预编译二进制文件。使用最新生产版本的二进制文件是安装 Prometheus 的推荐方法。有关所有详细信息,请参见文档中的 安装 章节。

Docker 镜像

Docker 镜像可在 Quay.io或 Docker Hub 上获取。

您可以启动一个 Prometheus 容器来试用...

复制代码
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus

Prometheus 现在可以通过 http://localhost:9090/ 访问。

从源代码构建

要从源代码构建 Prometheus,您需要:

Go 版本 1.22 或更高。

NodeJS 版本 22 或更高。

npm 版本 8 或更高。

首先,克隆仓库:

复制代码
git clone https://github.com/prometheus/prometheus.git
cd prometheus

您可以使用 go 工具来构建并安装 prometheuspromtool 二进制文件至您的 GOPATH 目录中:

复制代码
GO111MODULE=on go install github.com/prometheus/prometheus/cmd/...
prometheus --config.file=your_config.yml

然而,在利用 go install 构建 Prometheus 时,Prometheus 需要从本地文件系统下的 web/ui/staticweb/ui/templates 目录中读取其 Web 资产。为了找到这些资产,您需要从克隆仓库的根目录运行 Prometheus。请注意,除非已经使用 make assetsmake build 显式构建,否则这些目录不包括 React 用户界面。

上述配置文件的示例可以在此处找到:配置文件示例。

您还可以使用 make build 进行构建,这将编译 Web 资产,从而使得 Prometheus 可以从任何位置运行:

复制代码
make build
./prometheus --config.file=your_config.yml

Makefile 提供了以下多个构建目标:

  • build :构建 prometheuspromtool 二进制文件(包括构建和编译 Web 资产)
  • test:运行测试
  • test-short:运行简短测试
  • format:格式化源代码
  • vet:检查源代码中的常见错误
  • assets:构建 React 用户界面

服务发现插件

Prometheus 集成了许多服务发现插件。在从源代码构建 Prometheus 时,您可以编辑 plugins.yml 文件以禁用某些服务发现功能。该文件是一个 YAML 格式的列表,包含了将会被编译进 Prometheus 二进制文件的 Go 导入路径。

修改文件后,您需要重新运行 make build

如果您使用其他方法编译 Prometheus,make plugins 将相应地生成插件文件。

如果您添加了树外插件,我们目前不推荐这么做,可能需要额外的步骤来调整 go.modgo.sum 文件。加载第三方代码时,请始终保持警惕。

构建 Docker 镜像

make docker 目标旨在用于我们的 CI 系统。您可以使用以下命令在本地构建 Docker 镜像:

复制代码
make promu
promu crossbuild -p linux/amd64
make npm_licenses
make common-docker-amd64

将 Prometheus 作为 Go 语言库使用

远程写入

我们独立发布了我们的远程写入 protobuf 定义,在 buf.build 上可以找到。

您可以将它作为库来使用:

复制代码
go get buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest

这是实验性的。

Prometheus 代码库

为了遵守 go mod 规则, Prometheus 的版本号与 Go 模块的发布版本号不完全匹配。

对于 Prometheus v3.y.z 版本的发布,我们将发布等价的 v0.3y.z 标签。在 v0.3y.z 中,y 始终填充为两位数字,如有必要,前面加零。

因此,希望将 Prometheus v3.0.0 作为库使用的用户可以这样做:

复制代码
go get github.com/prometheus/[email protected]

对于 Prometheus v2.y.z 版本的发布,我们提供了相应的 v0.y.z 标签。

因此,一个希望将 Prometheus v2.35.0 作为库使用的用户可以这样做:

复制代码
go get github.com/prometheus/[email protected]

此解决方案明确了我们可能会在面向用户的次要版本之间破坏内部 Go API,因为在主版本零中允许破坏性变更。

React UI 开发

关于基于 React 的 UI 构建、运行和开发的更多信息,请参阅 React 应用的README.md

相关推荐
你不是我我8 分钟前
【Java开发日记】说一说序列化与反序列化中存在的问题
java
yzhSWJ13 分钟前
Excel 操作 转图片,转pdf等
java·pdf·excel
小贾要学习23 分钟前
【C++】stack,queue和priority_queue(优先级队列)
java·c++·rpc
weixin_5150696633 分钟前
线程池详解:原理、使用与优化
java·开发语言
武昌库里写JAVA1 小时前
Quartus 开发可实现人工智能加速的 FPGA 系统
java·vue.js·spring boot·课程设计·宠物管理
xujinwei_gingko1 小时前
服务发现Nacos
java·服务发现
心想好事成2 小时前
尚硅谷redis7 47-48 redis事务之理论简介
java·数据库·redis
bloglin999992 小时前
java的vscode扩展插件
java·开发语言·vscode
Magnum Lehar2 小时前
vulkan游戏引擎的pipeline管道实现
java·开发语言·游戏引擎
Magnum Lehar3 小时前
vulkan游戏引擎的vulkan/shaders下的image实现
java·前端·游戏引擎