Aller au contenu

Ajout de datasource dans un Grafana Mutualisé#

Nomenclature#

Pour une demande de ce genre :

Merci d’ajouter l’env avt dans l’espace de grafana mutualisé pour les RSC

nous nommerons :

  • <CLIENT> le client qui possède le Grafana mutualisé, ici RSC
  • <DATASOURCE> le client qui possède les métriques et alertes à observer depuis le Grafana Mutualisé, autrement dit, la datasource à ajouter, ici avt.

Pré-requis#

Grafana mutualisé doit être déjà deployé. Si ce n'est pas le cas, suivez cette documentation

Cela se voit dans le fichier zones/ngot_zones/client-<CLIENT>.cue : la définition de la zone grafana (svc-grafana-client-<CLIENT>) doit contenir une ligne de ce genre :

let connected_zones = "10000:1:XXX,YYY,..."

Étapes#

1. Ajout de la datasource#

Modifier le fichier zones/ngot_zones/client-<CLIENT>.cue :

  1. sur la ligne let connected_zones =, à la suite des noms de clients déjà renseignés, ajouter ,CLIENT. Le format est : <BASEPORT>:<BASENUM>:XXX,YYY,...,<CLIENT>.
    • <BASEPORT> est déjà indiqué et vaut habituellement 10000. Il ne faut pas le changer,
    • <BASENUM> est déjà indiqué et vaut habituellement 1. Il ne faut pas le changer,
    • <XXX>,<YYY> sont des datasources déjà existantes.
  2. dans le bloc parameters, ajouter une ligne de cette forme :

    _mutualized_datasource_alertmanager: "<DATASOURCE>":            _
    

    Warning

    Ne pas oublier le tiret bas (underscore) en fin de ligne.

  3. dans le bloc parameters.datasources, ajouter une ligne de cette forme :

    _mutualized_datasource_alertmanager["<DATASOURCE>"]
    

Exemple avec le client rsc et ses datasources adh et avt :

_zones: {
    // CONTRACT //

    "svc-grafana-client-rsc": {
        let shortname = "rsc"
        let connected_zones = "10000:1:adh,avt"
...
        parameters: {
            _thanos_query_connected_services_mutualized: "\(connected_zones)": _
            thanos_query_connected_services: _thanos_query_connected_services_mutualized[connected_zones]

            _datasource_thanos: "\(shortname)":                    _
            _mutualized_datasource_alertmanager: "adh":            _
            _mutualized_datasource_alertmanager: "avt":            _

            datasources: {
                _datasource_thanos[shortname]
                _mutualized_datasource_alertmanager["adh"]
                _mutualized_datasource_alertmanager["avt"]
            }
        }
    }
}

2. Préparer le déploiement#

nix-shell
git pull
git switch -c cw-xxxx
generate-static-zones-files
git add zones/ngot-zones/client-<CLIENT>.cue
git add gen/
git commit -m "ngot: grafana: New datasource <DATASOURCE> for client <CLIENT>"
git push

Créer la MR et lancer un trackbone plan dans Gitlab.

Faire valider la MR par ses collègues.

3. Déploiement (CAASCHR)#

Créer un CAASCHR en se servant de ce modèle.