Premiers pas

Cette page vous amène d'un compte vierge à un projet qui reçoit des données. Comptez quelques minutes.

1. Créer un compte

Quiet Guard est en bêta fermée : chaque compte est ouvert à la main. Il y a deux façons d'entrer.

  • Demander un accès. Ouvrez /app/register, donnez votre nom, votre e-mail et un mot de passe, et dites en quelques mots ce que vous aimeriez tester. Votre demande rejoint une file d'attente ; vous recevez un e-mail quand elle est acceptée, et un autre si elle ne l'est pas. D'ici là, la connexion mène à une page d'attente, pas au produit.
  • Être invité. L'exploitant peut créer votre compte directement ; vous recevez alors un e-mail avec un lien pour choisir votre mot de passe, et votre compte est déjà approuvé.

Le compte est à vous ; ce qui porte vos données, c'est une équipe, et vous la créez vous-même à votre première connexion. Le formulaire demande le nom de l'équipe, votre identifiant d'entreprise (un SIREN ou un numéro de TVA intracommunautaire, Quiet Guard étant vendu aux professionnels) et votre acceptation des conditions : l'équipe est la partie au contrat, donc ce sont des déclarations que seule la personne qui l'engage peut faire. Rien n'est facturé pendant la bêta et aucune carte n'est demandée.

L'équipe est le tenant : tout, projets, plans, consommation, facturation, chiffrement, appartient à une équipe, pas à un utilisateur individuel. Vous pourrez inviter des membres plus tard depuis la page Membres de l'équipe, dans la limite des sièges de votre forfait : un sur Free, trois sur Indie, illimités sur Studio. Les projets, eux, sont illimités sur tous les forfaits. Passer à un forfait qui porte moins de sièges ne retire personne : l'équipe garde les membres qu'elle a, et ne peut en ajouter aucun tant qu'elle n'est pas repassée sous le nombre du forfait.

L'équipe est le tenant. Toutes les données sont rattachées à l'équipe active. Si vous appartenez à plusieurs équipes, changez l'équipe active depuis le menu du tenant dans la barre supérieure.

2. Créer un projet

Un projet représente une application surveillée (une application Laravel, un site, un service).

  1. Dans le panel /app, ouvrez Projets puis choisissez Nouveau projet.
  2. Donnez-lui un nom (par exemple Acme Store, production).
  3. Enregistrez. Les autres sections du formulaire, apparence, sonde de disponibilité et intégration GitHub, sont facultatives et peuvent attendre.

Vous disposez maintenant d'un projet vide, prêt à recevoir exceptions, logs et instantanés de dépendances.

3. Générer une clé d'API de projet

Chaque projet authentifie l'application surveillée à l'aide d'une clé d'API de projet. Les clés sont stockées hachées (SHA-256) et la valeur en clair n'est affichée qu'une seule fois.

  1. Ouvrez votre projet et rendez-vous dans ses clés d'API (jetons de projet).
  2. Créez une clé et nommez-la (par exemple production).
  3. Copiez la clé immédiatement. Elle ressemble à :
lm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Copiez-la maintenant. La clé complète n'est affichée qu'une fois. Si vous la perdez, révoquez-la et générez-en une nouvelle, le hachage stocké ne peut pas être retransformé en clé d'origine.

4. Pointer un client vers le point d'entrée d'ingestion

L'application surveillée envoie ses données au serveur Quiet Guard en HTTP, en s'authentifiant avec la clé de projet. Deux styles d'en-tête sont acceptés :

bash
# Recommandé : jeton bearer
curl -X POST https://votre-monitor.example.com/api/v1/ingest \
  -H "Authorization: Bearer lm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "exception": {
      "class": "RuntimeException",
      "message": "Quelque chose a mal tourné",
      "file": "/app/Services/Checkout.php",
      "line": 42
    },
    "context": { "environment": "production" }
  }'
bash
# En-tête alternatif
curl -X POST https://votre-monitor.example.com/api/v1/ingest \
  -H "X-Monitor-Key: lm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "exception": { "class": "RuntimeException" } }'

Un appel réussi renvoie un HTTP 202 Accepted :

json
{ "message": "accepted", "stored": true, "issue_id": "01kw6tkrd8wjbfv2pktr7ssw43" }

issue_id est l'identifiant public de l'issue, un ULID. C'est la valeur que porte l'URL du tableau de bord, vous pouvez donc la journaliser et la coller dans la barre d'adresse. Ce n'est pas un numéro de ligne, et la réponse ne contient aucun compteur d'occurrences : ces nombres auraient indiqué à chaque projet combien d'exceptions la plateforme entière avait stockées.

En pratique, vous ne fabriquerez pas ces requêtes à la main. Installez le client officiel pour votre stack, le SDK Laravel est l'implémentation de référence, et configurez-le avec l'URL de votre serveur et la clé de projet. Le client se charge de capturer les exceptions, d'envoyer les logs par lots et de rapporter le composer.lock.

5. Vérifier la réception

De retour dans le panel /app, ouvrez votre projet depuis Projets dans la barre latérale. La première exception envoyée apparaît comme une issue. De là, vous pouvez explorer le suivi des exceptions, activer les alertes et débloquer les fonctionnalités payantes comme les logs et le stockage chiffré selon votre plan.

Vous construisez votre propre client ? Le contrat complet requête/réponse de chaque point d'entrée se trouve dans la référence de l'API d'ingestion.

Vous lisez la documentation Quiet Guard v1.0.