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
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 community support forums !!
We are excited that you joined our OSS community. Please read about some of the FAQs in the community
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
username = os.getenv(“GRAFANA_USERNAME”)
password = os.getenv(“GRAFANA_PASSWORD”)
api_url = “https://api.grafana.com/v1”
def get_existing_checks():
url = f"{api_url}/checks"
response = requests.get(url, auth=(username, password))
checks = response.json()
return checks
def create_check(check):
url = f"{api_url}/checks"
response = requests.post(url, auth=(username, password), json=check)
return response.json()
with open(“check.json”) as file:
data = json.load(file)
existing_checks = get_existing_checks()
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é ?