Go 将普罗米修斯部署到云铸造厂

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

我想在不使用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实用工具编译的


有没有办法将普罗米修斯部署到云铸造厂,比如使用另一个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