D’un compte neuf à une question résolue

Trois étapes rendent le produit fonctionnel, et quelques décisions le rendent conforme à ce que vous voulez. Cette page est le chemin complet, dans l’ordre. Une fois connecté, les mêmes étapes apparaissent sur votre tableau de bord sous forme de liste qui observe la plateforme au lieu de vous interroger : une étape est cochée quand nous la constatons réellement, pas quand vous l’affirmez.

3
étapes avant que ce soit utile
OTLP
aucun agent propriétaire à installer
Sans carte
l’offre gratuite n’en demande aucune
La liste du tableau de bord à mi-parcours : les deux premières étapes cochées et vérifiées, la troisième encore à faire
La liste sur votre tableau de bord, après deux étapes. Chaque ligne est cochée à partir de ce que la plateforme constate — le projet qu’elle a trouvé, le problème dans lequel votre événement a été regroupé — et non de ce que vous affirmez ; d’où la troisième, qui reste ouverte tant qu’aucune destination n’existe.

Avant de commencer

Il vous faut une application capable d’émettre des requêtes HTTPS sortantes, et un endroit où poser deux variables d’environnement. C’est réellement tout : aucun agent à installer, aucun sidecar à faire tourner, aucun démon à maintenir en vie.

Si vous émettez déjà de l’OpenTelemetry, vous changez un endpoint plutôt que d’ajouter de l’instrumentation. Sinon, le SDK navigateur et la ligne de commande viennent tous deux de npm et demandent Node 20.19 ou plus récent.

Étape 1 — Créer un projet

Un projet, c’est une application. La plupart des équipes en créent un puis en ajoutent un second quand un deuxième service se met à remonter des données : les problèmes, la conservation et les filtres à l’entrée sont tous rattachés à un projet.

Sa création vous donne un DSN. Cette chaîne est à la fois l’adresse vers laquelle votre application envoie et l’identifiant qui la désigne, d’où sa place dans l’environnement plutôt que dans votre dépôt. Ce n’est pas un secret au sens d’une clé d’API — il ne permet que d’écrire de la télémétrie, jamais d’en lire — mais il n’a pas sa place dans un commit public.

  • Ouvrez Projects dans le menu latéral. C’est sous Management, vers le bas, et non sous Monitoring en haut.
  • Saisissez un nom dans la carte New project. Nommez-le d’après l’application et non d’après l’environnement : staging et production tiennent dans un même projet, distingués par l’attribut d’environnement que votre SDK envoie déjà.
  • Cliquez sur Create project.
  • Sur le projet qui apparaît, cliquez sur Create DSN. Rien ne part tant qu’aucun DSN n’existe.
  • Copiez la chaîne affichée. Elle n’apparaît en entier qu’une fois ; l’étape 2 dit où elle va.

Menu latéral → Projects (sous Management) → New project

La carte New project, le nom Checkout API saisi et le bouton Create project entouré
Un champ et un bouton. Le projet apparaît aussitôt ; le DSN vient du bouton Create DSN qui s’y trouve.

La liste sur votre tableau de bord confirme cette étape en lisant vos projets. Si elle la montre encore comme à faire, c’est que le projet n’a pas été créé — et non qu’il est passé inaperçu.

Étape 2a — Copier le DSN

La création du DSN l’affiche en entier, une fois. Copiez-le avant de quitter la page : ensuite, le projet n’en montre qu’un préfixe raccourci, assez pour distinguer deux clés et pas assez pour émettre. Le perdre n’a rien de dramatique — vous pouvez en créer un autre et révoquer le premier — mais c’est un détour évitable.

Ce que vous en utiliserez ensuite dépend du côté où vous êtes, et ce détail mérite deux lectures avant de coller quoi que ce soit.

Menu latéral → Projects → Create DSN (affiché une seule fois, à la création)

La carte Your DSN, le DSN complet entouré et une flèche annotée « Copy this »
La chaîne entière est le DSN. Dans https://[email protected]/PROJET, la CLE est la partie comprise entre « https:// » et le « @ ».
Si vous utilisezIl vous faut
Notre SDK Go ou JavaScriptLe DSN entier, dans SNAGSPY_DSN en Go ou l’option dsn en JavaScript. Le SDK le découpe et pose l’en-tête lui-même : vous ne manipulez jamais la clé.
Tout autre exporter OpenTelemetry, ou un collectorLa clé seule. Le reste du DSN ne sert pas : l’endpoint est l’hôte d’ingestion, et le projet est déduit de la clé seule.

Étape 2b — La coller là où votre application lit son environnement

C’est-à-dire là d’où viennent déjà vos variables : le bloc env d’un conteneur, un secret Kubernetes, les variables de configuration de votre plateforme, ou un fichier .env local si vous travaillez sur un poste. Ni votre dépôt, ni votre code — le DSN change d’un projet à l’autre, le code non.

L’en-tête doit s’appeler exactement `Authorization`, avec le schéma `Bearer`. L’ingestion ne lit que celui-là : un en-tête portant un autre nom est rejeté exactement comme s’il était absent, et la réponse ne distingue pas les deux cas. C’est, de loin, la première raison pour laquelle un premier événement n’arrive jamais.

Le DSN au-dessus et les trois variables d’environnement en dessous, la clé tracée de l’un à l’autre et marquée « cette partie seulement »
Ce n’est pas une capture du produit : cela se passe dans votre propre déploiement. C’est la configuration réelle, la clé tracée du DSN jusqu’au seul endroit où elle va.
Un exporter OpenTelemetry existant
OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.snagspy.com
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20<la clé de votre DSN, pas le DSN entier>
OTEL_SERVICE_NAME=checkout-api

Le %20 est une espace, encodée en pourcent. OTEL_EXPORTER_OTLP_HEADERS est lue comme une liste de paires encodées en URL : une espace littérale entre « Bearer » et la clé n’y est pas sûre. Dans le YAML d’un collector, où cet encodage ne s’applique pas, écrivez-la avec une vraie espace : Authorization: Bearer ${SNAGSPY_DSN_KEY}.

Étape 3 — Confirmer l’arrivée du premier événement

Ne prenez pas l’absence d’erreur pour une réussite. Déployez le changement, puis faites échouer quelque chose exprès : levez une exception sur une route que vous pouvez atteindre, ou lancez une requête dont vous savez qu’elle renvoie une 500.

L’événement doit apparaître en quelques secondes. Si rien n’arrive, les causes habituelles sont, dans l’ordre : l’en-tête ne s’appelle pas exactement `Authorization` (une configuration copiée depuis un autre backend le nomme souvent autrement), la clé a été copiée avec une espace en fin de chaîne, une sortie vers l’hôte d’ingestion bloquée par un pare-feu, ou un exporter qui tamponnait et un processus terminé avant d’avoir vidé sa file.

Menu latéral → Errors

La liste Errors avec un problème : le type d’exception, la frame fautive et un événement
Un événement arrivé, regroupé en un problème selon sa provenance plutôt que selon le nombre reçu. Voilà à quoi ressemble « ça a marché ».

C’est l’étape que la liste du tableau de bord prouve au lieu de la supposer : elle lit votre consommation de la période en cours et ne coche que lorsque le compteur d’événements a réellement dépassé zéro. Rien d’autre sur la page ne peut faire apparaître cette coche.

Étape 4 — Choisir où les alertes vous parviennent

Une télémétrie dont personne n’est averti est une archive, pas de la supervision. Une destination est soit une adresse e-mail, soit un webhook vers une URL qui vous appartient ; l’adresse du webhook est vérifiée avant enregistrement, elle ne peut donc pas viser une adresse de réseau privé.

Les alertes et les résumés arrivent dans la langue réglée sur le compte, ce qu’il vaut la peine de définir maintenant si votre astreinte ne lit pas l’anglais.

Menu latéral → Alerts → Where to send them

Le formulaire de destination rempli, nom et URL de webhook saisis, le bouton Add destination entouré, au-dessus d’une destination déjà enregistrée
Choisissez Webhook ou Email, nommez la destination, collez l’URL, ajoutez-la. La ligne enregistrée au-dessus montre ce qui en est conservé : l’hôte seul, jamais l’URL complète.

Étape 5 — Inviter les personnes qui partagent l’astreinte

Les sièges sont vérifiés à l’émission de l’invitation puis de nouveau à son acceptation, parce que le nombre de sièges libres est un fait sur maintenant et non sur mardi dernier. L’offre gratuite est mono-siège : une seconde personne suppose une offre payante.

Une invitation s’envoie d’elle-même par e-mail et expire ; personne n’a besoin qu’on lui transmette un lien par messagerie.

Menu latéral → Teams → Invite a colleague

Le formulaire Invite a colleague, une adresse saisie, le rôle sur Member et le bouton Create invitation entouré
Une adresse et un rôle. L’invitation est liée à cette adresse — l’accepter demande aussi le mot de passe de cette adresse, donc un lien transféré ne suffit pas à rejoindre à sa place.

Trois décisions à prendre délibérément

Aucune ne bloque quoi que ce soit, et les trois sont plus faciles à trancher maintenant qu’à découvrir plus tard. Elles se trouvent sur la page des paramètres.

Ce que l’IA peut lire

L’analyse de votre télémétrie par l’IA est un interrupteur, par organisation. L’envoi de code source pour relecture en est un second, distinct, désactivé au départ. Laisser l’un ou l’autre éteint est une réponse valable, et le produit continue de fonctionner.

Combien de temps les données sont gardées

Sept, trente ou quatre-vingt-dix jours selon l’offre. Une tâche planifiée supprime réellement et le plafond est de nouveau vérifié à la lecture : c’est une vraie limite, pas un réglage d’affichage.

Ce qui n’est jamais stocké

Les filtres à l’entrée suppriment les événements à l’ingestion, après le nettoyage et avant le stockage : un événement filtré n’est jamais écrit ni compté. Chaque règle montre ce qu’elle a retiré.

À quoi ressemble une installation terminée

  • Un projet existe, et son DSN est dans votre environnement de déploiement plutôt que dans votre dépôt.
  • Votre compteur d’événements de la période est supérieur à zéro, et vous avez vu une vraie erreur dans la liste des problèmes.
  • Au moins une destination d’alerte existe et a été éprouvée par une alerte réellement déclenchée.
  • Toute personne susceptible d’être réveillée dispose d’un compte.
  • Les réglages d’IA et de conservation disent ce que vous vouliez qu’ils disent, plutôt que ce qu’ils valaient par défaut.

Si quelque chose ne fonctionne pas

Les deux endpoints de santé de la page d’état répondent sans authentification : vous pouvez distinguer un problème de plateforme d’un problème de configuration avant même d’écrire à quiconque.

Si c’est un problème de configuration, [email protected] est lu par les personnes qui ont construit ceci. Indiquez le nom du projet et l’heure approximative de l’événement qui n’est pas arrivé.

Commencez par l’étape un

Créer un compte demande un formulaire et aucun moyen de paiement. La liste apparaît sur votre tableau de bord dès votre arrivée, et disparaît d’elle-même une fois les trois étapes faites.