跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

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

普罗米修斯与其他度量和监控系统的区别在于:

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


架构概述


安装


安装普罗米修斯的方法多种多样。

预编译的二进制文件


prometheus.io的下载部分提供了已发布版本的预编译二进制文件。建议使用最新的生产版本二进制文件安装prometheus。有关所有详细信息,请参阅文档中的“安装”一章。

Docker镜像


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

你可以发射一个普罗米修斯容器来尝试

docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus


普罗米修斯现在可以在http://localhost:9090/.

从源构建


要从源代码构建普罗米修斯,您需要:

  • 转到1.17或更高版本。
  • NodeJS版本16或更高版本。
  • npm版本7或更高版本。


首先克隆存储库:

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资产。为了找到这些资产,您必须从克隆存储库的根目录运行普罗米修斯。还要注意的是,这些目录不包括React UI,除非它是使用make assets或make build显式构建的。

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

您也可以使用make-build进行构建,它将在web资产中进行编译,以便Prometheus可以在任何地方运行:

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


Makefile提供了几个目标:

  • 构建:构建prometheus和promtool二进制文件(包括在web资产中构建和编译)
  • 测试:运行测试
  • 测试短路:运行短路测试
  • format:格式化源代码
  • vet:检查源代码中的常见错误
  • 资源:构建React UI


服务发现插件


普罗米修斯与许多服务发现插件捆绑在一起。当从源代码构建Prometheus时,可以编辑plugins.yml文件以禁用一些服务发现。该文件是一个yaml格式的go导入路径列表,将被构建到Prometheus二进制文件中。

更改文件后,需要再次运行make-build。

如果您正在使用另一种方法编译Prometheus,make plugins将相应地生成插件文件。

如果您添加树外插件(我们目前不支持),则可能需要其他步骤来调整go.mod和go.sum文件。和往常一样,在加载第三方代码时要格外小心。

构建Docker形象


make-doker目标是为在我们的CI系统中使用而设计的。您可以使用以下命令在本地构建docker映像:

make promu
promu crossbuild -p linux/amd64
make npm_licenses
make common-docker-amd64


使用普罗米修斯作为Go Library


远程写入


我们将在buf.build上独立发布我们的远程编写原型buf。

您可以将其用作库:

go get buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest


这是实验性的。

普罗米修斯代码库


为了遵守围棋模组的规则,普罗米修斯的版本号与围棋模组的版本号并不完全匹配。对于普罗米修斯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。

更多信息


Godoc文档可通过pkg.go.dev获得。由于go模块的特性,v2.x.y将显示为v0.x.y。
请参阅社区页面,了解如何通过各种沟通渠道联系普罗米修斯的开发人员和用户。

本文地址
最后修改
星期四, June 6, 2024 - 09:08
Article