Un événement de log laisse derrière lui un attribut d'horodatage, qui vous indique le moment exact où un certain événement s'est produit. Les horaires sont essentiels pour commander un événement car ils vous permettent de rechercher dans le log des périodes spécifiques, vous permettant de découvrir quoi et quand un événement s'est produit.
Les horodatages ont de nombreux formats sans norme unique. Ils apparaissent au début de l'événement de log dans la plupart des cas, mais peuvent parfois apparaître beaucoup plus tard dans le log, voire pas du tout.
- Si un log est envoyé avec un attribut
timestamp
, ou si un attributtimestamp
est analysé à partir de celui-ci, New Relic utilise cet horodatage pour le log. - Si un log JSON est envoyé avec un champ
timestamp
, New Relic utilise cet horaire lors de l'extraction des champs JSON en tant qu'attribut, et il a la priorité sur tout attributtimestamp
existant. - Si
timestamp
n'est pas envoyé, New Relic utilise l'heure d'ingestion du log comme horodatage.
La plupart des redirecteurs de logtransmettent les informations d'horaire à partir de la source log , vous n'aurez donc peut-être pas besoin de spécifier l'horaire vous-même.
Important
Certains redirecteurs de logutilisent des champs d'horaire internes, tels que@timestamp
et @realtime_timestamp
. New Relic reconnaît ces champs, mais ils ne doivent pas être utilisés par les clients. Pour envoyer l'horaire log , veuillez utiliser l'attribut timestamp
.
Format d'horodatage du log pris en charge
Il existe deux options permettant de remplacer manuellement le comportement par défaut afin d'attribuer la valeur timestamp
contenue dans le log.
- Si nous recevons un logau format JSON contenant un attribut
timestamp
dans l’un de nos formats d’heure pris en charge, l’horaire d’ingestion sera remplacé. Au lieu de cela, la valeur d’horodatage de l’attribut JSON sera utilisée. - Vous pouvez utiliser des règles d’analyse pour remplacer la valeur d’ingestion
timestamp
. Les règles d'analyse vous permettent d'extraire des données pour formater votre horodatage avec l'un de nos formats pris en charge. Vous pouvez également utiliser le type Grokdatetime
et unpattern
pour définir le format d'horodatage personnalisé dans votre log.
Nous prenons en charge deux formats d'horodatage :
Horodatage pris en charge dans le log JSON
Si nous recevons un log au format JSON avec un attribut timestamp
, nous remplaçons la valeur d'ingestion par défaut timestamp
par la valeur JSON d'origine. S'il n'y a pas de champ d'horaire ou si le champ est mal formaté, le log sera stocké avec l'horaire d'ingestion. Gardez à l'esprit que les frais dont l'horodatage est supérieur à 48 heures sont abandonnés.
Les horodatages sont convertis en millisecondes d'époque Unix et stockés en interne sous forme de type de données long, avec le mot-clé réservé timestamp
. Selon le format du corps JSON, le champ d'horodatage peut être alloué à quatre emplacements différents :
- À l'intérieur de l' ensemble simplifié d'attributs du message du corps JSON lors de l'envoi d'un seul objet JSON.
- À l'intérieur de l'objet commun dans l'ensemble détaillé d'attributs du message du corps JSON lors de l'envoi d'un ou plusieurs objets JSON. L'horodatage s'applique à tous les messages du log de ce JSON.
- À l'intérieur de chaque message, log l'objet log dans l'ensemble détaillé des attributs du corps du message JSON lors de l'envoi d'un ou plusieurs objets JSON. L'horodatage s'applique uniquement à ce message de log.
- À l’intérieur du champ JSON « message » lorsqu’il s’agit d’un message JSON valide. Nos capacités analyseront n’importe quel attribut de message au format JSON. L'attribut JSON résultant dans le message analysé sera ajouté au log.
Voici quelques exemples de logs JSON avec un attribut timestamp
valide qui remplace l'ingestion timestamp
:
Définir l'horaire log avec des règles d'analyse
Vous pouvez utiliser des règles d'analyse lors de l'ingestion pour remplacer l'ingestion timestamp
par la valeur contenue dans le log. analyser les règles extraire nos formats d'heure pris en charge avec des expressions Grok simples, ou en utilisant le type Grok datetime
et pattern
pour définir le format d'horodatage personnalisé dans votre log.
Le nom de l'attribut extrait par l'expression doit être timestamp
et son type de données doit être chaîne ou long. Si le type de données n'est pas fourni, l'horodatage par défaut est une chaîne. Pour un horodatage d'époque avec une précision de l'ordre de la microseconde ou de la nanoseconde, vous devez inclure le type de données long
même si la précision de l'horodatage est réduite à quelques millisecondes.
Si l'horodatage de votre log est un horodatage au format Unix ou ISO8601, vous pouvez utiliser les modèles Grok par défaut pour les faire correspondre. Par exemple:
- Pour extraire un horodatage d'époque Unix, vous pouvez utiliser n'importe quelle expression correspondant à la valeur, comme
NUMBER
,NOTSPACE
,DATA
ouGREEDYDATA
. - Pour extraire un horodatage au format ISO8601, vous devez utiliser l'expression Grok
TIMESTAMP_ISO8601
.
Vous pouvez utiliser le type Grok datetime
pour analyser l'horodatage dans des formats non pris en charge. Pour ce faire, vous devez inclure le type Grok datetime
avec le pattern
correspondant à votre format d'horodatage du log. Le pattern
doit utiliser les modèles de date et d'heure simples Java trouvés ici. Vous trouverez ci-dessous des exemples qui montrent comment les expressions Grok transforment les formats d’horodatage non pris en charge en formats pris en charge :
|
| Expression de Grok |
---|---|---|
17/11/2023 23:55:25.674 | MM/jj/aaaa HH:mm:ss.SSS |
|
17/11/2023 23:55:25 | MM-jj-aaaa HH:mm:ss |
|
17/11/2023 09:55:25 | MM/jj/aaaa h:mm:ss a |
|
Vous trouverez ci-dessous quelques exemples sur la façon d'analyser le timestamp
de votre log à l'aide de règles d'analyse d'ingestion :