- Installez le paquet SDK de votre runtime.
- Gardez la clé d’ingestion du projet hors du dépôt de code.
- Définissez des valeurs stables pour le service, l’environnement et la version.
- Envoyez un signal de test sans risque depuis l’application.
- Lisez le résultat de l’envoi. Trouvez ensuite le signal dans LogBrew.
Signaux et contexte partagé
Les cinq premières cartes sont des signaux. La version et l’environnement forment le contexte de ces signaux. Ils ne sont pas un type de signal distinct.log
Un message structuré avec une gravité, une source, une heure et un
contexte sans risque.
trace_span
Une opération chronométrée, reliée à sa trace par les ID de trace et de
span.
issue
Un échec capturé, sa gravité et les détails de l’erreur envoyés par
l’application.
action
Une action dans votre application, avec en option un sujet, une session et
des propriétés sans risque.
metric
Une mesure numérique avec un nom, un type, une valeur, une unité et une
temporalité.
Version et environnement
La version du code et l’environnement associés aux signaux suivants dans
le même périmètre du SDK.
Valeurs de gravité
Utilisezinfo, warning, error ou critical pour les logs et les
problèmes. Les SDK et les runtimes peuvent envoyer des alias comme trace,
debug, warn ou fatal. LogBrew convertit les alias acceptés en valeurs
canoniques.
Installer avec un gestionnaire de paquets
Installez le paquet SDK du runtime qui envoie la télémétrie. Utilisez la configuration SDK ou d’ingestion limitée au projet fournie par LogBrew. N’utilisez pas les informations de connexion du compte comme configuration SDK.Traçage des requêtes Node.js
Pour corréler les signaux avec une trace qui démarre à la requête, utilisez@logbrew/sdk 0.1.16 ou une version plus récente et @logbrew/node 0.1.11
ou une version plus récente.
Express nécessite @logbrew/express 0.1.5 ou une version plus récente.
Fastify et NestJS nécessitent leur paquet LogBrew en version 0.1.6 ou plus
récente.
Ces intégrations créent ou poursuivent un span de requête. Le nom du span
utilise le modèle de route correspondant. Les logs, problèmes, actions et
métriques émis pendant la requête héritent de son contexte de trace et de
span. Un paquet plus récent n’ajoute pas de contexte aux signaux envoyés
avant la mise à jour.
Par défaut, l’intégration des requêtes ne capture ni les corps de requête ou
de réponse, ni les chaînes de requête, ni les en-têtes arbitraires, ni les
valeurs traceparent brutes.
ASP.NET Core
La CLI v0.1.55 ou plus récente détecte les projets .NET 10 qui utilisentMicrosoft.NET.Sdk.Web. Prévisualisez le plan de configuration depuis la
racine du projet. Cette commande ne modifie pas vos fichiers :
LOGBREW_SERVER_API_KEY, LOGBREW_SERVICE_NAME,
LOGBREW_ENVIRONMENT et LOGBREW_RELEASE hors du dépôt de code. Enregistrez
LogBrew auprès de l’hôte et placez son middleware après le routage :
LOGBREW_SERVER_API_KEY, les deux appels d’enregistrement ne font rien
et restent sans risque. Le
paquet NuGet ASP.NET Core
identifie l’intégration d’hôte publiée. Son guide public couvre le cycle de
vie de l’hôte, la capture des requêtes, la capture des problèmes, les limites
de confidentialité et la reprise après erreur.
Java avec Maven ou Gradle
La CLI v0.1.54 ou plus récente détectepom.xml, build.gradle et
build.gradle.kts. Prévisualisez le plan de configuration depuis la racine du
projet. Cette commande ne modifie pas vos fichiers :
LogBrewClient
géré par l’application. Ce bean active des intégrations facultatives pour les
requêtes, les exceptions, le client HTTP, JDBC et le cache.
La capture Spring Kafka s’active uniquement de façon explicite, avec
logbrew.kafka.enabled=true. Elle utilise la dépendance Spring Kafka et le
bean client déjà présents dans l’application.
L’artefact du SDK Java sur Maven Central
identifie le paquet publié. Son guide public couvre l’envoi HTTP limité,
l’arrêt, la journalisation, la configuration Spring, la corrélation Kafka et
les limites de confidentialité.
C++ avec CMake
Le SDK C++ nécessite C++17 et CMake 3.16 ou une version plus récente. La CLI v0.1.39 ou plus récente détecte unCMakeLists.txt à la racine. Exécutez
logbrew setup --json pour prévisualiser ce plan de configuration sans
modifier vos fichiers :
FetchContent_MakeAvailable et la liaison de cible ci-dessus par :
logbrew-cpp-0.2.3.tar.gz de la
version publiée C++ 0.2.3.
Le paquet extrait prend en charge cmake --install et
find_package(LogBrew 0.2.3 CONFIG REQUIRED). Son guide couvre le contexte
typé, les preuves des problèmes, les événements de span, les métriques, les
actions et l’envoi HTTP.
Source maps JavaScript
Pour les builds Vite, suivez Source maps JavaScript. Ce guide couvre le plugin, la clé d’artefact, les vérifications de l’import et un nouveau problème avec les emplacements du code source d’origine.Apple, Flask et React Native
Utilisez le produit SwiftLogBrew pour la télémétrie. Ajoutez LogBrewCrash
uniquement pour capturer les plantages ou blocages Apple. Pour l’import des
dSYM et la symbolisation hébergée, suivez
Plantages et blocages Apple.
Pour Flask, suivez le guide Flask.
Pour React Native et Expo, suivez React Native. Ce
guide couvre la clé du projet, un log de test sans risque, les erreurs
d’envoi et la configuration Expo Metro pour les source maps de production.
Traçage des files de messages en JavaScript
Les intégrations de files de messages pour Node sont des paquets npm distincts. Installez les paquets JavaScript de base de LogBrew, le paquet d’intégration et le client de file de messages ou de broker que votre application utilise déjà.
Utilisez ces paquets pour une corrélation de traces explicite, gérée par
l’application, autour des appels de file de messages que vous choisissez. Par
défaut, LogBrew ne gère pas votre connexion au broker, ne crée pas de files
de messages et ne modifie pas globalement chaque client.
Enveloppe native directe
UtilisezPOST /api/telemetry/ingest uniquement pour un client personnalisé
qu’aucun SDK LogBrew public ne prend en charge. Les SDK publics utilisent leur
propre format de lot. Ce point de terminaison n’accepte pas ce format.
Envoyez de 1 à 512 éléments dans une enveloppe native. Tous les éléments d’une
enveloppe partagent le projet, le service, la version, l’environnement et le
contexte de trace facultatif.
Champs des éléments
Chaque élément a untype et un objet data. Un élément de log utilise
level. Un élément de problème utilise severity. Les deux acceptent les valeurs
décrites dans Valeurs de gravité.
Envoyez un
id avec chaque élément si votre client peut réessayer. Quand une
nouvelle tentative renvoie un élément déjà accepté avec le même id et le
même contenu, LogBrew ne le stocke pas une deuxième fois. La réponse compte
cet élément dans already_accepted.
Exemple de requête
Enregistrez le JSON ci-dessous sous le nomtelemetry-envelope.json.
Remplacez l’ID de projet d’exemple par l’ID exact du projet de votre clé
d’ingestion. Réglez les horodatages sur l’heure UTC actuelle du signal de
test. Utilisez vos propres valeurs de service et de version.
telemetry-envelope.json
LOGBREW_INGEST_BEARER depuis
votre configuration protégée. Ne l’affichez pas et n’utilisez pas
d’identifiant de compte. La commande suivante envoie le fichier une fois. Elle
nécessite curl 7.76.0 ou une version plus récente :
--fail-with-body conserve le
corps d’une erreur et renvoie un code de sortie non nul pour les erreurs HTTP.
Une panne réseau ou un délai dépassé ne vous indique pas si LogBrew a accepté
la requête. Renvoyez le même fichier uniquement si ses éléments ont des
valeurs id. Sans valeurs id, un second envoi peut stocker les éléments
deux fois.
Réponse
Une requête réussie renvoie200 avec le nombre de nouveaux éléments par
flux. already_accepted compte les éléments qu’une requête précédente a déjà
envoyés.
Erreurs
Une clé d’ingestion invalide ou révoquée renvoie401. Une clé d’un autre
projet renvoie aussi 401 :
422 avec le code
validation_failed. Le champ error nomme la règle. Le champ next indique
comment corriger la requête. Par exemple, "items": [] renvoie :
422 avec l’erreur
native telemetry envelope exceeds the item limit. Découpez-la en lots de
512 éléments au maximum. Gardez le projet et le contexte partagé dans chaque
lot.
Pour les limites d’utilisation, les limites de débit et les pannes de
service, suivez le code renvoyé dans
Erreurs de l’API.
