我在 openshift 上有一个部署 -
host status monitor app
.
我还有一个普罗米修斯实例和操作员的部署。
这是一个 golang 应用程序,它执行一些操作并在 prometheus 上发布指标。
我在 openshift 中创建了一个服务和一条路线,使用这条路线我可以看到我所有的普罗米修斯指标。我正在使用路由中的链接作为 grafana 的 prmotheus 数据源。
现在的问题是,如果我增加部署的 pod 数量——
host status monitor app
说 2,第二个 pod 会覆盖第一个 pod 发布的所有普罗米修斯指标。
我正在使用以下函数发布指标:
func PublishMetrics(hostName, originalState, swarch, server, provtype string) {
states := []string{STATE_ACTIVE, STATE_UNRESPONSIVE, STATE_INACTIVE, STATE_DECOMISSIONED, STATE_REMOVED}
for _, state := range states {
HostStateGauge.With(prometheus.Labels{
"host": hostName,
"state": state,
"swarch": swarch,
"server": server,
"provtype": provtype,
}).Set(0)
}
HostStateGauge.With(prometheus.Labels{
"host": hostName,
"state": STATE_UNKNOWN,
"swarch": "",
"server": "",
"provtype": "",
}).Set(0)
HostStateGauge.With(prometheus.Labels{
"host": hostName,
"state": originalState,
"swarch": swarch,
"server": server,
"provtype": provtype,
}).Set(1)
}