Votre première erreur

D’un compte vide à une erreur visible dans le tableau de bord. Une dizaine de minutes, et la seule chose dont vous aurez besoin ensuite est le DSN que cela produit.

1. Créez un projet et copiez le DSN

Un projet est l’unité selon laquelle la télémétrie est regroupée et limitée. La plupart des équipes commencent par un projet par service déployé plutôt qu’un par dépôt, parce que c’est l’unité à laquelle pense un ingénieur d’astreinte quand quelque chose casse.

Le DSN apparaît une fois le projet créé. C’est un identifiant d’écriture pour ce seul projet, sans aucun accès en lecture : il a sa place dans votre configuration de déploiement plutôt que dans un coffre réservé aux identifiants capables de faire des dégâts.

2. Envoyez quelque chose depuis votre application

Des SDK existent pour Go et pour JavaScript, navigateur compris. Les deux lisent le DSN dans l’environnement plutôt que dans une valeur écrite en dur, ce qui fait la différence entre faire tourner une clé et livrer une nouvelle version.

Go
import "github.com/rellinxe/snagspy/sdk/go/snagspy"

func main() {
    client, err := snagspy.New(snagspy.FromEnv())
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()

    client.CaptureError(errors.New("première erreur depuis Go"))
}

3. …ou depuis le navigateur

Le SDK JavaScript installe un gestionnaire pour les erreurs non capturées et les rejets de promesses non gérés : le cas courant ne nécessite donc aucun appel explicite.

JavaScript
import { init, captureError } from '@snagspy/browser'

init({ dsn: process.env.SNAGSPY_DSN })

captureError(new Error('première erreur depuis le navigateur'))

4. Vérifiez que c’est bien arrivé

L’incident apparaît dans le tableau de bord quelques secondes après avoir été accepté. Si rien n’arrive, l’hôte d’ingestion répond à un contrôle de vivacité, ce qui sépare « ma requête n’est jamais parvenue » de « elle est parvenue et a été refusée » — deux problèmes aux causes entièrement différentes.

Une écriture refusée renvoie un motif plutôt qu’un échec sec. Les deux cas qui expliquent presque tout : un DSN qui ne correspond à aucun projet, et une charge utile qui n’est pas de l’OTLP valide.

Vivacité
curl -i https://ingest.snagspy.com/healthz

Ce que font les deux SDK avant que quoi que ce soit ne quitte le processus

Les deux masquent localement les valeurs qui ressemblent à des secrets, avant le réseau. Ce n’est pas une politesse effectuée à l’arrivée : un mot de passe qui nous est envoyé puis masqué ici a déjà traversé le réseau et déjà figuré dans tout ce qui se trouvait entre nous.

C’est utile à savoir parce que cela change ce à quoi vous devez faire attention. Vous ne devez toujours pas attacher délibérément des identifiants à un événement, mais un jeton laissé par accident dans une pile d’appels ne devient pas notre problème à nettoyer après coup.

← Documentation