Logo des journaux d'application

JSON et journaux d'application Nouveau

Connecter Journaux d'application vers Excel, Sheets et l'IA

Journal de votre application, traces de pile toujours jointes. Lignes JSON provenant d'ECS, Serilog, pino ou Bunyan. Texte brut horodatage [NIVEAU] journaliseur : message Dans ce format, une trace de pile de quarante lignes reste rattachée à la ligne qui l'a déclenchée au lieu de se transformer en quarante lignes inutiles. De plus, sous Debian et Ubuntu, les deux journaux enregistrent les modifications apportées au système.

1connexion
0ports d'entrée
lecture seuleappliqué
4 formats de journal d'application Traces de pile conservées avec leur message Historique des paquets dpkg et apt Lecture seule · rien n'est ajouté à votre application
La grande idée

Votre dossier de logs devient un tableau selon lequel vous pouvez effectuer des regroupements.

Ni grep, ni une pile de logs. Query Streams lit les fichiers que votre application écrit déjà, en conserve le format et vous fournit des colonnes typées : ainsi, identifier le système de journalisation qui génère le plus d’erreurs cette semaine se fait en une seule requête, au lieu d’y consacrer un après-midi entier. Une ligne que l’analyseur ne peut pas lire est conservée avec une explication, au lieu d’être ignorée silencieusement.

Dossier journalsur votre serveur
shopfront-api/app.jsonlJSON
shopfront-worker/app.logtexte
historique.logapte

Rotations, archives compressées et fichiers relus — gérés

enregistreurs les plus bruyants.sqlSQL
SELECTIONNER application, journalisation,
       compter(*) AS erreurs
DE   ensembles de fichiers.événements
  niveau = 'ERREUR'
GROUPE PAR application, journaliseur
ORDER BY erreurs DESC
Résultaterreurs consignées par le journaliseur
applicationbûcheronerreurs
API de vitrineClient de paiement412
API de vitrineOrderRepo96
employé de magasinExpéditeur de courriel31
vitrine-webFiltre de session4

Intégrez-la à la base de données de votre application dans la même requête.

Les fichiers que votre application écrit déjà, désormais un tableau sur lequel vous pouvez générer des rapports.

Sources

Deux formes que votre application écrit, deux que la boîte écrit

Chaque fiche indique précisément les fichiers lus par Query Streams et les données qu'ils contiennent. Aucune bibliothèque de journalisation ni modification de format n'est requise : les formats pris en charge sont ceux utilisés par défaut par ces outils.

Journaux d'applications pris en charge

4 formats
lignes JSONECS, Serilog compact, pino, Bunyan
  • Un objet JSON par ligne dans .jsonl, .ndjson ou *-json.log
  • Les noms de champs ECS sont directement mappés — niveau de journalisation, nom.hôte, nom du service
  • Serilog compact, pino et Bunyan lisent aussi : mêmes clés, orthographes différentes
  • Les objets imbriqués s'aplatissent en colonnes pointillées ; tout ce qui n'est pas cartographié se retrouve dans données
  • Annexes; rotations datées et .gz suivi
Journal de textehorodatage, niveau, enregistreur, message
  • La forme par défaut : un tampon, un niveau entre parenthèses, un enregistreur, un message
  • La trace de la pile est rattachée à la ligne qui a déclenché l'erreur — une seule ligne, et non quarante.
  • à …, Causé par : et Traceback Tout se lit comme une suite
  • Lectures .enregistrer, .dehors et .SMSLes fichiers JSON sont exclus par déclaration
  • Millisecondes (virgule ou point) ; horloge locale lue comme celle de l'agent
dpkgjournal des paquets
  • Une ligne par étape d'emballage : installer, mise à niveau, retirer, configurer
  • emballer, version et nouvelle_version comme leurs propres colonnes
  • statut Les lignes indiquent que le paquet dpkg a été déplacé dans l'état.
  • /var/log/dpkg.log et son numéro .gz rotations
  • Aucune zone définie dans le fichier ; lecture basée sur l’horloge locale de l’agent
apteJournal d'historique
  • Un Clé : valeur bloc par transaction, ligne vide entre les blocs
  • L'exact ligne de commande qui a fonctionné, et ce que cela a changé
  • Date de début est l'heure de l'événement ; Date de fin est sa propre colonne
  • Une transaction inachevée reste en suspens au lieu d'être divisée en deux.
  • /var/log/apt/history.log plus son .gz rotations
Plus à venirCe sont les débuts, pas le plafond

De nouveaux formats de journaux d'applications et de packages sont ajoutés à chaque nouvelle version de l'Agent. Grâce à la mise à jour automatique des Agents, un format ajouté ultérieurement sera disponible dans votre connecteur sans intervention sur le serveur.

Les quatre analyseurs ont été conçus et testés à l'aide de fichiers journaux réels, incluant les rotations et les archives compressées. Les deux journaux de paquets concernent uniquement Debian et Ubuntu ; aucun profil n'est disponible pour les distributions basées sur RPM ni pour l'historique des paquets Windows, et nous préférons vous en informer plutôt que de vous laisser le découvrir lors de l'installation.
Il court partout

Le journal de votre application pour chaque région, lire où il court

Une application est rarement hébergée sur un seul serveur. Une API dans une région cloud, des nœuds de calcul dans une autre, et une autre application encore sur un serveur physique au bureau. Chaque emplacement exécute un agent réseau qui lit les fichiers journaux existants et se connecte aux flux de requêtes. Pour votre pare-feu, il s'agit d'une connexion sortante ordinaire : aucune connexion à ouvrir, aucun VPN à configurer, et aucune bibliothèque de journalisation à ajouter à votre application.

UE-Ouest L'API écrit des lignes JSON, un fichier par service composez le numéro.
États-Unis-Est Les travailleurs écrivent des journaux de texte, des traces de pile et tout composez le numéro.
Siège social Une boîte plus ancienne, plus l'historique dpkg et apt à côté. composez le numéro.

Trois connexions sortantes, un seul point de contrôle : aucun port entrant, aucun VPN, aucune modification du pare-feu.

Un agent par emplacement

Un agent couvre un emplacement entier plutôt qu'un seul journal : les lignes JSON, le journal texte et l'historique des paquets de cet emplacement deviennent chacun leur propre connecteur de jeu de fichiers sur le même agent. Le niveau gratuit exécute un seul agent, tandis que les niveaux supérieurs en exécutent plusieurs.

1 emplacement = 1 agent = plusieurs connecteurs

Rien à ouvrir

L'agent établit une seule connexion sortante chiffrée, utilisée pour la requête sortante et les données reçues. Aucun port entrant, aucun VPN, aucune modification du pare-feu à effectuer : votre application n'a rien à ajouter pour son fonctionnement.

une seule connexion, dans les deux sens

Une requête à travers les régions

Chaque source dans un requête fédérée L'API nomme son propre agent, ce qui permet, avec une seule instruction, de placer les erreurs de l'API dans une zone à côté de celles des workers dans une autre, ou encore à côté de l'historique des packages indiquant leur date de démarrage. Inclus dans les versions Business et Enterprise.

2 régions → 1 ensemble de résultats

Ils se tiennent au courant

Les agents se mettent à jour automatiquement ; ainsi, un format de journal ajouté dans une version ultérieure est déployé partout sans intervention de votre part. C’est pourquoi la liste ci-dessus représente un point de départ plutôt qu’une liste figée.

De nouveaux formats arrivent avec l'Agent

La partie difficile

Traces de pile, horloges et doublons

Le journal d'application est le fichier le plus désorganisé du serveur : un seul événement peut s'étendre sur quarante lignes, deux formats sans rapport peuvent se ressembler, et la moitié de ces fichiers ne contiennent aucune indication de fuseau horaire. Chaque cas est traité par déclaration, et non par conjecture.

Un seul événement, pas quarante rangées

Une ligne qui ne commence pas par un horodatage est rattachée à la ligne précédente. C'est ainsi qu'une trace de pile reste liée au message qui l'a déclenchée, au lieu de se fragmenter en des dizaines de fragments non identifiables. GROUPE PAR peut être remonté.

lignes de continuation → jointes, jusqu'à 200

Deux bûches qui se ressemblent

Une ligne d'application JSON, une enveloppe Docker et une ligne d'accès JSON d'un serveur web sont toutes des données JSON horodatées. Le format est déterminé par le contenu de la ligne ; chacune est donc associée à un profil distinct, sans jamais être liée à un nom de fichier.

C'est le contenu qui décide, pas le nom du fichier.

Une horloge sans fuseau horaire

Les journaux de texte, dpkg et apt enregistrent tous l'heure locale de l'hôte sans décalage horaire. Plutôt que de tenter une estimation, ces profils déclarent que l'horodatage est local et l'interprètent comme le fuseau horaire de l'agent ; la chaîne d'origine est conservée dans une colonne distincte.

horloge locale → déclarée, jamais déduite

Une transaction est toujours en cours.

apt écrit immédiatement le début d'une mise à jour et la ligne de fin seulement lorsque dpkg a terminé, ce qui peut prendre plusieurs minutes. Un bloc non encore fermé reste en attente, au lieu d'être coupé en deux et d'apparaître comme un événement sans début.

attente jusqu'à la date de fin, jusqu'à 30 minutes

Dans le fichier5 lignes
2026-09-08 14:02:11,431 [ERREUR] PaymentClient : échec de la transaction. java.net.SocketTimeoutException : délai de lecture dépassé. à java.base/java.net.SocketInputStream.read à PaymentClient.charge(PaymentClient.java:88) … 24 autres
Dans le tableau1 rangée
heure_événement
2026-09-08 14:02:11.431
niveau
ERREUR
bûcheron
Client de paiement
message
Échec de la charge ↵ java.net.SocketTimeoutException : Délai de lecture dépassé ↵ à …
Comptez l'exception, pas les lignes qu'elle a imprimées.
Le schéma

Les colonnes que vous obtenez réellement

Il ne s'agit pas d'un simple bloc de texte avec un horodatage. Chaque format est analysé et converti en colonnes typées que vous pouvez filtrer, regrouper et agréger directement. De plus, lorsque votre application enregistre du JSON structuré, ses propres champs sont également décomposés en colonnes.

Logo élastique
lignes JSONECS · Serilog · pino · Bunyan
niveaubûcheronmessagehôteservicefluxdonnées
icône des journaux d'application
Journal de textetraces de pile jointes dans
niveaubûcheronmessage
Logo Debian
journal des paquets dpkgDebian · Ubuntu
actionÉtatemballerversionnouvelle_versiondétail
Logo Debian
Journal d'historique aptun bloc par transaction
ligne de commandedemandé parinstallermise à niveauretirerpurgeerreurdate_de_findonnées

Chaque rangée contient également heure_événement, l'horodatage brut à partir duquel il a été lu, et le fichier dont il provient. Vos journaux d'application sont identifiés par application et les deux journaux de paquets par hôte Les deux données proviennent du dossier contenant le fichier ; ainsi, un dossier par service ou par machine permet d’obtenir une colonne claire pour le regroupement. L’affichage du journal de texte sur trois colonnes est intentionnel : plutôt que de deviner les champs qu’un message en texte libre ne contient pas systématiquement, le message est conservé intégralement, avec sa trace de pile.

Une seule connexion, chaque surface

Où peuvent être stockés les données de journalisation de votre application

Les fichiers journaux ne sont pas une impasse. Connectez le dossier une seule fois et cette même connexion en lecture seule alimentera toutes les interfaces prises en charge par Query Streams : aucune deuxième configuration, aucune deuxième copie des données et aucun traitement différent de celui d’un connecteur de base de données.

Prise en charge

Journaux d'application vers Excel

Microsoft Excel · Complément Excel

Importez directement les résultats des journaux d'applications en direct dans une feuille de calcul et actualisez-les à la demande — Excel de bureau, Excel Online, Microsoft 365.

Comment fonctionne Excel
Prise en charge

Journaux d'application vers Google Sheets

Module complémentaire Sheets

Exécutez une requête de journal d'application enregistrée depuis la barre latérale et glissez-déposez les lignes dans la feuille. Les collaborateurs peuvent ensuite l'actualiser eux-mêmes.

Comment fonctionne Google Sheets
Prise en charge

Serveur de journaux d'application MCP

Clients Claude, Cursor et MCP · Serveur MCP

Donnez à un assistant IA un accès en lecture seule au journal d'application avec le schéma dont il a besoin pour écrire du code SQL correct ; aucune information d'identification n'est requise dans la conversation.

Comment fonctionne MCP
Prise en charge

API REST des journaux d'application

point de terminaison HTTP

Publiez une requête de journalisation d'application sous forme de point de terminaison JSON authentifié, accessible à toute application, avec une spécification OpenAPI 3.1 et des collections Postman, Insomnia et Hoppscotch prêtes à l'emploi. Aucun port de base de données n'est ouvert.

Comment fonctionne une API REST ?
Prise en charge

Journaux d'application vers Airtable

Plateforme d'automatisation

Synchronisez les lignes du journal d'application dans une base Airtable selon une planification, ou récupérez-les dans un script d'automatisation Airtable.

Comment fonctionne Airtable
Prise en charge

Journaux d'application vers Baserow

Plateforme d'automatisation

Alimentez une table Baserow à partir du journal d'application via le point de terminaison REST — auto-hébergé ou cloud Baserow.

Comment fonctionne Baserow
Prise en charge

Journaux d'application vers SeaTable

Plateforme d'automatisation

Maintenez une base SeaTable à jour avec les données de journalisation des applications sans exporter de fichier ni exposer la base de données.

Comment fonctionne SeaTable
Prise en charge

Journaux d'application vers Smartsheet

Plateforme d'automatisation

Intégrez les résultats du journal d'application dans une grille Smartsheet afin que les plans et les rapports soient lus à partir du système source et non de l'exportation de la semaine précédente.

Comment fonctionne Smartsheet
Prise en charge

Journal d'application vers Anvil

Anvil Works · Plateforme d'applications

Utilisez le point de terminaison REST pour sauvegarder une application Python Anvil avec journal d'application au lieu d'intégrer les identifiants de base de données dans l'application.

Comment fonctionne Anvil
Prise en charge

Journaux d'application dans Power BI

Power Query M

Collez le code Power Query M généré dans l'éditeur avancé de Power BI et le rapport lira les résultats du journal d'application en direct via HTTPS — sans pilote ODBC ni port de base de données ouvert.

Comment fonctionne Power BI
Prise en charge

Alertes et rapports des journaux d'application

Slack · Discord · Courriel · Webhook

Programmez une requête de journal d'application et faites en sorte que les lignes soient envoyées à Slack, Discord, par e-mail ou via un webhook signé — ou conservez le message jusqu'à ce qu'un nombre de lignes, un seuil ou un pourcentage de variation dépasse la limite que vous avez définie.

Fonctionnement des alertes et des rapports
La carte des alertes mérite une attention particulière : une requête planifiée sur le nombre d’erreurs ne nécessite aucune surveillance du terminal, de sorte qu’un pic d’activité est automatiquement signalé sur Slack ou dans une boîte de réception. Les guides pas à pas spécifiques aux journaux ne sont pas encore disponibles ; les pages liées expliquent le fonctionnement de chaque interface.

Ce que cela ne fait pas délibérément

Il ne s'agit pas d'un suivi en temps réel. Query Streams lit les fichiers tels qu'ils sont sur le disque lors de l'exécution de la requête ; par conséquent, un pic d'erreurs apparaît sous forme de lignes plutôt que dans un flux que vous pouvez observer. Si vous avez besoin d'alertes à la seconde près, ligne par ligne, dès leur affichage, un pipeline de journalisation est la solution idéale, et nous le recommandons.

Le journal de votre application contient tout ce qu'elle y affiche. Il est important de le préciser : si elle y enregistre un jeton, l'adresse e-mail d'un client ou le corps complet d'une requête, cette chaîne de caractères est déjà présente dans le fichier et figurera également dans la colonne correspondante. Contrairement aux journaux d'un serveur web, il n'existe aucun champ permettant d'exclure des données. Traitez la table résultante avec la même précaution que vous le feriez pour le fichier.

Certaines informations enregistrées par les journaux du paquet sont identifiées par leur forme plutôt que prouvées par une capture. dpkg documente une ligne de fichier de configuration et purge et disparaître actions; documents appropriés Demandé par, Erreur, Purge, Réinstaller et RétrograderAucun de ces éléments n'apparaissait dans les journaux ayant servi à la création de ces profils ; ils sont donc déclarés, et non démontrés – et aucun des journaux de paquets ne couvre les distributions basées sur RPM ni Windows.

Il s'agit d'un détail de configuration plutôt que d'une limite : la colonne « Identifiant » provient du dossier contenant le fichier, lui-même situé dans le sous-dossier que vous indiquez. Configurez un connecteur pour qu'il pointe vers un répertoire contenant un sous-dossier par service ou par machine, et vous obtiendrez automatiquement des noms utiles ; configurez-le directement vers un répertoire contenant des fichiers non structurés, et chaque ligne portera le nom de ce répertoire. Cela ne prend que trente secondes lors de la configuration.

Le reste suit la conception habituelle. L'agent se connecte en sortie et lit les fichiers ; aucune donnée n'est installée avec votre application, aucune donnée n'est écrite en retour, aucun processus n'est attaché ni instrumenté, et l'accès est en lecture seule.

Comment ça marche

Trois étapes, sans aucun changement dans la façon dont votre application enregistre les journaux.

01

Indiquez le dossier des journaux

Accordez à un agent Query Streams un accès en lecture à l'emplacement où les journaux sont déjà enregistrés : le dossier situé à côté de votre application, un partage sur lequel vous les collectez, ou /var/log pour l'historique du paquet.

02

Il reconnaît le format

Query Streams identifie le format à partir du contenu des lignes, et non du nom de fichier ; ainsi, une copie renommée reste lisible, et un fichier qui ne correspond pas au format défini est mis en attente avec une explication au lieu de corrompre la table.

03

Interrogez-le ou joignez-le

Exécutez des requêtes SQL depuis le portail, intégrez-les dans Microsoft Excel ou Google Sheets, ou utilisez une requête fédérée pour lier votre journal d'erreurs aux commandes et aux utilisateurs de votre base de données d'application, le tout en une seule instruction.

FAQ du journal d'application

Quelle bibliothèque de journalisation dois-je utiliser ?

Aucun en particulier. Si vous écrivez des lignes JSON, les noms de champs Elastic Common Schema sont directement mappés, et le format compact de Serilog, pino et Bunyan sont également compatibles car ils utilisent les mêmes clés de premier niveau avec des orthographes différentes ; l’horodatage est tiré du nom habituel que votre ligne contient.

Si vous écrivez du texte brut, l'ordinaire horodatage [NIVEAU] journaliseur : message Shape est un format pris en charge à part entière. Il n'y a rien à adopter ni à reconfigurer.

Que se passe-t-il réellement avec une trace de pile ?

Il reste associé à l'erreur qui l'a produite. Un enregistrement commence à une ligne qui s'ouvre par un horodatage, et chaque ligne suivante qui n'en contient pas est traitée comme une continuation de celle-ci — ce qui correspond exactement à la structure d'une trace Java, .NET ou Python. La classe d'exception, à … cadres, un Causé par : chaîne et un Python Traceback Tous les en-têtes sont reconnus comme appartenant à la ligne ci-dessus.

La différence concrète, c'est que le comptage des erreurs comptabilise bien les erreurs. Sans cela, une seule exception fausse le nombre d'images affichées, et le message que vous souhaitez lire se trouve sur une ligne différente de celle contenant le nom de la classe.

Pourquoi dpkg et apt figurent-ils dans les journaux d'application ?

Car elles répondent à la question que l'on se pose immédiatement après « quand est-ce que ça a commencé à dysfonctionner ? » — à savoir « qu'est-ce qui a changé ? ». Ce sont les journaux internes des gestionnaires de paquets, situés dans la même arborescence de dossiers, lus de la même manière, et ils constituent le complément le plus utile aux journaux d'erreurs.

L'historique d'apt est plus lisible : chaque transaction comporte un bloc indiquant la commande exacte exécutée et les éléments installés, mis à jour ou supprimés. Le journal de dpkg, quant à lui, est plus précis, avec une ligne par étape d'installation ou de suppression de paquet. Grâce à eux, vous pouvez associer une date à chaque modification au lieu d'essayer de vous en souvenir.

Puis-je lier mes erreurs à la mise à jour qui les a provoquées ?

Oui, avec une chose à savoir : un connecteur lit un seul format, donc votre journal d’application et /var/log/apt/history.log Il s'agit de deux connecteurs plutôt que d'un seul. Une requête fédérée les joint en une seule instruction, selon le même mécanisme qui permet de joindre un journal à une base de données de production.

Voilà la question qu'il vaut la peine de poser sur cette famille de données : le nombre d'erreurs par heure, en plus des transactions effectuées ce jour-là, toutes deux lues à partir de fichiers que personne n'a eu à expédier.

Est-ce en temps réel ?

Il s'agit d'une lecture à la demande plutôt que d'un traitement en continu. Les fichiers sont lus au fur et à mesure de l'exécution de la requête ; les nouvelles lignes apparaissent donc au fur et à mesure que votre application les écrit et que le fichier est pris en compte — non pas selon une planification nocturne fixe, mais sans suivi en temps réel non plus.

Pour poser une question portant sur les dernières semaines et obtenir la réponse dans un tableur ou un rapport programmé, c'est la forme la plus pratique et elle nécessite beaucoup moins de machines qu'une pile de bûches.

Mon journal contient des champs que vous n'avez pas listés. Sont-ils manquants ?

Non. Pour les formats JSON et apt, tout ce qui ne correspond pas à une colonne nommée est conservé dans un données Au lieu d'être ignorées, les colonnes sont conservées ; ainsi, un identifiant de requête, un locataire ou une durée enregistrée restent interrogeables. Les objets imbriqués sont convertis en noms séparés par des points lors de leur importation.

Une ligne qui ne correspond pas du tout au format défini est également conservée — en tant que ligne brute avec une explication, de sorte qu'un changement de format inattendu apparaisse comme quelque chose de visible plutôt que comme un trou silencieux dans vos chiffres.

Qu’en est-il de l’historique des paquets Red Hat, Fedora ou Alpine ?

Il n'existe aucun profil pour dnf, miam ou apk Aujourd'hui, il n'existe aucun équivalent pour Windows. Les deux formats de paquets disponibles sont le journal de dpkg et l'historique d'apt, compatibles avec Debian et Ubuntu.

Les journaux de votre application restent inchangés : les formats JSON et texte sont compatibles avec tous les systèmes de distribution. En cas de doute sur le format d'un de vos dossiers, le test de connexion vous indique ce qu'il a trouvé avant toute modification.

Votre application l'a déjà noté.

Connectez un dossier de logs et exécutez votre première requête en quelques minutes. Offre gratuite, sans carte de crédit, sans modification de votre façon de consigner les données.

Lecture seule · Connexion sortante uniquement · Vos journaux restent sur votre serveur