Des données log complètes peuvent vous aider à résoudre les problèmes. Mais que se passe-t-il si un attribut de votre log contient des milliers de caractères ? Quelle quantité de ces données New Relic peut-il stocker ? Et comment trouver des informations utiles dans toutes ces données ?
Comment fonctionnent les blobs
Pour les valeurs de chaîne longues qui sont plus longues que ce qui peut être stocké dans NRDB (4 094 caractères), nous stockons la longue chaîne en trois parties :
Sections log longues | Description |
---|---|
Les 4 094 premiers caractères | Les 4 094 premiers caractères sont stockés dans un champ d’événement |
Les 128 000 octets UTF-8 suivants | Les 128 000 octets UTF-8 suivants de la chaîne sont stockés dans un champ Le nombre réel de caractères stockés dépend de la représentation UTF-8 des caractères. UTF-8 représente les caractères Unicode sur un à quatre octets, nous stockerons donc entre 32 000 et 128 000 caractères au-delà des 4 094 premiers caractères. |
Caractères restants | Tous les caractères supérieurs à 4 094 caractères plus 128 000 octets sont supprimés et non stockés. |
Résultats de la requête | Les requêtes Blob ont une limite de 20 résultats. Lorsque vous utilisez |
Ainsi, le champ long message
serait stocké comme :
message: <first 4,094 characters as a string>newrelic.ext.message: <next 128,000 bytes as a 'blob'>
Conseil
Vous pouvez rechercher les 4 094 premiers caractères d’un attribut de chaîne. Vous pouvez également créer des alertes pour les 4 094 premiers caractères. Cependant, étant donné que le stockage blob
n'est pas consultable, le texte au-delà des 4 094 premiers caractères n'est pas consultable ni alertable.
Interrogez vos données pour les blobs

one.newrelic.com > All capabilities > Logs:Pour interroger les données blob étendues dans votre log, assurez-vous d'inclure des guillemets inversés dans la syntaxe blob de votre attribut.
Pour interroger des données log dans New Relic, exécutez la requête suivante :
SELECT * FROM Log
Pour développer les données blob, exécutez la requête suivante, en utilisant message
ou tout autre attribut. Assurez-vous d'entourer l'attribut du blob de guillemets inversés. Par exemple:
SELECT message, another-attribute, blob(`newrelic.ext.message`), blob(`newrelic.ext.another-attribute`) FROM Log
Cela développe les données dans le blob afin que vous puissiez les voir (mais pas les rechercher). Par exemple, New Relic renvoie :
{ "message": <first 4,094 characters> "newrelic.ext.message": <the next 128,000 bytes as Base64> "another-attribute": <first 4,094 characters> "newrelic.ext.another-attribute": <the next 128,000 bytes as Base64>}
L'interface utilisateur du log réassemble automatiquement la valeur d'origine lorsque vous consultez la vue détaillée du log. Lorsque vous effectuez une requête à l'aide de NRQL directement, vous devez assembler manuellement les informations en :
- Décoder le Base64 de la valeur de l'attribut
newrelic.ext.
- Conversion de l'UTF-8 résultant en une chaîne
- Ajout de cette chaîne aux 4 094 premiers caractères de l'attribut « main »
rétention des données pour un long log
NRDB conserve vos enregistrements blob pendant un mois. Si vous disposez déjà de longs messages de log stockés sous le nom LogExtendedRecord
, ces données continueront également d'être disponibles pendant un mois dans NRDB.
Une fois le mois écoulé, aucun nouvel attribut LogExtendedRecord
ne sera créé. Ils seront tous stockés dans NRDB sous forme de blobs.