请访问 prometheus.io 以获取完整的文档、示例和指南。
Prometheus 是云原生计算基金会项目,是一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并可以在观察到指定条件时触发警报。
Prometheus 与其他指标和监控系统的区别在于:
多维数据模型(由指标名称和键/值维度集定义的时间序列)
PromQL,一种强大而灵活的查询语言,可以利用这种维度
不依赖分布式存储;单个服务器节点是自治的
用于时间序列收集的 HTTP拉模型
通过批处理作业的中间网关支持推送时间序列
通过服务发现或静态配置发现目标
多种图形和仪表板支持模式
支持分层和水平联合
安装 Prometheus 有多种方法。
prometheus.io 上的下载部分提供了已发布版本的预编译二进制文件。使用最新的生产版本二进制文件是安装 Prometheus 的推荐方法。有关所有详细信息,请参阅文档中的安装章节。
Docker 镜像可在 Quay.io 或 Docker Hub 上获取。
您可以启动 Prometheus 容器来尝试它
docker run --name prometheus -d -p 127.0.0.1:9090:9090 舞会/普罗米修斯
现在可以通过 http://localhost:9090/ 访问 Prometheus。
要从源代码构建 Prometheus,您需要:
Go 版本 1.17 或更高版本。
NodeJS 版本 16 或更高版本。
npm 版本 7 或更高版本。
首先克隆存储库:
git 克隆 https://github.com/prometheus/prometheus.gitcd prometheus
您可以使用go
工具构建prometheus
和promtool
二进制文件并将其安装到GOPATH
中:
GO111MODULE=开始安装 github.com/prometheus/prometheus/cmd/... 普罗米修斯 --config.file=your_config.yml
然而,当使用go install
构建 Prometheus 时,Prometheus 将期望能够从web/ui/static
和web/ui/templates
下的本地文件系统目录读取其 Web 资源。为了找到这些资产,您必须从克隆存储库的根目录运行 Prometheus。另请注意,这些目录不包含 React UI,除非它是使用make assets
或make build
显式构建的。
可以在此处找到上述配置文件的示例。
您还可以使用make build
进行构建,它将在 Web 资产中进行编译,以便 Prometheus 可以从任何地方运行:
进行构建 ./prometheus --config.file=your_config.yml
Makefile 提供了几个目标:
build :构建prometheus
和promtool
二进制文件(包括在 Web 资产中构建和编译)
测试:运行测试
test-short :运行简短测试
format :格式化源代码
vet :检查源代码中的常见错误
资产:构建 React UI
Prometheus 捆绑了许多服务发现插件。从源代码构建 Prometheus 时,您可以编辑 plugins.yml 文件以禁用某些服务发现。该文件是 yaml 格式的 go 导入路径列表,将内置到 Prometheus 二进制文件中。
更改文件后,需要再次运行make build
。
如果您使用其他方法编译 Prometheus, make plugins
将生成相应的插件文件。
如果您添加树外插件(我们目前不认可),则可能需要额外的步骤来调整go.mod
和go.sum
文件。与往常一样,加载第三方代码时要格外小心。
make docker
目标是专为在我们的 CI 系统中使用而设计的。您可以使用以下命令在本地构建 docker 镜像:
制作普罗穆 promu crossbuild -p linux/amd64 制作 npm_licenses 制作通用 docker-amd64
我们正在 buf.build 上独立发布远程写入 protobuf。
您可以将其用作库:
去获取 buf.build/gen/go/prometheus/prometheus/protocolbuffers/go@latest
这是实验性的。
为了遵守 go mod 规则,Prometheus 版本号与 Go 模块版本不完全匹配。对于 Prometheus v2.yz 版本,我们正在发布等效的 v0.yz 标签。
因此,想要使用 Prometheus v2.35.0 作为库的用户可以执行以下操作:
去获取 github.com/prometheus/[email protected]
该解决方案清楚地表明,我们可能会在面向用户的次要版本之间破坏内部 Go API,因为主要版本 0 中允许进行重大更改。
有关在基于 React 的 UI 上构建、运行和开发的更多信息,请参阅 React 应用程序的 README.md。
Godoc 文档可通过 pkg.go.dev 获取。由于Go模块的特殊性,v2.xy将显示为v0.xy
请参阅社区页面,了解如何通过各种沟通渠道联系 Prometheus 开发人员和用户。
参考 CONTRIBUTING.md
Apache 许可证 2.0,请参阅许可证。