Динамически добавлять карту значения ключа в структуру - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь выяснить, как я могу добавить пары ключ-значение map[string]string в структуру prometheus.Labels.

Если у вас есть опыт работы с прометеем: я пытаюсь динамически добавлять метки и их значения.

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?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете использовать простой цикл for range на labelsMap и добавлять каждую пару, например ::

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

Или, поскольку prometheus.Labels - это простая карта:

type Labels map[string]string

И если вы не хотите изменять labelsMap впоследствии, простой тип преобразование также работает:

containerLabels := prometheus.Labels(labelsMap)
...