普罗米修斯指标被覆盖

问题描述 投票:0回答:0

我在 openshift 上有一个部署 -

host status monitor app
.

我还有一个普罗米修斯实例和操作员的部署。

这是一个 golang 应用程序,它执行一些操作并在 prometheus 上发布指标。

我在 openshift 中创建了一个服务和一条路线,使用这条路线我可以看到我所有的普罗米修斯指标。我正在使用路由中的链接作为 grafana 的 prmotheus 数据源。

现在的问题是,如果我增加部署的 pod 数量——

host status monitor app
说 2,第二个 pod 会覆盖第一个 pod 发布的所有普罗米修斯指标。

我想为我的部署部署多个 pod,并且它们的所有 prometheus 指标都应该在同一个路由链接中,而不会影响其他 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)
}

PS:我是openshift和prometheus的新手。

谢谢。
go openshift prometheus grafana metrics
© www.soinside.com 2019 - 2024. All rights reserved.