当前位置: 首页 > news >正文

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 工具来构建并安装 prometheus 和 promtool 二进制文件至您的 GOPATH 目录中:

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

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

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

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

make build
./prometheus --config.file=your_config.yml

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

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

服务发现插件

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

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

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

如果您添加了树外插件,我们目前不推荐这么做,可能需要额外的步骤来调整 go.mod 和 go.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/prometheus@v0.300.0

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

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

go get github.com/prometheus/prometheus@v0.35.0

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

React UI 开发

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

相关文章:

  • 图像形态学操作-腐蚀与膨胀,开运算和闭运算(含简单代码演示)
  • P2676 [USACO07DEC] Bookshelf B
  • MySQL重置密码终极版
  • 【Java高阶面经:缓存篇】35、 Redis单线程 vs Memcached多线程:高性能内存数据库设计解析
  • 阿里云OSS Api工具类不使用sdk
  • 通过 Terraform 构建您的第一个 Azure Linux 虚拟机
  • AWS EC2 使用Splunk DB connect 连接 RDS mysql
  • Missashe考研日记—Day44-Day50
  • 怎么判断文件是否支持多线程下载
  • orzdba.gz 下载解压使用教程:MySQL/InnoDB 监控命令参数详解与实战技巧
  • 优先级队列 模版题单
  • YOLOv8源码修改(5)- YOLO知识蒸馏(下)设置蒸馏超参数:以yolov8-pose为例
  • [C++] 洛谷B3959(GESP2024三月四级)做题
  • LLM多平台统一调用系统-LiteLLM概述
  • C++ 中的引用参数(Reference Parameter)‌
  • 【DeepSeek】计算机科学与技术专业的学习顺序
  • Vue3编译器:静态提升原理
  • 【Simulink】IEEE5/IEEE9/IEEE14/IEEE30/IEEE33/IEEE39仿真模型
  • 【Day36】
  • openjdk底层(hotspot)汇编指令的内存分布
  • 织梦网站怎样做安全防护/石家庄seo外包公司
  • 音乐 版权 做视频网站/百度云资源共享
  • 做信息网站需要什么/情感营销
  • 百度网站验证是/电商网站设计模板
  • 商务网站建站/冯站长之家
  • 如何做网站运营呢/百度竞价怎么做开户需要多少钱