Aller au contenu

Prometheus : add/update external label(s)#

Contexte#

Il s'agit d'ajouter ou modifier un external label dans la configuration de Prometheus suite à la demande d'un client.

CAASCHR#

Champ Description
Titre [PRD] Changement external label dans Prometheus
Durée En général, il faut au moins 30m

Dans la description, bien revoir ces points :

  • les objectifs
  • la procédure de vérification
  • les labels

Description#

h2. Zones
{code}
delta kilo
{code}

h2. Préparatifs

{code}
INFRA_ZONE=infra-stg
OCB_ZONE=ocb-test06
ZONES=(delta kilo)
{code}

h2. Contexte

Ce changement ne peux pas etre validé en stg car c'est un changement spécifique pour un client.

h2. Changements

h3. Modification de label dans le Prometheus sur les zones clientes d'ocb-test06

Label à changer: _parameter_
Valeur actuelle : _parameter = "kubernetes"_
Nouvelle valeur : _parameter = "caascad_container"_

h2. Déploiement

Faire un *trackbone apply* dans la MR envs-ng

h2. Vérifications

h3. Vérification labels dans les métriques

{code}
kswitch ${OCB_ZONE}
kubectl port-forward -n monitoring-app svc/app-prometheus 9090:9090 &
{code}

*On vérifie que le changement de valeur du label a été prise en compte :*
{code}
curl -g 'http://localhost:9090/api/v1/query?query=prometheus_build_info{parameter="caascad_container"}' | jq .data.result[].metric.cc_prom_source
{code}

*Résultat attendu:*
On doit avoir toutes les zones clientes.

*On vérifie que l'ancien label n'est plus présent :*
{code}
curl -g 'http://localhost:9090/api/v1/query?query=prometheus_build_info{parameter="kubernetes"}' | jq .data.result[].metric.cc_prom_source
{code}

*Résultat attendu:*
On doit avoir un résultat vide.

{code}
kill %1 # close the port-forward
{code}

h3. Tests fonctionnels

*Lancer les tests fonctionnels pour ces zones :*
{code}
cd ~/git/caascad/pipelines/monitoring-functional-tests
nix-shell
STACK=monitoring

cd ci
fly switch -n test  -z "${INFRA_ZONE}"
fly -t "${INFRA_ZONE}.infra" login -n test
for i in "${ZONES[@]}"; do
    fly -t "${INFRA_ZONE}.infra" trigger-job -j "f-tests-${STACK}-${OCB_ZONE}/${STACK}-${i}"; 
done
{code}

*Résultat :*
- Aller sur le dashboard Monitoring Functional Test
- Mettre la variable *old* à 5 minutes
- Mettre la variable *stack* à monitoring
- Les tests doivent être lancés depuis moins de 5 minutes et verts

h2. Merge

Merger si tout s'est bien passé.