Aller au contenu

Release Health

Release Health mesure la stabilité de chaque version de ton app, sans configurer quoi que ce soit. Au démarrage, le SDK ouvre une session (status='ok') ; en cas de crash JS non rattrapé, il la fait passer en status='crashed'. Le dashboard agrège ces sessions par release et affiche le taux d’utilisateurs sans crash (« crash-free users »).

Disponible à partir de @pionne/react-native@0.7.0. Activé par défaut.

import { Pionne } from '@pionne/react-native';
Pionne.init({
token: 'pio_live_…',
release: '1.4.2', // recommandé : version sémantique de l'app
// releaseHealth: false, // pour désactiver complètement
});

Pas d’autre setup. Le SDK envoie deux requêtes au max :

QuandStatus envoyé
À l’initok
Sur crash fatal JScrashed
Sur erreur uncaughterrored

Sur le dashboard mobile, ouvre un projet → icône ⚡ Crash-free au-dessus de la liste des issues. Tu vois :

  • Le taux d’utilisateurs sans crash par release (14 derniers jours)
  • Le nombre de sessions totales / crashées / en erreur
  • Une barre colorée : 🟢 ≥ 99 %, 🟡 95-99 %, 🔴 < 95 %

Trois méthodes, rarement utiles : le SDK gère tout.

Pionne.endSession(); // force la fermeture (status='exited')
Pionne.getSessionId(); // UUID en cours, pour debug
  • Une session = un démarrage de l’app (un appel à Pionne.init()).
  • Si le même userIdAnon ouvre 5 sessions dont 1 crashe, ce user est comptabilisé comme « utilisateur ayant crashé » sur la release.
  • Le dashboard affiche le ratio users_total - users_crashed) / users_total.

Même protocole, même comportement, même payload :

SDKVersion minNotes
@pionne/react-native0.7.0iOS / Android / web
@pionne/web0.3.0Bonus : flush ‘exited’ via sendBeacon au pagehide
@pionne/node0.3.0Flush ‘exited’ au process.beforeExit
pionne_flutter0.3.0Auto-flip sur FlutterError + PlatformDispatcher + runZonedGuarded

Le SDK PHP (pionne/pionne) n’expose pas Release Health : un script PHP server-side dure quelques ms et ne mappe pas une session utilisateur. Tracker ça noierait le storage pour aucun signal exploitable.

Le SDK appelle POST /api/sessions avec ton pio_live_* token. Le payload est minimal (~150 octets). Voir API · Sessions pour les détails.