Script python grafana

bonjour, j’aimerais faire un script python qui me permettrait d’automatiser la création de checks sur grafana cloud mais je ne comprends pas comment marche l’authentification avec la clé API et le token.

merci pour votre réponse .

cdt

Hi @christiankayou,

Welcome to the :grafana: community support forums !!

We are excited that you joined our OSS community. Please read about some of the FAQs in the community :slight_smile:

Most of our community users use English for communication or when asking question.

I would kindly request you to repost your original question in English and then the community will be able to help you out.

Salut

Regarde ici

merci bcp pour ton script retour

en fait, j’aimerais creer un script python qui me permet d’automatiser la création de checks sur grafana cloud en lisant le fichier check.json

je veux qu’il me connecte à grafana cloud avec avec des variables d’environnements que je puisse exporter qui sont l’username et le password

ensuite, je veux qu’il récupere les checks existants avec une requete dans grafana cloud avec et les stocke pour éviter de faire des requetes supplémentaires à chaque check.

apréq je veux qu’il lise et boucle sur le fichier check.json et compare avec les checks qu’il a récupéré via la précédente requete vers de grafana cloud pour savoir si il n’y a pas de doublons ou autre.
si le check existe déja, il met un message d’erreur et passe au check suivant
si il n’existe pas, il crée le check avec les parametres suivants et il affiche un message comme quoi le check xxx a été créé avec succés :

son job name, son target, ses probe locations, la frequency, le timeout, basic-auth-user, basic-auth-password, labels et tout le reste comme inscrit dans le fichier json
je veux que ces parametres soient inscrit dans le script dans la création du check

Excellent! Veuillez nous montre quand cest finit. Bon voyage

justement je voulais savoir si tu pouvais m’aider à le faire

démontre un petit effort pour résoudre ce problème par tois meme et je serai plus qu’heureux de t’aider. ci tu veux que je le fais pour toi ca ne $era pas gratuit.

voila ce que j’ai fait:

import requests
import os
import json

Variables d’environnement pour l’authentification Grafana Cloud

username = os.getenv(“GRAFANA_USERNAME”)
password = os.getenv(“GRAFANA_PASSWORD”)

URL de l’API Grafana Cloud

api_url = “https://api.grafana.com/v1

Fonction pour récupérer les checks existants

def get_existing_checks():
url = f"{api_url}/checks"
response = requests.get(url, auth=(username, password))
checks = response.json()
return checks

Fonction pour créer un check

def create_check(check):
url = f"{api_url}/checks"
response = requests.post(url, auth=(username, password), json=check)
return response.json()

Chargement du fichier check.json

with open(“check.json”) as file:
data = json.load(file)

Récupération des checks existants

existing_checks = get_existing_checks()

Boucle sur les checks du fichier check.json

for check in data[“checks”]:
# Vérification si le check existe déjà
if any(existing_check[“name”] == check[“job name”] for existing_check in existing_checks):
print(f"Le check {check[‘job name’]} existe déjà.")
continue

# Création du check
new_check = {
    "name": check["job name"],
    "type": "HTTP",
    "target": check["target"],
    "probeLocations": check["probe locations"],
    "frequency": check["frequency"],
    "timeout": check["timeout"],
    "basicAuthUser": check["basic-auth-user"],
    "basicAuthPassword": check["basic-auth-password"],
    "labels": check["labels"]
}

response = create_check(new_check)
if response.get("name"):
    print(f"Le check {check['job name']} a été créé avec succès.")
else:
    print(f"Erreur lors de la création du check {check['job name']}.")

illisible. peux tu formatter d’une facons lisible? pour qu’on puisse copier sans montage dans notre environment?

Ce que tu as a present semble montage, quel est le probleme?

import requests
import os
import json
Variables d’environnement pour l’authentification Grafana Cloud

username = os.getenv(“GRAFANA_USERNAME”)
password = os.getenv(“GRAFANA_PASSWORD”)
URL de l’API Grafana Cloud

api_url = “https://api.grafana.com/v1”
Fonction pour récupérer les checks existants

def get_existing_checks():
url = f"{api_url}/checks"
response = requests.get(url, auth=(username, password))
checks = response.json()
return checks
Fonction pour créer un check

def create_check(check):
url = f"{api_url}/checks"
response = requests.post(url, auth=(username, password), json=check)
return response.json()
Chargement du fichier check.json

with open(“check.json”) as file:
data = json.load(file)
Récupération des checks existants

existing_checks = get_existing_checks()
Boucle sur les checks du fichier check.json

for check in data[“checks”]:
# Vérification si le check existe déjà
if any(existing_check[“name”] == check[“job name”] for existing_check in existing_checks):
print(f"Le check {check[‘job name’]} existe déjà.")
continue

# Création du check
new_check = {
“name”: check[“job name”],
“type”: “HTTP”,
“target”: check[“target”],
“probeLocations”: check[“probe locations”],
“frequency”: check[“frequency”],
“timeout”: check[“timeout”],
“basicAuthUser”: check[“basic-auth-user”],
“basicAuthPassword”: check[“basic-auth-password”],
“labels”: check[“labels”]
}

response = create_check(new_check)
if response.get(“name”):
print(f"Le check {check[‘job name’]} a été créé avec succès.“)
else:
print(f"Erreur lors de la création du check {check[‘job name’]}.”)

le probleme est que ca ne marche pas. j’espere que la le code est mieux et que tu peux le copier

tres vague, li ya a des erruers ou quoi? Nous n’avons pas access a ton PC alors nous ne pouvons pas voir le “ca ne marche pas”
Aussi tu pays pour le grafana cloud support alors tu les a telephoné ?