OpenTelemetry relie la latence de l’IA locale aux opérations de stockage et de réseau en représentant chaque opération sous forme d’une span horodatée, avec un contexte partagé et des attributs sémantiques cohérents.
Une réponse d’IA domestique de quatre secondes peut consacrer seulement une partie de ce temps à la génération de tokens, tandis que le reste se perd dans la recherche vectorielle, les lectures du système de fichiers ou de la base de données, les attentes en file d’attente, les appels HTTP et l’exécution d’outils. OpenTelemetry ne rend pas ces dépendances plus rapides à lui seul. Il leur fournit une télémétrie compatible afin qu’une requête puisse être décomposée en couches ayant réellement consommé son temps d’horloge.
Les conventions sémantiques donnent aux différents services un vocabulaire comparable
Le traçage devient difficile à interroger lorsque chaque service invente ses propres noms de spans et clés d’attributs, car des opérations équivalentes peuvent sembler sans rapport dans un serveur de modèles, un client de base de données et une passerelle d’outils. Les conventions sémantiques réduisent cette ambiguïté en définissant des noms et attributs communs pour les classes d’opérations récurrentes.
Un vocabulaire cohérent permet à l’analyse de la latence de comparer les opérations sans devoir normaliser au préalable le schéma privé de chaque bibliothèque. Un vocabulaire sémantique partagé facilite l’agrégation et l’interprétation des spans provenant de différents composants, sans devoir traduire au préalable les noms de champs privés de chaque bibliothèque.
Pour une pile d’IA locale, le résultat utile est une séparation plutôt qu’un aplatissement : la génération du modèle reste une opération du modèle, une requête de base de données reste une opération de stockage et un appel HTTP reste une dépendance réseau, même si les trois apparaissent dans une seule trace.
Les spans GenAI séparent le travail du modèle de celui de l’agent et des outils
Une invocation de modèle, une exécution d’agent et l’exécution d’un outil peuvent contribuer à la même requête tout en présentant des comportements différents en matière de latence et de ressources. Traiter toute la chaîne comme une seule span générique « IA » masque donc l’endroit où le temps a réellement été consommé. L’instrumentation spécifique à la GenAI fournit des champs au niveau des opérations afin de conserver ces étapes distinctes.
Les conventions en cours de développement pour les opérations GenAI et l’activité des outils standardisent la télémétrie des flux de travail des modèles et des agents, tout en permettant aux applications d’ajouter leurs propres spans d’intégration.
Cette distinction compte sur un serveur domestique, car un modèle local rapide peut tout de même dépendre d’une recherche lente ou d’appels à des outils distants. La trace doit attribuer le temps du modèle au modèle et le délai d’orchestration aux couches qui l’ont généré.
Les conventions évoluent encore sur certains aspects de la GenAI. Une implémentation doit donc enregistrer la version de son schéma et éviter de supposer que chaque bibliothèque émet automatiquement des attributs identiques.
Les spans de base de données et de stockage révèlent les attentes liées à la recherche et aux E/S
Les systèmes RAG privés et la domotique touchent souvent des magasins vectoriels, des bases SQL, des catalogues de métadonnées ou des services reposant sur le système de fichiers avant que le modèle puisse répondre. Ces opérations peuvent dominer la latence même lorsque l’inférence est rapide. Les instrumenter sous forme de spans distinctes empêche le temps de stockage de disparaître dans une vaste opération d’agent.
Le traçage des bases de données peut exposer la durée de l’opération, le système cible et des métadonnées de requête assainies, sans imposer l’inclusion du document privé complet dans la télémétrie. Représenter les appels de base de données sous forme de spans permet aux opérations SQL et NoSQL de conserver leur propre durée et des métadonnées d’opération limitées, au lieu de disparaître dans un minuteur couvrant tout l’agent.
Pour une base de connaissances domestique, une longue span de recherche peut indiquer une contention sur le disque, un travail d’indexation, un montage NAS distant lent ou une mise en file d’attente de la base de données, plutôt que la génération du modèle. Ce diagnostic est plus précis que la simple mesure de la réponse finale de l’API.
Les spans client et serveur délimitent les dépendances réseau
Le délai réseau apparaît généralement comme une partie d’une opération client-serveur plutôt que comme une unique span universelle de « latence réseau ». La comparaison utile porte donc sur l’attente du client et l’intervalle de traitement du destinataire. Des spans correspondantes peuvent montrer si le temps s’est accumulé avant que le serveur reçoive la requête, à l’intérieur du serveur ou après l’envoi de la réponse.
Les recommandations relatives au traçage distribué décrivent les relations entre les spans client et serveur comme une partie du chemin de la requête, reconstitué entre les services par l’instrumentation et la propagation du contexte.
Cela est particulièrement utile pour les outils MCP ou HTTP, car une longue span client associée à une span de traitement en aval beaucoup plus courte peut orienter vers le transport, le passage par un proxy, l’établissement de la connexion ou la mise en file d’attente autour du service. Une longue span serveur dirige au contraire l’attention vers le travail propre de la dépendance.
L’analyse de ZimaSpace sur la latence des outils MCP décrit les différentes couches de délai possibles ; le traçage OpenTelemetry fournit des éléments propres à la requête pour déterminer quelle couche a dominé lors d’une exécution réelle.
Les métriques peuvent signaler une population lente, tandis que les traces expliquent un exemple précis
Les métriques agrégées de latence indiquent si un service devient globalement plus lent, tandis qu’une trace explique comment une requête représentative a accumulé son délai. Corréler ces deux vues est utile lorsqu’un pic de p95 nécessite le chemin concret d’une requête plutôt qu’un autre graphique agrégé.
Les exemplaires et les métriques dérivées des traces peuvent relier les distributions à des éléments individuels de preuve issus des requêtes. L’utilisation d’exemplaires peut faire le lien entre une distribution agrégée de latence et des traces de requêtes représentatives, sans transformer chaque attribut de requête en étiquette de métrique.
Un serveur domestique peut ainsi déclencher une alerte lorsque la latence de recherche ou d’appel d’outil augmente, puis examiner une trace représentative incluant les spans du modèle, du stockage et du réseau pour cette même requête.
Une télémétrie utile s’arrête avant que le contenu privé ne devienne la charge utile du débogage
Ajouter davantage d’attributs peut améliorer le diagnostic jusqu’à ce que la télémétrie commence elle-même à transporter des noms de fichiers, des prompts, des extraits de documents, des identités du foyer ou des valeurs à cardinalité élevée et non limitée. Une pile d’IA privée a besoin de suffisamment de contexte pour identifier l’opération lente, sans recopier le contenu sensible traité par cette opération.
L’observabilité de l’IA impose une limite d’instrumentation réfléchie, car la structure de la télémétrie et l’évaluation de la qualité des modèles répondent à des problèmes différents. Maintenir la télémétrie et l’évaluation séparées aide à éviter que le contenu sensible des prompts ne devienne une métadonnée courante de performance.
L’échantillonnage, le volume d’exportation et la sélection des attributs génèrent également une surcharge. L’objectif n’est donc pas de conserver chaque span possible indéfiniment. Le résultat utile est une trace suffisamment détaillée pour séparer les délais du modèle, de la recherche, du stockage et du réseau, tout en restant sûre à conserver sur le serveur d’observabilité domestique.
La cardinalité constitue une autre limite de conservation. Un petit ensemble d’attributs bornés peut permettre le regroupement et le filtrage, tandis que le texte unique des prompts, les chemins complets, le contenu des documents ou les identifiants propres à chaque requête copiés dans des étiquettes de métriques peuvent rendre le stockage d’observabilité coûteux et difficile à interroger, même lorsque ces valeurs ne sont pas sensibles.
FAQ
OpenTelemetry mesure-t-il automatiquement la latence du disque et du réseau ?
Pas de manière universelle. Les bibliothèques et l’instrumentation automatique peuvent créer de nombreuses spans pour les bases de données, HTTP, RPC et l’exécution, mais les chemins de stockage personnalisés ou les étapes propres à l’application peuvent encore nécessiter une instrumentation manuelle.
OpenTelemetry est-il lui-même le backend de traçage ?
Non. OpenTelemetry définit des API, des SDK, l’instrumentation, des protocoles et des composants de collecteur ; un backend distinct stocke et interroge généralement les traces produites.
Faut-il stocker les prompts et le texte des documents dans les attributs des traces ?
En général, non, par défaut sur un système domestique privé. Enregistrez les noms d’opérations, les durées, les identifiants du modèle ou de la collection, le nombre de résultats et des métadonnées limitées, sauf si du contenu sensible est explicitement requis pour une session de débogage contrôlée.
Centre Tech & IA
Plus à lire

État d’exécution vs état persistant dans Home Assistant : que doit survivre à un redémarrage ?
Home Assistant ne conserve pas chaque valeur en temps réel ; la configuration, les registres, certains états restaurés, l’historique et les données de déploiement...

Comment Home Assistant authentifie-t-il les sessions locales et distantes ?
Les sessions Home Assistant locales et distantes utilisent le même modèle d’identité côté serveur ; l’accès à distance modifie le chemin et la limite...

Pourquoi les requêtes d’historique de Home Assistant peuvent-elles ralentir à mesure que les données de l’enregistreur augmentent ?
L’augmentation du nombre d’enregistrements peut accroître le coût des requêtes d’historique lorsque la plage demandée concerne davantage de lignes, que les défauts de cache...

