Aller au contenu principal
Retour à Observability
CallbotArticle cluster

Observabilité callbot : logs, traces, métriques (OpenTelemetry) — 2026

Répondre à “pourquoi il a fait ça ?” : tracing STT/LLM/TTS, quality metrics, alerting, et maillage prod.

Pierre Tonon
Senior Tech Writer (IA conversationnelle), Webotit.ai
8 min de lecture
Réservation

Réservez votre diagnostic IA

Un expert Webotit analyse vos flux, identifie les quick-wins et vous propose une feuille de route personnalisée.

45 min · Gratuit · Réponse sous 24h

Voir les disponibilités
En bref

Un callbot en production exige de l’observabilité : savoir ce qui s’est passé (logs), où ça a ralenti (traces), et ce qui dérive (métriques). OpenTelemetry fournit un cadre (traces/metrics/logs) pour instrumenter la chaîne téléphonie→STT→LLM→TTS. Sans observabilité, vous ne corrigez pas : vous débattez.

Le vrai moment “prod” : quand quelqu’un demande “Pourquoi il a dit ça ?”

La démo ne pose pas cette question.

La prod, si.

Un lundi matin, vous aurez :

  • un superviseur qui a un extrait d’appel,
  • un agent qui dit “le bot m’a envoyé n’importe quoi”,
  • un client qui a raccroché,
  • et un SLA qui se met à clignoter en rouge.

À ce moment-là, deux chemins :

  1. vous cherchez au feeling (et vous perdez une semaine),
  2. vous ouvrez une trace, vous lisez une timeline, et vous corrigez.

Pour les KPI prod (AHT, FCR, containment), voyez aussi : Callbot en production.

Observabilité vs monitoring : la distinction utile

On confond souvent :

  • monitoring : “est-ce que ça va ?” (dashboards + alertes)
  • observabilité : “pourquoi ça ne va pas ?” (capacité à expliquer)

Le monitoring vous dit : “latence p95 en hausse”.

L’observabilité vous dit : “le STT a ralenti + le retrieval a time-out + le TTS a retry”.

Et c’est exactement ce qu’il vous faut en callbot, parce que votre système est une chaîne :

Téléphonie → audio → STT → décision (LLM + outils) → TTS → transfert.

Si vous ne voyez pas la chaîne, vous allez accuser le mauvais maillon.

OpenTelemetry : un cadre pour traces, métriques et logs

OpenTelemetry documente des concepts et APIs pour instrumenter :

  • les traces (tracing),1
  • les métriques,2
  • et les logs.3

Ce n’est pas “la seule” manière de faire de l’observabilité.

Mais c’est une manière cohérente d’éviter d’avoir :

  • des logs dans un coin,
  • des métriques dans un autre,
  • et aucune corrélation.

Le modèle mental : une timeline d’appel (avec des spans)

Un appel, c’est un film.

Une trace, c’est le storyboard.

Vous voulez pouvoir reconstruire :

  • quand l’appel démarre,
  • quand l’utilisateur parle,
  • quand le STT produit un segment,
  • quand le LLM décide,
  • quand un outil est appelé,
  • quand la TTS commence à parler,
  • et quand on transfère.

Exemple de spans utiles (pas exhaustif)

  • call.accept
  • stt.stream (avec segments)
  • intent.classify
  • rag.retrieve (si RAG)
  • llm.generate
  • tool.crm.lookup
  • tts.stream
  • handoff.transfer

Le point important : correlation ID unique.

Sans ID, vous avez des logs. Pas une histoire.

Logs : ce qu’il faut logguer (et ce qu’il faut éviter)

Le callbot génère naturellement :

  • audio,
  • transcription,
  • décisions,
  • actions.

La tentation : “on log tout”.

En prod, on fait mieux : on log utile.

Logs utiles

  • intention finale + score (ou “incertain”),
  • champs collectés (avec masquage),
  • raisons d’escalade,
  • erreurs STT/TTS/outils,
  • et sources utilisées (RAG) côté système.

Logs dangereux

  • PII en clair partout,
  • full transcripts stockés sans politique,
  • ou prompts/outils secrets exposés.

Pour les enjeux de sécurité (prompt injection, exfiltration), l’article compagnon est : Sécurité callbot.

Et pour la conformité (enregistrement/transcription/rétention) : RGPD & callbots.

Schéma d’événements : la différence entre “des logs” et “une timeline”

Un callbot instrumenté “au hasard” produit souvent :

  • 200 lignes de logs,
  • impossibles à corréler,
  • et impossibles à agréger.

Ce que vous voulez, c’est un schéma.

Un exemple volontairement simple (format événement) :

{
  "call_id": "c_01H...",
  "ts": "2026-03-05T09:12:34.123Z",
  "event": "stt.segment.final",
  "lang": "fr-FR",
  "text": "je veux déplacer mon rendez-vous",
  "confidence": 0.86,
  "latency_ms": 120
}

Puis :

{
  "call_id": "c_01H...",
  "ts": "2026-03-05T09:12:34.450Z",
  "event": "intent.final",
  "intent": "appointment.reschedule",
  "confidence": 0.78
}

L’objectif est double :

  • rejouer une conversation comme une suite d’événements,
  • agréger (“combien d’appels ont eu un stt.retry ?”).

Sans schéma, vous n’avez pas de produit observable. Vous avez un roman.

Sampling : tout logguer tue la prod (et parfois votre conformité)

À petit volume, “on log tout” semble raisonnable.

À grand volume, “on log tout” devient :

  • cher (stockage),
  • lent (pipelines),
  • et risqué (PII).

Le sampling est donc une feature :

  • 100% des erreurs (timeouts, exceptions),
  • 10–20% des appels “normaux” (selon volume),
  • 0% ou masquage fort sur les contenus sensibles,
  • et, éventuellement, un mode “debug” activable sur un segment.

Vous voulez pouvoir augmenter la visibilité quand un incident arrive… sans payer ce prix tous les jours.

Un bonus très rentable : un golden set d’appels (anonymisés) que vous rejouez à chaque changement.

Pas 10 000. Dix à cinquante.

L’objectif est de détecter :

  • une latence qui dérape,
  • un intent qui part ailleurs,
  • une TTS qui change de rythme,
  • ou un RAG qui ne retrouve plus.

Ce petit set devient votre “test de non-régression” produit. Et il vous évite le grand classique : “ça a cassé, mais on ne sait pas quand”.

C’est aussi un rappel culturel : un callbot n’est pas un clip marketing. C’est un service. Et un service s’améliore avec des mesures, pas avec des impressions.

La prod adore le boring. Et c’est une bonne nouvelle.

Redaction : logguer sans stocker des secrets (et sans se mentir)

Un callbot manipule souvent des données sensibles :

  • identifiants,
  • dates de naissance,
  • montants,
  • parfois santé.

Donc, l’observabilité doit être pensée avec une règle simple :

vous voulez diagnostiquer sans “rejouer” des secrets.

Quelques patterns utiles :

  • masquage (ex. ****1234) sur les identifiants,
  • tokenisation (un token stable pour corréler, sans garder la valeur),
  • redaction automatique sur les transcriptions (PII),
  • segmentation : logs “opérationnels” (durée, erreurs) séparés des contenus conversationnels.

Le piège est double :

  1. masquer trop tôt → vous perdez la capacité à débugger les champs critiques,
  2. masquer trop tard → vous stockez des secrets “par défaut”.

La solution n’est pas magique : c’est une politique, des outils, et des tests. Et, évidemment, une rétention claire. Pour le cadre : RGPD & callbots.

SLO/SLI callbot : définir ce que “bon” veut dire

Une métrique sans cible n’est pas une métrique. C’est une curiosité.

Définissez donc des SLO (objectifs) sur vos SLI (indicateurs), par exemple :

  • latence tour complet p95 < X ms (selon vos besoins),
  • taux de “reprompt” < Y%,
  • taux d’échec STT < Z%,
  • et service level (si file d’attente).

L’intérêt n’est pas de mettre des chiffres “parce qu’il faut”.

L’intérêt est d’avoir un contrat interne : “quand on dégrade, on déclenche un incident”.

Métriques : du “centre d’appels” + du “temps réel”

En callbot, vous avez deux familles de métriques :

1) Métriques métier (centre d’appels)

  • AHT
  • FCR
  • containment
  • transfer rate
  • transfer quality (répétitions, temps de compréhension agent)
  • abandon / drop rate

2) Métriques système (temps réel)

  • latence bout en bout p50/p95/p99,
  • latence STT (premier token, segments),
  • latence LLM (décision),
  • latence TTS (premier audio),
  • erreurs par fournisseur,
  • retries / timeouts.

Dashboards : 10 vues qui servent vraiment (et qui évitent le théâtre)

Un bon dashboard répond à une question.

Voici 10 questions utiles en prod callbot :

  1. Santé globale : volume, drop rate, erreurs majeures.
  2. Latence p95 par maillon (STT/LLM/TTS/outils).
  3. Reprompts : “je n’ai pas compris” par intent.
  4. Top intents et leur FCR.
  5. Escalades : taux + raisons + files ciblées.
  6. Transfert : abandon pendant transfert + temps de transfert.
  7. Audio : clipping/niveaux (quand disponible) + anomalies.
  8. RAG : retrieval vide / conflits / sources les plus utilisées.
  9. Coût : coût par appel résolu + dérives.
  10. Changements : “qu’est-ce qui a changé cette semaine ?” (versions prompts/modèles/règles).

L’idée n’est pas d’avoir 10 dashboards de plus.

L’idée est d’avoir 10 vues qui permettent de décider : “on rollback”, “on ajuste”, “on escalade”.

Qualité : audio, fin de tour, et les symptômes produit

La prod vous envoie rarement un bug “AEC”.

La prod vous envoie :

  • “il coupe la parole”
  • “il ne comprend pas”
  • “il demande de répéter”

Donc vous devez relier ces symptômes à des signaux :

  • audio (clipping, niveaux),
  • endpointing/VAD (fin de tour),
  • latence (silences),
  • STT erreurs sur chiffres.

L’article qui vous donne les briques audio est ici : Audio callbot.

Et la partie temps réel (barge‑in, endpointing) ici : Latence, barge-in, VAD.

Outils de téléphonie : Voice Insights (exemple concret)

Certaines plateformes exposent des insights spécifiques voix.

Twilio documente par exemple Voice Insights, orienté vers la qualité d’appel, les événements et la performance sur la voix.4

Peu importe l’outil : la logique reste la même.

Vous voulez :

  • corréler qualité téléphonie ↔ performance callbot,
  • et détecter les dérives avant que les humains les subissent.

Cost observability : le coût par appel est une métrique (et un levier)

À l’échelle, un callbot est un système temps réel… et un système de coûts.

Vous voulez pouvoir répondre à :

  • “combien coûte un appel résolu ?”
  • “quel maillon coûte le plus ?” (STT ? LLM ? TTS ?)
  • “qu’est-ce qui se passe quand le volume double ?”

Donc instrumentez :

  • coût estimé par appel (agrégé),
  • coût par provider,
  • et coût des retries (c’est souvent là que l’argent se cache).

Et reliez ça à vos KPI : un callbot qui coûte 2× plus mais réduit l’AHT de 30% peut être un bon deal… ou l’inverse.

Pour une approche “unit economics”, l’article compagnon est : Coût callbot par appel & ROI.

Offline ↔ prod : relier vos tests à la réalité

Une observabilité mature vous permet un truc rare : relier le benchmark à la prod.

Exemple :

  • en offline, vous voyez que l’intent “résiliation” a plus de confusion,
  • en prod, vous voyez plus de transferts + plus de reprompts sur cet intent.

Ce pont est ce qui vous permet de progresser sans casser tout le système à chaque itération.

Pour la méthode d’évals (datasets, scoring, load tests) : Benchmark callbot.

Corrélation multi-fournisseurs : la prod adore les stacks hybrides (vous aussi)

En 2026, beaucoup d’équipes finissent avec une stack hybride :

  • STT chez un fournisseur (ou self-hosted),
  • LLM chez un autre,
  • TTS chez un troisième,
  • et une téléphonie séparée.

Ce n’est pas un problème. C’est même souvent une bonne stratégie pour :

  • réduire le lock‑in,
  • optimiser coûts/latence,
  • et garder du contrôle.

Mais ça crée un défi observabilité :

chaque fournisseur a ses propres IDs, logs et erreurs.

Votre job est de ramener tout ça à une vérité : un appel = une timeline.

Donc :

  • un call_id interne,
  • des mapping IDs fournisseurs,
  • et une manière de relier “l’erreur STT” à “l’escalade” et “l’abandon”.

Si vous n’avez pas ça, vous aurez des “incidents fantômes” : chacun voit son dashboard vert, et pourtant l’utilisateur raccroche.

Pour le panorama de la stack (LLM/STT/TTS/S2S, open source vs cloud), voir : Stack callbot 2026.

Incident response : comment “débugger” sans panique

Quand un callbot a un incident, vous avez souvent :

  • une hausse de latence,
  • une hausse d’échecs STT/TTS,
  • ou une dérive de comportement (mauvais routage, escalades).

Un playbook minimal :

  1. vérifier SLA fournisseurs (si cloud),
  2. vérifier latence p95 par maillon,
  3. isoler un échantillon d’appels problématiques,
  4. relire la timeline (traces),
  5. identifier la cause racine,
  6. activer le fallback (autre modèle / autre STT / escalade).

L’objectif n’est pas “zéro incident”.

L’objectif, c’est “incident court, propre, et explicable”.

Implémenter l’observabilité callbot : méthode en 8 étapes

1

Définir vos KPI (AHT/FCR/containment)

Sans KPI, vous allez optimiser des détails. Avec KPI, vous optimisez du temps humain.

2

Choisir un correlation ID par appel

Un ID qui traverse téléphonie, STT, LLM, TTS, handoff. C’est la colonne vertébrale.

3

Instrumenter des spans (traces) par maillon

STT, LLM, tools, TTS. Mesurez le p95, pas seulement “ça marche”.

4

Définir vos logs utiles (sobriété)

Intents, champs, raisons, erreurs. Évitez les PII en clair.

5

Créer 10 alertes qui comptent

Latence p95, taux d’échec STT/TTS, hausse reprompts, hausse transferts, drop rate.

6

Mettre en place un échantillonnage d’appels

Écouter 10 appels/semaine vaut souvent plus que 10 dashboards.

7

Versionner les changements (prompts, modèles, règles)

Sans changelog, vous ne saurez pas pourquoi ça a changé.

8

Tester vos fallbacks (comme un produit)

Fallback non testé = plan imaginaire. Simulez des pannes.

FAQ

Questions frequentes

Pourquoi OpenTelemetry plutôt qu’un monitoring maison ?

Parce qu’il donne un cadre unifié (traces/metrics/logs) et facilite la corrélation. Mais vous pouvez faire sans. L’essentiel est la capacité à expliquer une décision et une latence.

Dois-je logguer toutes les transcriptions ?

Pas forcément. Logguez ce qui est utile et gouverné. L’objectif est de débugger et d’améliorer, pas de créer un data lake incontrôlé.

La meilleure métrique callbot ?

AHT/FCR + transfer quality. Tout le reste est au service de ces KPI. Les métriques système (latence p95) sont des causes, pas des objectifs.

Comment expliquer “il a dit ça” ?

Avec une timeline : entrée STT, décision LLM, sources RAG, outils appelés, réponse TTS. Sans traces, vous ne pourrez pas répondre proprement.

Sources et references

  1. [1]OpenTelemetry, “Traces” documentation.
  2. [2]OpenTelemetry, “Metrics” documentation.
  3. [3]OpenTelemetry, “Logs” documentation.
  4. [4]Twilio, “Voice Insights” documentation.
observabilitymonitoringOpenTelemetrylogstracesmetricsproduction

Solutions associées