Estamos usando o Nomad para agendar tarefas que são então registradas no Consul de onde são apanhadas em raspagem de Prometheus.
service.hcl:
job "myjob" {
group "mygroup" {
count = "1"
task "mytask" {
driver = "docker"
config {
image = "registry/stuff:someVersion"
port_map {
http = 8080
}
}
resources {
memory = 1024
network {
mbits = 100
port "http" {}
}
}
meta {
version = "0.0.1"
}
service {
tags = ["monitoring", "tagone", "tagtwo"]
port = "http"
name = "${JOB}"
check {
type = "http"
port = "http"
path = "/health"
interval = "20s"
timeout = "3s"
}
}
}
}
}
prometheus.yml:
scrape_configs:
- job_name: 'java_apps'
consul_sd_configs:
- server: "1.2.3.4:8500"
scheme: "http"
relabel_configs:
- source_labels: ['__meta_consul_tags']
regex: '(.*),monitoring,(.*)'
action: keep
- source_labels: ['__meta_consul_service']
target_label: service
metrics_path: /prometheus
Agora, minha pergunta é: existe alguma maneira de propagar o valor das chaves meta
do arquivo service.hcl
para o Prometheus? De acordo com a [documentação do Prometheus | link ],
Os seguintes meta-rótulos estão disponíveis nos alvos durante a remarcação: ... __meta_consul_metadata_: cada valor de chave de metadados do destino
Minha pergunta é dupla:
* O que exatamente está sendo considerado como metadados para o alvo?
* Como posso propagar a chave version
da sub-rotina meta
para o Prometheus para ser usada como um rótulo?
Tags prometheus consul nomad