【问题标题】:Dynamically add key value map to struct将键值映射动态添加到结构
【发布时间】:2018-11-05 12:27:36
【问题描述】:

我试图弄清楚如何将 map[string]string 的键值对添加到我的 prometheus.Labels 结构中。

如果您有使用 prometheus 的经验:我正在尝试动态添加标签及其值。

labelsMap := make(map[string]string)
labelsMap["nodepool"] = "default"
labelsMap["zone"] = "europe-west"

// here I'd like to add my key / value pairs from my map
containerLabels := prometheus.Labels{
    "node":      "nodename",
    "container": "foo",
    "qos":       "bar",
}
requestedContainerCPUCoresGauge.With(containerLabels).Set(containerMetric.RequestedCPUCores)

我的问题:

如何从给定映射 labelsMap 中动态添加键/值对到我的 containerLabels 中?

【问题讨论】:

    标签: dictionary go prometheus


    【解决方案1】:

    您可以在labelsMap 上使用简单的for range 循环,并添加每一对,例如:

    containerLabels := prometheus.Labels{}
    for k, v := range labelsMap {
        containerLabels[k] = v
    }
    

    或者因为prometheus.Labels只是一个简单的地图:

    type Labels map[string]string
    

    如果你以后不想修改labelsMap,一个简单的类型conversion也可以:

    containerLabels := prometheus.Labels(labelsMap)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 2017-05-25
      • 1970-01-01
      相关资源
      最近更新 更多