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。
请参阅社区页面,了解如何通过各种沟通渠道联系普罗米修斯的开发人员和用户。
- 登录 发表评论
- 4 次浏览
Tags
最新内容
- 22 hours ago
- 1 day ago
- 1 day ago
- 3 days 15 hours ago
- 3 days 23 hours ago
- 3 days 23 hours ago
- 4 days ago
- 4 days ago
- 1 week 1 day ago
- 1 week 1 day ago