Go 将普罗米修斯部署到云铸造厂
我想在不使用Docker容器的情况下将Prometheus部署到Cloud Foundry。当我尝试使用标准Cloud Foundry Go Buildpack部署它时,我得到以下错误:Go 将普罗米修斯部署到云铸造厂,go,cloud-foundry,prometheus,Go,Cloud Foundry,Prometheus,我想在不使用Docker容器的情况下将Prometheus部署到Cloud Foundry。当我尝试使用标准Cloud Foundry Go Buildpack部署它时,我得到以下错误: can't load package: package prometheus: no buildable Go source files in /tmp/tmp.vv4iyDzMvE/.go/src/prometheus 这在某种程度上是有道理的,因为根目录中实际上没有源代码,并且项目是用Prometheus
can't load package: package prometheus: no buildable Go source files in /tmp/tmp.vv4iyDzMvE/.go/src/prometheus
这在某种程度上是有道理的,因为根目录中实际上没有源代码,并且项目是用Prometheus实用工具编译的
有没有办法将普罗米修斯部署到云铸造厂,比如使用另一个Buildpack或其他东西?好的,在仔细研究了一下之后,我得到了如下的结果 manifest.yml
---
applications:
- name: prometheus
instances: 1
buildpack: https://github.com/cloudfoundry/go-buildpack.git
command: prometheus
env:
GOPACKAGENAME: github.com/prometheus/prometheus
GO_INSTALL_PACKAGE_SPEC: github.com/prometheus/prometheus/cmd/prometheus
memory: 1000M
---
applications:
- name: prometheus
instances: 1
buildpack: https://github.com/cloudfoundry/binary-buildpack.git
command: ./prometheus --config.file=prometheus.yml --web.listen-address=:8080 --web.enable-admin-api
memory: 1024M
random-route: true
但是为了监听正确的端口,我能找到的唯一解决方案是在cmd/prometheus/config.go
文件的init()函数的开头添加以下内容
port := ":9090"
if s := os.Getenv("PORT"); s != "" {
port = ":"+s
}
cfg.fs.StringVar(
&cfg.web.ListenAddress, "web.listen-address", ":9090",
"Address to listen on for the web interface, API, and telemetry.",
)
然后更改以下部分(也在init()函数中)
到
在这之后,您可以使用cf push
简单地部署应用程序,并且一切都应该像charm一样工作普罗米修斯是一个TSDB。它的目的是消耗越来越多的千兆字节的数据
在CloudFoundry平台上,您受到可用资源的限制。
那么,为什么要将普罗米修斯部署到云铸造厂呢
为什么不启动一个独立的波什控制器
,并通过该控制器将普罗米修斯作为波什部署和独立部署。然后将其作为杯子注入Cloud Foundry
我只是好奇并试图理解用例。我有同样的问题,但(就在今天)提出了一个稍微不同的解决方案,这对我来说似乎更容易
我使用了prometheus-2.2.1-linux-amd64二进制版本
我修改了prometheus.yml,将默认端口8080用作目标(最后一行):
这是使用二进制构建包,并告诉普罗米修斯启动服务器,监听端口8080
2文件更改和此更改:
cf push
现在,普罗米修斯正在我的空间中运行关键的Web服务。这些是反问句吗?如果不是,则属于问题的注释-。这是一个好主意。否则,最好将其作为事实陈述。
---
applications:
- name: prometheus
instances: 1
buildpack: https://github.com/cloudfoundry/binary-buildpack.git
command: ./prometheus --config.file=prometheus.yml --web.listen-address=:8080 --web.enable-admin-api
memory: 1024M
random-route: true
cf push