Um evento de log deixa um atributo timestamp , que informa o momento exato em que determinado evento aconteceu. timestamp são essenciais para solicitar eventos, pois permitem pesquisar no log períodos de tempo específicos, permitindo descobrir o que e quando um evento aconteceu.
Timestamp tem muitos formatos sem um único padrão. Eles aparecem no início do evento de log na maioria dos casos, mas às vezes podem aparecer muito mais tarde no log ou nem aparecer.
- Por padrão, o New Relic atribui o valor do atributo de log
timestamp
(uma palavra-chave reservada) no momento exato em que o log é ingerido. Isso é conhecido como tempo de ingestão. - Quando o log não possui um atributo
timestamp
, New Relic atribui um timestamp no momento da ingestão. - Log em formato JSON contém algum atributo que identifica o timestamp, como
timestamp
,log_timestamp
,time
, etc. - Se recebermos o log JSON com um formato timestamp compatível, substituiremos nosso timestamp ingestão pelo atributo JSON.
Formato de registro de timestamp compatível
Há duas opções para substituir manualmente o comportamento padrão para atribuir o valor timestamp
contido no log.
- Se recebermos um logformatado em JSON contendo um atributo
timestamp
em um dos nossos formatos de hora suportados, o timestamp de ingestão será substituído. Em vez disso, será usado o valor do timestamp do atributo JSON. - Você pode usar regras de análise para substituir o valor
timestamp
de ingestão. As regras de análise permitem extrair dados para formatar seu timestamp com um de nossos formatos suportados. Você também pode usar o tipodatetime
Grok e umpattern
para definir o formato timestamp personalizado em seu log.
Oferecemos suporte a dois formatos timestamp :
Carimbo de data/hora compatível no log JSON
Se recebermos um log formatado em JSON com um atributo timestamp
, substituiremos o valor de ingestão padrão timestamp
pelo valor JSON original. Se não houver campo timestamp ou se o campo estiver formatado incorretamente, o log será armazenado com o timestamp de ingestão . Lembre-se de que uma carga com carimbo de data/hora superior a 48 horas será descartada.
Timestamp são convertidos em milissegundos de época Unix e armazenados internamente como um tipo de dados longo, com a palavra-chave reservada timestamp
. Dependendo do formato do corpo JSON, o campo timestamp pode ser alocado em quatro locais diferentes:
Dentro do conjunto simplificado de atributos do corpo JSON da mensagem ao enviar um único objeto JSON.
Dentro do objeto comum no conjunto detalhado de atributos do corpo JSON da mensagem ao enviar um ou mais objetos JSON. O timestamp se aplica a todas as mensagens do log deste JSON.
Dentro de cada mensagem faça log no objeto log no conjunto detalhado de atributos do corpo JSON da mensagem ao enviar um ou mais objetos JSON. O carimbo de data e hora aplica-se apenas a essa mensagem do log.
Dentro do campo JSON “mensagem” quando for uma mensagem JSON válida. Nossos recursos
analisarão qualquer atributo de mensagem como JSON. O atributo JSON resultante na mensagem analisada será adicionado ao log.
Aqui estão alguns exemplos de log JSON com um atributo timestamp
válido que substitui a ingestão timestamp
:
Definir log timestamp com regras de análise
Você pode usar regras de análise na ingestão para substituir a ingestão timestamp
pelo valor contido no log. As regras de análise extraem nossos formatos de hora suportados com expressões Grok simples ou usando o tipo Grok datetime
e pattern
para definir o formato timestamp personalizado em seu log.
O nome do atributo extraído pela expressão deve ser timestamp
e seu tipo de dados deve ser string ou longo. Se o tipo de dados não for fornecido, o timestamp será padronizado como string. Para carimbo de data/hora de época com precisão de microssegundos ou nanossegundos, você deve incluir o tipo de dados long
mesmo que a precisão timestamp diminua para milissegundos.
Se o timestamp em seu log for uma época Unix ou timestamp formatado em ISO8601, você poderá usar os padrões Grok padrão para combiná-los. Por exemplo:
- Para extrair um carimbo de timestamp da época Unix, você pode usar qualquer expressão que corresponda ao valor, como
NUMBER
,NOTSPACE
,DATA
ouGREEDYDATA
. - Para extrair um timestamp formatado em ISO8601, você deve usar a expressão
TIMESTAMP_ISO8601
Grok.
Você pode usar o tipo datetime
Grok para analisar o carimbo de data/hora em formatos não suportados. Para fazer isso, você deve incluir o tipo Grok datetime
com o pattern
correspondente ao formato de timestamp do seu log. O pattern
deve usar os padrões simples de data e hora Java encontrados aqui. Abaixo estão exemplos que mostram como as expressões Grok transformam formatos timestamp não suportados em formatos suportados:
|
| Expressão Grok |
---|---|---|
17/11/2023 23:55:25.674 | MM/dd/aaaa HH:mm:ss.SSS |
|
17/11/2023 23:55:25 | MM-dd-aaaa HH:mm:ss |
|
17/11/2023 09:55:25 | MM/dd/aaaa h:mm:ss a |
|
Abaixo estão alguns exemplos de como analisar timestamp
do seu registro usando regras de análise de ingestão: