<!-- .slide: class="prez-slide-title-page" -->
# BPF-33<br/>Doc stack Thanos <!-- .element: style="font-size: 2em" -->
#### Présentation Équipe Supervision du 30/10/2024
---
# Objectifs des nouvelles stacks mon3/mon4
- scalabilité de la solution Thanos
- en multipliant le nombre de Receivers
- en doublant (voire plus) le point d'entrée "distributor"
- proposer une solution aux incidents "sapin de Noël"
- profiter de quelques fonctionnalités complémentaires
- accepter les métriques "out of order"
- pouvoir exécuter des expressions sur des intervalles de plus de 24h
- ...
---
# Composants
https://docs-internal.corp.caascad.com/Architecture/Monitoring/NGOT/central_zones/
- Chemin d'écriture
- Receive "distributor"
- Receive
- (Compactor)
- Chemin de lecture
- Querier "proxy"
- Ruler
- Receive
- Store Gateway
- Chemin d'alerting
- Ruler
- Querier
- Receive
- Store Gateway
---
# MCO : où trouver la doc ?
- [Architecture/Monitoring/NGOT/central_zones/](https://docs-internal.corp.caascad.com/Architecture/Monitoring/NGOT/central_zones/#schema_1) (le schéma d'architecture)
- "Help_Alerts" ([exemple](https://docs-internal.corp.caascad.com/Op%C3%A9rations/Alerting/Help_alerts/PrometheusRemoteWriteDesiredShards/))
- [Opérations/Applications/Thanos/](https://docs-internal.corp.caascad.com/Op%C3%A9rations/Applications/Thanos/Deployment_of_Thanos_components/)
---
# En cas d'incident
1. help_alerts...
2. ...qui redirige souvent vers Opérations/Applications/Thanos/ ou Opérations/Applications/Prometheus/
---
# Si on veut redéployer
Certains composants ne se déploient pas avec Trackbone.
Tout est expliqué dans la documentation [Applications/Thanos/Deployment_of_Thanos_components/](https://docs-internal.corp.caascad.com/Op%C3%A9rations/Applications/Thanos/Deployment_of_Thanos_components/)
---
# Les pièges à connaître (1/2)
- Certains composants ne se déploient pas avec Trackbone
- Thanos-Receiver
- Ne jamais changer les R/L. On ajoute un réplica à la place
- Ne jamais augmenter la taille du PVC. On ajoute un réplica à la place
- Ne jamais ajouter un réplica avec `kubectl edit` ou `kubectl scale`. Il faut redéployer avec la chart helm (sinon, il y a aussi un *hashRing* dans un configMap à mettre à jour)
- Si modif sur les pods Receivers, faire un `kubectl scale replicas=0` avant
- **Toujours suivre la doc !**
- Thanos-Receiver "distributor"
- Le "distributor" est un Receiver avec une configuration spécifique (sans stockage local).
- Ses "resources requests" en mémoire sont énormes par rapport à sa consommation "de croisière". Cela est lié à son comportement au démarrage.
- Au démarrage, à cause de ses R/L, un nouveau noeud peut être créé par l'auto-scaler. Parfois, c'est looooong !!!
- En cas d'OOMKill au démarrage, on peut augmenter les R/L (même à l'arrache, mais il faudra pérenniser ultérieurement).
---
# Les pièges à connaître (2/2)
- Thanos-Query et Thanos-Query "proxy"
- Ces deux composants sont les mêmes mais n'assurent pas le même rôle.
- Parce que la chart helm ne permet pas de déployer ces deux composants avec un rôle différent, on déploie le "proxy" de façon séparée.
- Thanos-Ruler
- Il est piloté par Prometheus-Operator (et donc déployé par Trackbone)
- Thanos-Compactor
- La version du compactor diffère de celle des autres composants Thanos. Ce n'est pas grave, c'est compatible.
---
# Dashboard Grafana
Il existe 2 dashboards de travail, qui peuvent être utilisés en cas de recherche lors d'un incident :
- [PF-2640](https://grafana.obs-corp-prd.cloudservicesfactory.com/d/d1001822-7080-49f8-8bf2-0b0fa83a1186/pf-2640?orgId=1) : ce dashboard donne une vue globale sur "mon3" et "mon4"
- [Incident sapin de Noël](https://grafana.obs-corp-prd.cloudservicesfactory.com/d/a148e747-5226-4945-bbc8-780b0d2f929d/incident-sapin-de-noel?orgId=1) : ce dashboard rassemble des métriques agrégées pour les alertes liées à la communcation "remote-write" entre les Prometheus-Cluster et les stacks centrales mon1/mon2/mon3/mon4
Ces dashboard seront peut-être pérennisés ultérieurement avec des noms plus explicites.
---
# Conclusion
GO MCO prévu en début de semaine prochaine !
Les silences sur les stacks mon3/mon4 seront retirés.
L'envoi des métriques sur mon1/mon2 sera désactivé dès que possible.
Le démantèlement des stacks mon1/mon2 sera planifié ultérieurement.
<style type="text/css">
p {
font-size: 0.8em;
}
.reveal ul li {
font-size: 0.8em;
}
.reveal ul ul li {
font-size: 0.6em;
}
.reveal ol li {
font-size: 0.8em;
}
.reveal section {
text-align: left;
}
}
.reveal h3 {
color: orange;
text-align: center;
border-bottom: 1px solid orange;
font-size: 1em;
}
.reveal h1 {
color: orange;
text-align: center;
border-bottom: 1px solid orange;
margin-bottom: 0.4em;
font-size: 1.2em;
}
.reveal code {
color: aquamarine;
font-size: smaller;
}
.prez-slide-title-page div {
text-align: center;
}
.prez-slide-ruler-querier div {
font-size: smaller;
}
.prez-slide-ruler-topologie div {
font-size: smaller;
}
.prez-slide-ruler-metrologie div {
font-size: smaller;
}
.prez-slide-deja-en-prod div {
font-size: smaller;
}
.prez-slide-schema-architecture div {
text-align: center;
}
.prez-slide-conclusion div {
font-size: smaller;
}
.prez-slide-graph svg {
width: 40%;
}
.prez-slide-pas-parle-de ul li {
font-size: 0.6em;
}
h2.prez-slide-qui {
margin: 0;
font-size: .2em;
text-align: right;
color: white;
}
</style>