Checklist de mise en œuvre de l’observabilité de l’IA : 20 étapes de production
Une checklist de mise en œuvre de l’observabilité de l’IA devrait répondre à une question plus difficile que « l’API est-elle en ligne ? ». Une fonctionnalité d’IA en production peut renvoyer HTTP 200 tout en fournissant une mauvaise réponse, en utilisant un contexte de récupération obsolète, en appelant le mauvais outil, en passant par un repli coûteux après plusieurs tentatives, en exposant des données sensibles de prompt dans les journaux, ou en prenant trop de temps pour être utile.
L’objectif pratique est de relier chaque résultat visible par l’utilisateur aux tentatives du modèle, aux étapes de récupération, aux appels d’outils, aux décisions de politique, à la latence, à l’utilisation des jetons et au coût qui l’ont produit. Cela nécessite une télémétrie applicative classique ainsi que des signaux de contexte et d’évaluation spécifiques à l’IA.
Ce guide fournit un plan de mise en œuvre par phases pour les applications LLM, les agents, les systèmes de génération augmentée par récupération et les passerelles multi-modèles. Il est neutre vis-à-vis des fournisseurs et utilise autant que possible les concepts d’OpenTelemetry. Il comprend également une carte signal-décision, une matrice de tests d’acceptation, un plan de déploiement sur sept jours, un contrat de télémétrie, un modèle d’instrumentation, un runbook d’alertes et un tableau de bord comparatif des fournisseurs afin qu’une équipe puisse passer des exigences à un lancement opérationnel.
L’observabilité de l’IA en une phrase
L’observabilité de l’IA est la capacité d’expliquer le comportement, la qualité, la fiabilité, la sécurité et le coût d’un flux de travail d’IA à partir d’un ensemble corrélé de traces, de métriques, de journaux, d’évaluations et de შედეგats utilisateurs.
La surveillance vous indique qu’un seuil a changé. L’observabilité vous aide à déterminer pourquoi il a changé et quelles requêtes, quels modèles, prompts, résultats de récupération, outils, locataires ou versions étaient impliqués.
Utilisez la checklist de mise en œuvre de l’observabilité de l’IA de ce guide comme critère de validation avant mise en production, et non comme un exercice de documentation ponctuel. Réexécutez-la chaque fois que vous modifiez un modèle, un prompt, un index de récupération, un schéma d’outil, une politique de routage ou un évaluateur.
Pour une application d’IA, une requête peut contenir plusieurs tentatives distinctes :
action de l’utilisateur
└─ flux de travail de l’application
├─ requête de récupération
├─ tentative de modèle 1
├─ appel d’outil
├─ tentative de modèle 2
└─ validation et résultat visible par l’utilisateur
Si ces étapes ne peuvent pas être reliées sous une même trace ou une même identité de requête, le débogage devient une affaire de conjectures.
Le modèle de données minimal pour l’observabilité de l’IA
Le modèle de données est la base de la checklist de mise en œuvre de l’observabilité de l’IA, car chaque tableau de bord, alerte, évaluation et requête d’incident dépend de champs de corrélation cohérents.
Commencez avec une trace au niveau du flux de travail et des spans enfants pour chaque opération significative. OpenTelemetry définit les traces, les métriques, les journaux et le baggage comme signaux fondamentaux. Ses conventions sémantiques pour l’IA générative fournissent un vocabulaire en développement pour les opérations des modèles et des agents et, au 4 août 2026, sont maintenues dans le dépôt dédié des conventions sémantiques OpenTelemetry. Comme ces conventions peuvent évoluer, figez la version que vous implémentez et conservez une petite couche de compatibilité interne plutôt que d’éparpiller des noms de champs propres à un fournisseur dans tout votre code.
Au minimum, capturez ces groupes de champs.
| Groupe de champs | Ce qu’il faut enregistrer | Pourquoi c’est important |
|---|---|---|
| Corrélation | trace_id, request_id, ID de session, workflow, environnement, version |
Relie le parcours complet de la requête |
| Route | fournisseur, modèle demandé, modèle résolu, région, point de terminaison ou alias de route | Explique où la requête s’est réellement exécutée |
| Essai | numéro d’essai, raison de la nouvelle tentative, source et destination du repli | Distinguait une requête utilisateur de plusieurs appels facturables |
| Performance | temps en file d’attente, délai avant le premier jeton, latence totale, latence des outils et de la récupération | Localise l’étape lente |
| Utilisation | entrée, entrée mise en cache, sortie, raisonnement ou champs d’utilisation spécifiques au fournisseur | Explique la capacité et le coût |
| Résultat | statut, classe d’erreur normalisée, raison de fin, résultat de validation | Distinguait le succès du transport du succès de la tâche |
| Qualité | version de l’évaluateur, score, réussite/échec, retour utilisateur, résultat accepté | Suit si la réponse était utile |
| Gouvernance | locataire, décision de politique, état de masquage, classe de conservation | Prend en charge les contrôles de confidentialité et d’audit |
Évitez de traiter le prompt brut et la réponse comme des champs obligatoires. Dans de nombreux systèmes, ils doivent être désactivés par défaut ou stockés uniquement dans un jeu de données d’évaluation contrôlé séparément.
Mapper chaque signal à une décision opérationnelle
Plus de télémétrie n’est pas automatiquement mieux. Avant d’ajouter un attribut, une métrique ou un tableau de bord, nommez la décision qu’il prend en charge et la personne qui en est responsable.
| Signal | Question à laquelle il répond | Décision typique | Responsable principal |
|---|---|---|---|
| Taux d’achèvement accepté | Le workflow a-t-il résolu la tâche du client ? | Revenir en arrière, modifier le prompt/modèle ou investiguer les échecs en aval | Produit et ingénierie IA |
| Latence de bout en bout p95 | L’expérience complète est-elle assez rapide ? | Changer de route, réduire la latence de récupération/des outils ou ajuster le streaming | Ingénierie de plateforme |
| Délai avant le premier jeton | Le streaming semble-t-il réactif ? | Ajuster la mise en file d’attente, la route du fournisseur ou la taille du prompt | Ingénierie de plateforme |
| Taux de repli | La route principale est-elle saine et économique ? | Examiner la santé du fournisseur, la capacité ou la politique de route | Ingénierie de la fiabilité |
| Coût par résultat accepté | Les nouvelles tentatives et les résultats de faible qualité annulent-ils les économies ? | Modifier le mix de modèles, la mise en cache, la taille du prompt ou la validation | Ingénierie et FinOps |
| Taux de réussite de l’ancrage de la récupération | La réponse a-t-elle utilisé un contexte autorisé et pertinent ? | Reconstituer l’index, les filtres, le reranker ou la validation des citations | Responsable recherche/RAG |
| Échecs de rapprochement des outils | Un effet secondaire externe s’est-il terminé en toute sécurité ? | Mettre l’outil en pause, rapprocher l’état ou réparer l’idempotence | Responsable de l’application |
| Nombre d’échecs de masquage | Des données sensibles atteignent-elles l’exportateur ? | Arrêter l’exportation, mettre la télémétrie en quarantaine ou mettre à jour la politique | Sécurité/confidentialité |
Ce tableau évite le mode de défaillance courant où un tableau de bord contient des dizaines de graphiques, mais où personne ne sait quelle action un changement devrait déclencher.
A Practical Trace Shape
Utilisez une seule trace pour le flux de travail visible par l’utilisateur, et non une trace distincte et sans lien pour chaque appel à un fournisseur. La racine doit décrire la tâche du client, tandis que les spans enfants décrivent les opérations qui ont contribué au résultat.
workflow: answer_support_question
attributes: tenant_class, release, accepted_outcome, final_status
├─ retrieval.search
│ attributes: index_version, top_k, authorization_result
├─ gen_ai.attempt
│ attributes: provider, requested_model, resolved_model, attempt=1
├─ tool.lookup_order
│ attributes: tool_schema_version, idempotency_key, result
├─ gen_ai.attempt
│ attributes: provider, resolved_model, attempt=2, fallback_reason
└─ evaluation.validate_answer
attributes: evaluator_version, pass, score_band
Les conventions sémantiques pour l’IA générative d’OpenTelemetry évoluent encore. Traitez-les comme un vocabulaire partagé, mais figez la version de la convention, consignez toutes les extensions locales et testez les mises à niveau en préproduction. Conservez les résultats métier tels que accepted_outcome dans votre propre espace de noms applicatif stable afin qu’un changement de convention sémantique ne casse pas les rapports produit.
Phase 1: Définir les résultats avant d’ajouter des tableaux de bord
1. Nommez le workflow et le résultat accepté
Ne commencez pas par des graphiques de tokens à l’échelle du fournisseur. Commencez par une tâche client telle que :
- réponse de support acceptée sans escalade ;
- le correctif de code passe les tests ;
- l’extraction correspond au schéma requis ;
- l’agent exécute l’action demandée sans reprise manuelle ;
- le média généré passe la porte de revue du produit.
Créez un nom workflow lisible par machine et un accepted_outcome ou un résultat équivalent. Cela devient le dénominateur des métriques de qualité, de coût et de fiabilité.
2. Définissez la taxonomie des défaillances
Séparez au moins ces classes :
- défaillance de transport : expiration de délai, erreur de connexion ou 5xx en amont ;
- défaillance de capacité : limite de débit, quota, saturation de file d’attente ou limite de contexte ;
- défaillance de contrat : JSON invalide, champ manquant, schéma d’outil non pris en charge ou flux interrompu ;
- défaillance de qualité : la réponse est hors sujet, incorrecte, incomplète ou non étayée ;
- défaillance de sécurité : violation de politique, réussite d’une injection de prompt ou exécution d’outil non sûre ;
- défaillance métier : sortie techniquement valide que l’utilisateur rejette ou abandonne.
Une simple dimension error=true ne suffit pas. Elle masque le fait que vous ayez besoin d’un travail d’infrastructure, d’un changement de prompt, d’un changement de modèle ou d’un changement produit.
3. Choisissez les indicateurs initiaux de niveau de service
Commencez avec un petit ensemble qui reflète l’expérience utilisateur :
workflow availability = accepted workflow completions / eligible workflow starts
quality pass rate = evaluator-passing completions / evaluated completions
p95 end-to-end latency = p95(workflow completed - workflow started)
cost per accepted outcome = total workflow cost / accepted outcomes
Considérez la disponibilité du fournisseur comme une métrique de diagnostic, et non comme le SLI du produit. Un fournisseur peut être en bonne santé alors que votre workflow échoue parce que la récupération, les outils, la validation ou le routage sont défaillants.
Phase 2 : Instrumentez le chemin de requête complet
4. Créez un span racine par workflow visible pour l’utilisateur
Générez la trace racine à la frontière de l’application, avant le démarrage de la récupération ou du routage du modèle. Propagez ce contexte à travers les files d’attente, les workers, les passerelles, les services d’outils et les callbacks.
Utilisez des spans enfants pour :
- la récupération et le reranking ;
- chaque tentative de modèle ;
- chaque appel d’outil ;
- les vérifications de guardrail ou de politique ;
- l’analyse et la validation de la sortie ;
- la sélection du fallback ;
- la persistance et la livraison en aval.
5. Enregistrez la route demandée et la route résolue
Le modèle nommé par le client n’est pas toujours le modèle qui a servi la requête. Enregistrez les deux :
{
"ai.requested_model": "support-balanced",
"ai.resolved_provider": "provider-b",
"ai.resolved_model": "model-version-2026-07",
"ai.route_reason": "primary_rate_limited",
"ai.attempt": 2
}
C’est essentiel pour les systèmes multi-fournisseurs. Cela rend aussi une stratégie de fallback de modèle auditables au lieu d’être invisibles.
6. Mesurez le streaming séparément
La latence totale seule ne décrit pas une expérience de streaming. Capturez :
- la durée de file d’attente ;
- la latence de connexion et du fournisseur ;
- le temps jusqu’au premier token ou au premier événement utile ;
- la durée de génération ;
- le temps de complétion de bout en bout ;
- le temps d’annulation du client.
Une requête peut avoir une latence totale acceptable mais un mauvais temps jusqu’au premier token. Elle peut aussi produire rapidement le premier token puis se bloquer.
7. Faites des retries et des fallbacks des tentatives de premier plan
Ne remplacez jamais la première tentative échouée par le succès final. Un span de workflow doit contenir ou lier chaque tentative facturable, y compris :
- le numéro de retry ;
- le déclencheur ;
- la durée du backoff ;
- le fournisseur et le modèle ;
- les tokens et le coût ;
- l’état de la sortie partielle ;
- la disposition finale.
Cela empêche qu’une tempête de retries apparaisse comme un « succès à 100 % ».
Phase 3 : Ajoutez un contexte de qualité spécifique à l’IA
8. Versionnez les prompts, les outils, les politiques et les évaluateurs
Stockez des identifiants stables plutôt que seulement le contenu brut :
prompt_version
tool_schema_version
retrieval_index_version
policy_version
evaluator_version
route_policy_version
Ces dimensions vous permettent de comparer une version avant et après une modification. Sans versioning, une baisse de qualité devient difficile à attribuer.
9. Tracez la qualité de la récupération
Pour la génération augmentée par récupération, enregistrez :
- la version de la requête et les filtres ;
- la latence de récupération ;
- les IDs des documents ou des chunks ;
- la fraîcheur de la source ;
- le top-k et la version du reranker ;
- le taux de résultats vides ;
- la décision de contrôle d’accès ;
- le résultat de validation des citations ou de l’ancrage.
Ne placez pas les documents privés complets dans un stockage de traces à usage général. Stockez des références contrôlées ou des hachages, sauf si la politique de débogage autorise explicitement la capture du contenu.
10. Tracez les appels d’outils et les effets de bord
Chaque span d’outil doit inclure le nom de l’outil, la version du schéma, la décision d’autorisation, la latence, le résultat normalisé et s’il a produit un effet secondaire externe.
Pour les outils produisant des effets secondaires, enregistrez aussi une clé d’idempotence et l’état de réconciliation. Cela est important lorsqu’un appel de modèle expire après que l’outil s’est déjà terminé.
11. Join online and offline evaluations
Les signaux en ligne sont rapides mais bruités : pouce levé, abandon, régénération, correction, escalade ou achèvement de tâche. Les évaluations hors ligne sont plus lentes mais contrôlées : ensembles de test sélectionnés, correcteurs de barème, tests exécutables et revue humaine.
Reliez les deux aux mêmes identifiants de workflow et de version. Ne mélangez pas les scores de différentes versions d’évaluateur dans une seule courbe de tendance sans étiqueter le changement.
Phase 4: Control Privacy, Security, and Retention
12. Classify telemetry before collection
Définissez trois niveaux :
- Métadonnées : route, timing, jetons, statut, versions et identifiants.
- Signaux de contenu dérivés : longueur, langue, catégorie de sécurité, score d’évaluateur ou hachage.
- Contenu brut : invites, réponses, texte récupéré, arguments d’outil et résultats d’outil.
Collectez largement les métadonnées. Collectez le contenu brut uniquement lorsque le cas d’usage, l’avis à l’utilisateur, le contrôle d’accès et la politique de conservation le permettent.
13. Redact at the collection boundary
La rédaction doit, dans la mesure du possible, avoir lieu avant l’exportation. Couvrez :
- les clés API, jetons bearer, cookies et en-têtes d’autorisation ;
- les adresses e-mail, numéros de téléphone, numéros de compte et identifiants gouvernementaux ;
- les secrets dans les arguments d’outil ou les documents récupérés ;
- les URL signées et les chaînes de connexion de base de données ;
- le contenu spécifique à un locataire interdit dans les magasins d’observabilité partagés.
Utilisez des allowlists pour les attributs exportés. Une denylist finira par omettre un nouveau champ contenant un secret. Appliquez la même discipline décrite dans ce guide de gestion des clés API pour l’IA.
14. Set retention and access by data class
Le contenu brut ne doit pas hériter de la même conservation que des métriques à faible risque. Définissez des stockages, un chiffrement, des rôles d’accès, des journaux d’audit et des processus de suppression distincts. Testez la suppression au lieu de supposer qu’un document de politique suffit.
Le NIST AI Risk Management Framework et son Generative AI Profile mettent l’accent sur la mesure continue, la documentation et la gestion des risques tout au long du cycle de vie du système. L’observabilité aide à fournir des preuves, mais une journalisation indiscriminée peut créer un nouveau risque de confidentialité et de sécurité.
15. Control high-cardinality dimensions
Ne transformez pas les identifiants utilisateur, les identifiants de trace, le texte des invites, les identifiants de documents ou les messages d’erreur bruts en libellés de métriques. Conservez les données à forte cardinalité dans les traces ou les journaux, puis dérivez des métriques bornées telles que le workflow, la famille de modèle, la classe d’erreur, l’environnement et la région.
Phase 5: Build Alerts That Point to Action
16. Alert on user-impacting symptoms
Déclenchez une alerte sur des symptômes tels que :
- un taux d’achèvement accepté inférieur à l’objectif ;
- une baisse du taux de réussite qualité au-delà de la limite de garde de la version ;
- une latence p95 ou un temps jusqu’au premier jeton consommant le budget d’erreur ;
- un coût par résultat accepté dépassant sa limite ;
- un effet secondaire dangereux ou une défaillance de politique ;
- un taux de repli dépassant sa plage normale.
Utilisez les erreurs du fournisseur, les pics de jetons et les manques de récupération comme alertes de diagnostic ou signaux de tableau de bord, sauf s’ils menacent directement l’objectif côté utilisateur.
17. Utiliser des fenêtres de burn-rate pour les alertes SLO
Un seuil statique peut être bruyant. L’alerte par burn-rate du budget d’erreur demande à quelle vitesse le service consomme le budget de panne autorisé. Les recommandations SRE de Google conseillent de combiner une fenêtre plus rapide avec une fenêtre de confirmation plus lente afin que les incidents graves déclenchent rapidement une alerte sans rendre chaque bref pic exploitable.
18. Ajouter des annotations de version et de route
Chaque tableau de bord doit afficher les versions du prompt, de l’application, du routage, du modèle et de l’évaluateur. Ajoutez des annotations de déploiement et comparez les cohortes canary et de contrôle. Sinon, l’équipe verra une courbe bouger sans voir ce qui a changé.
Phase 6 : Valider avant le déploiement complet
19. Exécuter des exercices d’échec
Testez au minimum :
- expiration du délai en amont ;
- limite de débit et épuisement du quota ;
- sortie structurée mal formée ;
- interruption partielle du streaming ;
- la récupération ne renvoie aucun contexte autorisé ;
- l’outil réussit mais la réponse est perdue ;
- le fallback modifie le comportement du modèle ;
- l’exporteur de télémétrie est indisponible ;
- la règle de masquage reçoit un champ inconnu.
Confirmez que le flux de travail échoue de manière sûre, que la trace reste cohérente et que l’alerte identifie le bon responsable.
20. Déployer en quatre étapes
- Shadow : émettre la télémétrie sans modifier le routage ni le comportement utilisateur.
- Canary : activer pour une petite tranche de trafic et comparer la surcharge, la cardinalité et la qualité des données.
- Production protégée : associer des seuils de version et des règles de retour arrière.
- Production complète : étendre après validation des contrôles de confidentialité, de fiabilité et de coûts.
OpenTelemetry prend en charge les schémas d’échantillonnage en tête et en fin de parcours. Conservez toutes les erreurs et les classes rares de défaillance lorsque c’est possible, puis échantillonnez le trafic de succès courant pour maîtriser les coûts. Les règles d’échantillonnage ne doivent pas supprimer les traces exactes nécessaires pour expliquer un incident.
Matrice de test d’acceptation en production
Les tests d’acceptation prouvent que la checklist de mise en œuvre de l’observabilité de l’IA fonctionne dans des scénarios d’échec, de confidentialité et de perte de télémétrie, et pas seulement sur les requêtes réussies.
Ne déclarez pas l’observabilité terminée simplement parce que des spans apparaissent dans un visualiseur de traces. Exécutez des tests contrôlés et conservez des preuves pour chaque jalon de validation.
| Test | Condition injectée | Preuve de télémétrie requise | Condition de réussite |
|---|---|---|---|
| Délai d’attente en amont | Forcer la route principale du modèle à dépasser sa date limite | Span de la première tentative, classe de délai d’attente, décision de retry ou de fallback, résultat final | Aucun span orphelin ; la disposition finale et le coût total sont visibles |
| Limite de débit | Retourner un 429 du fournisseur ou épuiser un quota de test | Code fournisseur brut, classe de capacité normalisée, durée de backoff, changement de route | Le budget de retry est borné et l’alerte pointe vers le propriétaire de la route |
| Sortie structurée invalide | Retourner un JSON mal formé ou un champ requis manquant | Span de validation du contrat, version du validateur, tentative de réparation, réussite/échec final | La réussite HTTP n’est pas comptabilisée comme une réussite acceptée |
| Flux interrompu | Interrompre la sortie après le premier token | Temps jusqu’au premier token, indicateur de sortie partielle, utilisation facturable, décision de retry | Le contenu dupliqué et la double exécution d’outil sont empêchés |
| Retrieval vide | Retourner aucun document autorisé | Filtres de retrieval, résultat d’autorisation, motif de résultat vide, politique de réponse | Le système suit le comportement approuvé sans contexte |
| Ambiguïté d’outil | Laisser un outil se terminer pendant que la requête du modèle expire | Clé d’idempotence, état de l’effet de bord, résultat de réconciliation | L’outil n’est pas exécuté deux fois et l’état est récupérable |
| Canari de masquage | Insérer un secret synthétique dans un champ de test | Événement de détection locale sans valeur de secret exportée | L’export est bloqué ou masqué avant de quitter la frontière |
| Panne de l’exporteur | Arrêter la destination de télémétrie | Métriques de file d’attente/perte de l’exporteur et santé de l’application | Le trafic utilisateur reste dans son budget de fiabilité |
| Vérification de l’échantillonnage | Générer des erreurs rares au milieu d’un trafic à fort taux de réussite | Traces d’erreur conservées ; réussites de routine échantillonnées selon la configuration | Les exemples d’incident restent recherchables après l’échantillonnage |
| Régression de version | Déployer un canary avec une dégradation connue de latence ou de qualité | Annotation de version, cohorte canary, cohorte de contrôle, comparaison SLI | Le seuil de rollback se déclenche avec un propriétaire de changement identifiable |
Pour chaque test, consignez le propriétaire, la date du test, l’ID de trace, l’alerte attendue, l’alerte observée et le ticket de remédiation. Cela transforme l’observabilité en un contrôle de version reproductible, plutôt qu’en un projet d’instrumentation ponctuel.
Plan de mise en œuvre sur sept jours
Pour une équipe focalisée, la checklist de mise en œuvre de l’observabilité de l’IA peut être appliquée comme une séquence de sept jours qui laisse chaque journée avec des preuves examinables.
Cette séquence est volontairement étroite. Elle fournit une tranche verticale fiable avant que l’équipe n’élargisse la couverture.
- Jour 1 — Contrat de résultat : choisissez un workflow à forte valeur, définissez les démarrages éligibles, les résultats acceptés, les classes d’échec et les formules SLI.
- Jour 2 — Squelette de trace : créez le span racine du workflow et propagez le contexte à travers l’application, la file d’attente, la passerelle, la couche de récupération et les outils.
- Jour 3 — Tentatives du modèle : capturez les routes demandées et résolues, les tentatives, la latence, la raison de fin, l’utilisation du fournisseur, les réessais et les solutions de repli.
- Jour 4 — Qualité et coût : associez les résultats du validateur, les versions de l’évaluateur, les résultats utilisateur et le coût normalisé du workflow.
- Jour 5 — Contrôles de confidentialité : classez les champs, mettez en œuvre l’export par liste d’autorisation, testez la rédaction, définissez la rétention et vérifiez les limites d’accès.
- Jour 6 — SLO et tableaux de bord : construisez le tableau de bord minimal, ajoutez des annotations de version, définissez des alertes de burn rate et attribuez des responsables.
- Jour 7 — Exercices d’échec : exécutez la matrice d’acceptation, corrigez les lacunes, lancez un canary et documentez les conditions de retour arrière.
À la fin du septième jour, l’objectif n’est pas une instrumentation universelle. L’objectif est un workflow de production dont le comportement, la qualité, la fiabilité, la sécurité et le coût peuvent être expliqués de bout en bout.
Tableau de bord minimal pour le lancement
Le tableau de bord est la vue opérationnelle de la liste de contrôle de mise en œuvre de l’observabilité de l’IA. Il doit d’abord exposer les résultats clients, puis les détails de l’infrastructure.
Gardez la première vue opérationnelle suffisamment réduite pour être utilisable pendant un incident :
- Ligne Résultat : démarrages éligibles, complétions acceptées, taux de réussite qualité, et abandon ou escalade.
- Ligne Fiabilité : erreurs normalisées, taux de repli, amplification des réessais et consommation du budget d’erreur.
- Ligne Latence : p50/p95/p99 de bout en bout, temps en file d’attente, temps jusqu’au premier jeton, latence de récupération et latence des outils.
- Ligne Économie : jetons d’entrée/de sortie/cachés, coût total du workflow et coût par résultat accepté.
- Ligne Changement : application, prompt, politique de routage, modèle, index de récupération, schéma d’outil et versions de l’évaluateur.
- Liens d’investigation : traces représentatives pour chaque classe d’échec, version, route et workflow affecté.
Le tableau de bord doit prendre en charge un parcours du symptôme à la trace. Si une alerte indique une baisse de qualité mais que l’équipe ne peut pas accéder aux traces des workflows affectés en quelques clics, la boucle d’investigation est incomplète.
Grille d’évaluation de la plateforme d’observabilité de l’IA
L’évaluation commerciale doit vérifier si une plateforme prend en charge votre modèle opérationnel, et non si elle possède la liste de fonctionnalités la plus longue. Évaluez les candidats par rapport au même workload pilote instrumenté.
| Critère | Poids | À vérifier dans un pilote |
|---|---|---|
| Corrélation du workflow | 20 % | Un seul trace relie les tentatives du modèle, la récupération, les outils, la validation et le résultat utilisateur |
| Interopérabilité OpenTelemetry | 15 % | L’export/import standard fonctionne ; les extensions locales restent requêtables ; les données sont portables |
| Jointures qualité et évaluation | 15 % | Les retours en ligne et les évaluations hors ligne versionnées se connectent aux traces de production |
| Confidentialité et gouvernance | 15 % | Listes d’autorisation de champs, masquage, contrôles régionaux, rôles d’accès, journaux d’audit et tests de suppression |
| Opérations de fiabilité | 15 % | Les SLO, les alertes de burn rate, les contrôles d’échantillonnage, les annotations de version et la prise en charge des exercices d’incident |
| Affectation des coûts | 10 % | L’utilisation du fournisseur, les nouvelles tentatives, les solutions de repli, les jetons mis en cache et le coût par résultat accepté sont réconciliés |
| Couverture agent/RAG/outil | 5 % | Les opérations de récupération et les opérations d’outils à effet de bord disposent de spans et de filtres de premier ordre |
| Coût opérationnel | 5 % | L’ingestion, le stockage, les requêtes, la rétention et la charge de travail d’ingénierie correspondent au volume attendu |
Utilisez une note de 1 à 5 pour chaque critère, multipliez-la par le poids et exigez des preuves écrites issues du pilote. Une plateforme qui ne peut pas préserver votre contrat de télémétrie ou exporter vos données crée un verrouillage opérationnel, même si ses tableaux de bord sont soignés.
Contrat de télémétrie copiable
Le moyen le plus rapide de rendre opérationnelle une checklist de mise en œuvre de l’observabilité de l’IA consiste à la transformer en un contrat de télémétrie versionné. Le contrat définit ce que chaque workflow et chaque tentative du modèle doit émettre, quels champs sont facultatifs, quelles valeurs sont autorisées et quels champs sont interdits dans les index à fort volume.
L’exemple ci-dessous utilise un espace de noms interne. Mappez-le aux conventions OpenTelemetry GenAI épinglées dans un seul adaptateur plutôt que d’exposer le code applicatif aux changements de conventions.
telemetry_contract:
version: "2026-08-04"
workflow_span:
required:
- ai.workflow.name
- ai.workflow.version
- ai.request.id
- deployment.environment
- service.version
- ai.outcome.status
- ai.outcome.accepted
- ai.latency.total_ms
optional:
- ai.tenant.tier
- ai.experiment.id
- ai.user.feedback
prohibited:
- end_user.email
- end_user.name
- raw.authorization_header
model_attempt_span:
required:
- ai.attempt.number
- ai.route.requested_model
- ai.route.resolved_provider
- ai.route.resolved_model
- ai.result.status
- ai.usage.input_tokens
- ai.usage.output_tokens
- ai.latency.first_token_ms
- ai.latency.total_ms
conditional:
- ai.fallback.reason
- ai.error.class
- ai.error.provider_code
- ai.usage.cached_input_tokens
content_capture:
default: "off"
allowed_when:
- approved_evaluation_dataset
- explicit_debug_session
controls:
- redact_before_export
- access_logged
- retention_approved
Examinez ce contrat en code review comme un schéma d’API. Un nouveau fournisseur de modèle, un outil d’agent, une politique de repli ou un évaluateur ne doit pas être mis en production tant que ses champs de télémétrie ne correspondent pas au contrat et ne passent pas les mêmes tests d’acceptation.
Modèle d’instrumentation pour un workflow IA
Ne laissez pas chaque équipe inventer indépendamment les noms de spans et les attributs. Fournissez un petit wrapper qui crée le span racine du workflow, enregistre les tentatives enfants, capture les résultats normalisés et applique la redaction avant l’export.
Cet exemple Python est intentionnellement neutre vis-à-vis des fournisseurs. Les noms d’attributs internes doivent être traduits vers la version figée de votre convention sémantique OpenTelemetry dans le wrapper ou la couche du collecteur.
from opentelemetry import trace
tracer = trace.get_tracer("checkout-assistant")
def run_ai_workflow(request, router, evaluator):
with tracer.start_as_current_span("ai.workflow.checkout_help") as workflow_span:
workflow_span.set_attribute("ai.workflow.name", "checkout_help")
workflow_span.set_attribute("ai.workflow.version", "2026-08-04")
workflow_span.set_attribute("ai.request.id", request.request_id)
result = None
for attempt_number in range(1, 3):
with tracer.start_as_current_span("ai.model.attempt") as attempt_span:
route = router.resolve(request, attempt_number)
attempt_span.set_attribute("ai.attempt.number", attempt_number)
attempt_span.set_attribute("ai.route.requested_model", request.model)
attempt_span.set_attribute("ai.route.resolved_provider", route.provider)
attempt_span.set_attribute("ai.route.resolved_model", route.model)
result = route.generate(request)
attempt_span.set_attribute("ai.result.status", result.status)
attempt_span.set_attribute("ai.usage.input_tokens", result.input_tokens)
attempt_span.set_attribute("ai.usage.output_tokens", result.output_tokens)
if result.status == "ok":
break
attempt_span.set_attribute("ai.error.class", result.error_class)
evaluation = evaluator.score(request, result)
workflow_span.set_attribute("ai.outcome.status", result.status)
workflow_span.set_attribute("ai.outcome.accepted", evaluation.accepted)
workflow_span.set_attribute("ai.evaluator.version", evaluation.version)
workflow_span.set_attribute("ai.quality.score", evaluation.score)
return result
Le code de production doit également enregistrer la durée, le délai jusqu’au premier token, les raisons de repli, l’annulation, les erreurs de streaming et les exceptions. Le choix de conception important est la hiérarchie : un workflow client contient une ou plusieurs tentatives facturables, et le workflow enregistre le résultat final accepté.
Politique d’alerte et runbook de première réponse
Une checklist de mise en œuvre de l’observabilité de l’IA est incomplète si les tableaux de bord n’ont pas de règles de réponse. Chaque métrique de lancement a besoin d’un déclencheur, d’un responsable et d’une première requête de diagnostic.
| Alerte | Exemple de déclencheur | Première question | Action immédiate |
|---|---|---|---|
| Consommation du budget pour résultats acceptés | Consommation rapide et lente du budget d’erreur | Quel workflow, quelle version, quel chemin ou quel tenant a changé ? | Mettre en pause le déploiement ou revenir à la version impliquée |
| Régression de latence | La latence p95 du workflow dépasse le SLO | La latence de la file d’attente, de la récupération, du modèle ou de l’outil a-t-elle changé ? | Contourner l’étape lente ou réduire la charge |
| Pic de repli | Le taux de repli dépasse sa plage normale | Le fournisseur principal échoue-t-il, est-il limité ou subit-il des timeouts ? | Examiner les erreurs normalisées et brutes du fournisseur |
| Pic du coût par résultat | Le coût augmente tandis que l’acceptation reste stable ou baisse | Les tentatives, la longueur de sortie ou les chemins coûteux augmentent-ils ? | Plafonner les tentatives et restaurer la politique de chemin précédente |
| Baisse du score de qualité | Le taux de réussite de l’évaluateur en ligne ou échantillonné baisse | Le prompt, la récupération, le modèle ou la version de l’évaluateur a-t-il changé ? | Comparer la cohorte de la version avec la dernière cohorte en bonne santé |
| Incertitude de l’outil | Le résultat d’un effet secondaire ne peut pas être réconcilié | L’outil s’est-il terminé avant le délai d’expiration ou l’annulation ? | Arrêter la nouvelle tentative automatique et entrer en phase de réconciliation |
| Perte de télémétrie | La complétude attendue des spans ou de l’usage diminue | L’instrumentation est-elle défaillante ou la pression de sortie augmente-t-elle ? | Traiter la télémétrie manquante comme un incident opérationnel |
La vue d’astreinte doit renvoyer directement d’une alerte vers les traces filtrées par workflow, version, modèle demandé, chemin résolu et classe d’erreur. Si les intervenants doivent reconstruire manuellement ces filtres pendant un incident, le système n’est pas prêt pour le lancement.
Responsabilités et passation de production
Attribuez la checklist à des rôles nommés avant le déploiement. Une responsabilité partagée sans décideur explicite produit généralement des tableaux de bord que tout le monde peut consulter et que personne ne maintient.
| Responsabilité | Rôle responsable | Preuve de passation requise |
|---|---|---|
| Définition du résultat du workflow | Responsable du produit ou de la fonctionnalité IA | Règle de résultat accepté et exemples de rejet |
| Schéma des spans et des métriques | Responsable de la plateforme ou de l’observabilité | Contrat de télémétrie versionné et tests de schéma |
| Champs de route et de repli | Responsable de la passerelle ou de la fiabilité | Validation du chemin demandé/résolu et des tentatives |
| Évaluateurs de qualité | Responsable de l’ingénierie IA | Version de l’évaluateur, jeu de données, seuils, limites connues |
| Confidentialité et conservation | Responsable de la sécurité ou de la confidentialité | Classification des données, test de masquage, approbation de conservation |
| SLO et alertes | Responsable du service | Document SLO, règles de paging, tableau de bord, runbook |
| Affectation des coûts | Responsable financier de l’ingénierie | Complétude de l’usage et réconciliation du coût par résultat |
| Prêt pour la mise en production | Responsable technique | Matrice d’acceptation complétée et déclencheur de rollback |
Planifiez une revue 30 jours après le lancement. Supprimez les champs inutilisés, faites remonter les requêtes de débogage réutilisées fréquemment dans des vues de tableau de bord, examinez la cardinalité et le coût de stockage, et mettez à jour le contrat lorsque le comportement du workflow change.
Checklist de mise en œuvre de l’observabilité de l’IA
Utilisez cette liste comme condition de lancement :
- [ ] Définir chaque workflow et le résultat client accepté.
- [ ] Définir les défaillances de transport, de capacité, de contrat, de qualité, de sécurité et métier.
- [ ] Sélectionner les SLIs de disponibilité, de qualité, de latence et de coût par résultat.
- [ ] Approuver un contrat de télémétrie versionné avec des champs obligatoires, facultatifs et interdits.
- [ ] Créer une trace racine par workflow visible par l’utilisateur.
- [ ] Propager le contexte à travers les files d’attente, les outils, la récupération et les passerelles.
- [ ] Enregistrer les routes fournisseur/modèle demandées et résolues.
- [ ] Créer un span distinct pour chaque tentative de nouvelle exécution et de repli.
- [ ] Capturer le temps d’attente en file, le temps jusqu’au premier token et la latence totale.
- [ ] Capturer l’utilisation des tokens indiquée par le fournisseur et le coût normalisé.
- [ ] Versionner les prompts, les outils, les index de récupération, les politiques, les routes et les évaluateurs.
- [ ] Enregistrer les références de récupération, la fraîcheur, l’autorisation et les résultats d’ancrage.
- [ ] Enregistrer l’autorisation de l’outil, l’idempotence, le résultat et l’état des effets de bord.
- [ ] Associer les retours utilisateur et les résultats d’évaluation hors ligne aux traces.
- [ ] Classer la télémétrie en métadonnées, signaux dérivés ou contenu brut.
- [ ] Masquer les secrets et les champs sensibles avant l’exportation.
- [ ] Appliquer des politiques distinctes de conservation et d’accès par classe de données.
- [ ] Éviter les valeurs à forte cardinalité dans les libellés des métriques.
- [ ] Déclencher des alertes sur les SLOs ayant un impact utilisateur et sur la consommation du budget d’erreur.
- [ ] Annoter les versions et comparer le canary au contrôle.
- [ ] Exécuter des exercices de défaillance, de confidentialité, d’échantillonnage et de panne de l’exportateur.
- [ ] Conserver les preuves des tests d’acceptation et les IDs de trace pour la condition de passage en production.
- [ ] Comparer les plateformes d’observabilité avec un scorecard pilote pondéré unique.
- [ ] Désigner des responsables comptables pour les résultats, le schéma, la confidentialité, les SLOs, la qualité et le coût.
- [ ] Lier chaque alerte nécessitant une action immédiate à une procédure de première réponse et à une requête de trace.
Erreurs courantes en observabilité de l’IA
Consigner des prompts sans politique de données
Les prompts bruts semblent utiles pendant le débogage, mais ils peuvent contenir des données client, des secrets, du matériel protégé par le droit d’auteur ou des informations réglementées. Commencez avec des métadonnées et n’activez la capture de contenu contrôlée que lorsqu’elle est justifiée.
Mesurer le coût par requête au lieu du coût par résultat
Une requête peu coûteuse qui échoue à la validation n’est pas bon marché. Les nouvelles tentatives, les repliements et la correction humaine font partie du coût du workflow. Le même principe s’applique au ROI du cache de prompts : optimisez la tâche acceptée, pas un taux de tokens isolé.
Considérer chaque appel au modèle comme indépendant
Les agents et les systèmes RAG sont des workflows. Si les spans du modèle, de la récupération et des outils ne sont pas corrélés, l’équipe ne peut pas reconstituer la causalité.
S’en remettre à un seul tableau de bord du fournisseur
Les tableaux de bord du fournisseur sont utiles pour l’utilisation en amont et les erreurs, mais ils ne voient pas le résultat complet de votre application, le système de récupération, l’exécution des outils, les retours utilisateur ni le chemin de repli multi-fournisseur.
Tout instrumenter avant de définir les décisions
La télémétrie a un coût opérationnel. Chaque champ doit soutenir une décision de débogage, d’alerte, d’évaluation, de gouvernance ou d’optimisation. Supprimez les champs que personne n’utilise.
Où s’insère une passerelle d’IA
Une passerelle LLM peut constituer une frontière utile pour la corrélation et les politiques, car plusieurs applications et fournisseurs passent par un seul point de contrôle. Elle peut normaliser les métadonnées de route, de tentative, d’utilisation, de latence et d’erreur avant d’exporter la télémétrie vers votre pile d’observabilité.
La passerelle n’est pas la solution complète. Le code applicatif reste responsable des résultats du workflow, du contexte de récupération, de la sémantique des outils, des retours utilisateurs et de la conversion commerciale. La conception la plus robuste relie la télémétrie de la passerelle à ces signaux au niveau de l’application.
Flatkey fournit une couche d’accès unique compatible OpenAI pour plusieurs modèles d’IA. Si votre équipe consolide les intégrations de fournisseurs, découvrez Flatkey et utilisez cette checklist pour définir le contrat de télémétrie autour de votre application et de votre couche de routage.
Questions fréquemment posées
Que dois-je implémenter en premier pour l’observabilité de l’IA ?
Commencez la checklist de mise en œuvre de l’observabilité de l’IA avec une trace racine par workflow client, des spans enfants pour les tentatives de modèle, les champs de modèle demandés et résolus, la latence, l’utilisation, les erreurs normalisées et un signal de résultat accepté. Ajoutez plus tard la capture brute des prompts, si votre politique de confidentialité le permet.
OpenTelemetry suffit-il pour l’observabilité des LLM ?
OpenTelemetry fournit la base neutre en termes de transport pour les traces, les métriques et les logs, ainsi que des conventions sémantiques pour l’IA générative en évolution. Vous devez encore définir les workflows, les évaluations, les contrôles de confidentialité, les SLO, les tableaux de bord et les processus d’incident.
Faut-il stocker les prompts et les réponses dans les traces ?
Pas par défaut. Utilisez d’abord les métadonnées, les versions, les hachages et les signaux de qualité dérivés. Ne stockez le contenu brut que dans des systèmes contrôlés avec une finalité explicite, une politique d’accès, une durée de rétention et un processus de suppression.
Quelles métriques d’observabilité de l’IA sont les plus importantes ?
Commencez par le taux d’achèvement accepté, le taux de réussite de la qualité, la latence de bout en bout p95, le temps jusqu’au premier jeton pour le streaming, le taux de repli et le coût par résultat accepté. Ajoutez ensuite les métriques spécifiques au workflow une fois celles-ci fiables.
Comment surveiller plusieurs fournisseurs d’IA ?
Utilisez un schéma de télémétrie stable commun à tous les fournisseurs. Enregistrez, pour chaque tentative, à la fois la route demandée et le fournisseur/modèle résolu, normalisez les erreurs sans supprimer le code brut du fournisseur, et reliez toutes les tentatives sous la même trace de workflow.



