Observabilité PostHog

Préserver les contrats de télémétrie, d'identité, de confidentialité et de publication du R+D Dashboard.

Observabilité PostHog

Toute la télémétrie du référentiel relève du projet RD Dashboard PostHog (279829, US Cloud). Les outils de compilation rejettent un ID de projet différent. Ne connectez jamais les outils de développement, de déploiement ou de mappage des sources à un autre projet PostHog.

Configuration du déploiement

Les déploiements Web, Admin, de toute la documentation et de Kinky Makers utilisent :

  • NEXT_PUBLIC_POSTHOG_KEY
  • NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
  • POSTHOG_PROJECT_ID=279829
  • POSTHOG_API_KEY comme clé personnelle facultative, réservée au serveur, avec uniquement les autorisations nécessaires au téléversement des cartes sources. Sans cette clé, le déploiement réussit mais ignore le téléversement des cartes sources.

Les déploiements de la documentation nécessitent également NEXT_PUBLIC_SUPABASE_URL et NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY de la piste de publication, afin que la session partagée du tableau de bord puisse résoudre la valeur numérique de User.id.

Les environnements EAS natifs nécessitent EXPO_PUBLIC_POSTHOG_KEY, EXPO_PUBLIC_POSTHOG_HOST et EXPO_PUBLIC_APP_ENV. Les cartes sources natives et les symboles nécessitent en outre POSTHOG_CLI_API_KEY, POSTHOG_CLI_HOST=https://us.posthog.com, et POSTHOG_CLI_PROJECT_ID=279829.

Les fonctions Edge de Supabase nécessitent POSTHOG_PROJECT_KEY, POSTHOG_HOST et DEPLOYMENT_ENVIRONMENT. Transférez les requêtes ayant échoué vers Logs. La télémétrie des appareils collectée avec succès est résumée sous forme d'événements produit par le proxy Web.

N'exposez jamais une clé API personnelle via une variable portant le préfixe NEXT_PUBLIC_ ou EXPO_PUBLIC_.

Contrat d'identité

  • Les événements Web, de documentation, natifs, Admin et côté serveur de RAD identifient une personne connectée avec l'ID d'application décimal User.id, sérialisé sous forme de chaîne.
  • Kinky Makers utilise km:<Supabase auth UUID> jusqu'à ce qu'il partage le modèle de profil RAD. Le préfixe empêche les fusions d'identités accidentelles.
  • Les clients navigateur et natifs appellent reset() lors de la déconnexion et avant de changer de compte identifié.
  • Le matériel constitue un groupe device. Une adresse MAC n'est jamais un identifiant de personne ni une clé de groupe ; utilisez l'identifiant stable haché de l'appareil.

Ces règles permettent au personnel de support de partir d'un ID utilisateur d'application pour retrouver les enregistrements Web, natifs, côté serveur, de session, d'erreur et de journal de cette personne sans exposer les identifiants matériels privés.

Contexte et confidentialité requis

Chaque service ajoute les éléments suivants lorsqu'ils sont disponibles : service_name, platform, environment, un numéro de version ou de release, ainsi que les identifiants de déploiement. Les requêtes côté serveur ayant échoué ajoutent également la route, la méthode, l'ID de requête et traceparent.

N'envoyez pas de corps de requête, de jetons d'accès, d'adresses e-mail, de contenu intime, de prompts ou de réponses, de texte de recherche, de contenu des fichiers locaux, d'adresses MAC brutes ou d'informations d'identification de l'appareil. La relecture Docs masque les entrées et bloque les panneaux d'appareil. La relecture Admin est structurelle uniquement : elle masque le texte, les entrées et les attributs et bloque les enregistrements, messages, requêtes, images, vidéos et canevas. Les deux surfaces désactivent localement l’enregistrement de la console et du trafic réseau. Les chaînes de requête et les fragments sont supprimés des URL d'événements et de relecture. La préférence d'analyse du domaine parent permet aux visiteurs de refuser le suivi sur les surfaces de navigateur canoniques.

Vérification de la publication

Après chaque déploiement de staging ou de production :

  1. Confirmez qu'un événement contient environment, le Git SHA, l'ID de déploiement, la version de l'application, le service et la plateforme attendus.
  2. Confirmez que les événements Web et natifs du même compte RAD utilisent le même distinct ID numérique.
  3. Confirmez qu'une déconnexion suivie d'une autre connexion ne crée aucun avertissement d'ingestion lié à une fusion d'identité.
  4. Confirmez que les données Web, Admin, Kinky Makers, natives et des fonctions Edge peuvent être séparées par service et environnement.
  5. Confirmez qu'une exception de test est résolue jusqu'à la source via la carte source téléversée ou les symboles natifs.
  6. Confirmez qu'une défaillance du serveur crée un problème d'erreur et un journal OTLP corrélé.
  7. Confirmez que les événements de périphérique contiennent un groupe device et aucune adresse MAC brute.

Le runbook du référentiel sur docs/posthog-observability.md contient la liste de contrôle correspondante pour les opérateurs.

Sur cette page