Criamos o NRQL para consultar dados de telemetria, e toda consulta feita com NRQL considera apenas dados de telemetria que estão dentro de um intervalo de tempo especificado. Se uma solicitação de consulta não especificar um intervalo de tempo, o padrão será relatar a última hora dos dados de telemetria por padrão. Felizmente, temos várias maneiras de definir intervalos de tempo para sua consulta, para que você possa obter exatamente os dados necessários em intervalos de tempo precisos.
Especifique um intervalo de tempo
Você pode usar dois métodos para especificar o intervalo de tempo em sua consulta:
Use o seletor de hora do painel. Ao visualizar um dashboard, o intervalo do seletor de hora substitui as cláusulas SINCE e UNTIL de uma consulta, a menos que você tenha configurado o widget dashboard para desativar o seletor de hora.
Consulte a seção Especificando uma hora abaixo para obter uma lista de formatos de hora suportados.
Usar ajuste de intervalo de tempo
Às vezes, você pode ajustar os tempos SINCE e UNTIL especificados, dependendo do tipo de consulta executada com ajuste de intervalo métrico ou TIMESERIES .
Ajuste de consulta métrica
consulta com evento de métrica e alguns tipos de eventos de amostra podem precisar ajustar o intervalo de tempo com base nas agregações de tempo de roll-up da métrica. Por exemplo:
FROM Metric SELECTsum(foo.count) SINCE '2023-12-20T00:04Z' UNTIL '2023-12-22T00:03Z'
Observando a resposta JSON a esta consulta, esse intervalo de tempo de 47 horas e 59 minutos é resolvido para agregações de tempo métrica de 5 minutos, de modo que o intervalo de tempo real se ajusta aos limites de agregação próximos: "beginTime": "2023-12-20T00:00:00Z", "endTime": "2023-12-22T00:00:00Z".
TIMESERIES ajuste de consulta
Consulta com TIMESERIES pode precisar ajustar o intervalo de tempo para que os resultados não incluam um intervalo de série temporal parcial. Por exemplo:
FROM Foo SELECTcount(*) TIMESERIES 5 minutes SINCE '2023-12-20T00:04:59Z' UNTIL '2023-12-21T00:03:12Z'
Observando a resposta JSON a esta consulta, os intervalos de série temporal se baseiam no final do intervalo de tempo e o horário de início é ajustado para que o primeiro intervalo na resposta cubra cinco minutos completos: "beginTime": "2023-12-20T00:08:12Z", "endTime": "2023-12-21T00:03:12Z".
Especifique um horário com SINCE e UNTIL
Você tem algumas maneiras de especificar o tempo nas cláusulas SINCE e até UNTIL .
Dica
Para cada uma das opções listadas abaixo, o fuso horário padrão é UTC. Observe que o fuso horário preferido do usuário não é usado para execução de consulta: a preferência de fuso horário do usuário exibe apenas valores DateTime.
Se quiser especificar um fuso horário diferente do UTC para o intervalo de tempo, você poderá incluí-lo na opção de string DateTime ou usar a cláusula WITH TIMEZONE do NRQL.
Tempo Unix (época milissegundos)
O tempo pode ser referenciado como tempo Unix em milissegundos. Este é o número de milissegundos desde 1970-01-01T00:00:00Z ou meia-noite de 1º de janeiro de 1970. Por exemplo:
FROM Foo SELECT* SINCE 1702899296789 UNTIL 1702902896789
Esses valores timestamp são resolvidos para um intervalo de tempo começando em 2023-12-18T11:34:56.789Z e terminando em 2023-12-18T12:34:56.789Z.
Relative time (n [time units] ago)
O tempo relativo pode ser referenciado como n [time units] ago com os seguintes componentes:
n: Um valor inteiro positivo.
[time units]: as unidades de tempo disponíveis incluem milliseconds, seconds, minutes, hours, days, weeks, months (definido como 30 dias), quarters (definido como 91 dias) ou years (definido como 365 dias). A pluralização da unidade de tempo é opcional, portanto você pode deixar o “s” fora do final da unidade. 2 day ago e 2 days ago têm o mesmo significado.
A hora é relativa à hora em que você executa a consulta. Por exemplo, suponha que você executou uma consulta em 2023-12-18T12:34:56.789Z. Você obteria resultados diferentes dependendo do valor de tempo relativo usado:
Referência de tempo relativo
Hora resolvida (UTC)
NOW (tempo de execução da consulta)
2023-12-18T12:34:56.789Z
2 milliseconds ago
2023-12-18T12:34:54..787Z
2 seconds ago
18/12/2023T12:34:54 0,789Z
2 minutes ago
18/12/2023T12:32:56.789Z
2 hours ago
18/12/202310:34:56.789Z
2 days ago
2023-12-16T12:34:56.789Z
2 weeks ago
2023-12-04T12:34:56.789Z
2 months ago
2023-10-19T12:34:56.789Z
2 quarters ago
2023-06-19T12:34:56.789Z
2 years ago
2021-12-18T12:34:56.789Z
Tempo temporal relativo
Você também pode usar o tempo relativo usando referências de tempo temporal. Essas referências de tempo relativo são resolvidas no início do intervalo de tempo temporal. Uma referência de tempo temporal relativo respeitará uma cláusula WITH TIMEZONE . Selecione um recolhido abaixo para ver mais informações sobre referências de tempo temporal específicas:
Você pode fazer referência a dias específicos, incluindo today, yesterday ou um dia da semana. Será utilizada a ocorrência mais recente de um dia da semana de referência.
today - resolve meia-noite desta manhã
yesterday - resolve para meia-noite de ontem
monday - resolve para meia-noite da manhã de segunda-feira mais recente
tuesday - resolve para meia-noite da manhã de terça-feira mais recente
wednesday - resolve para meia-noite da manhã de quarta-feira mais recente
thursday - resolve para meia-noite da manhã de quinta-feira mais recente
friday - resolve para meia-noite da manhã de sexta-feira mais recente
saturday - resolve para meia-noite da manhã de sábado mais recente
sunday - resolve para meia-noite da manhã de domingo mais recente
Ao fazer referência a um dia relativo, você pode especificar a hora do dia, substituindo o horário padrão da meia-noite. Por exemplo: yesterday AT '01:23:45'.
A referência de tempo deve incluir a hora e o minuto e, opcionalmente, o segundo. A cláusula AT time não oferece suporte à inclusão de milissegundos ou referências de fuso horário na sequência de horário.
Dica
Observe que today AT [time] em uma cláusula SINCE nunca fará referência a um horário no futuro. Se você fizer referência a um horário no futuro, o significado de today será ajustado ao dia anterior. Portanto, se for 12h e você usar a cláusula SINCE como SINCE today AT 12:01, o horário de início da consulta resolvida será definido como ontem às 12h01.
Você pode fazer referência à unidade de tempo atual ("esta") ou concluída mais recentemente ("última").
this hour - O início da hora atual (0 minutos e 0 segundos).
this week - O início da semana atual. Isso se refere a uma semana útil, portanto this week é calculado para a manhã de segunda-feira mais recente à meia-noite.
this month - O início do mês atual. Refere-se à meia-noite do primeiro dia do mês atual.
this quarter - O início do trimestre atual. Refere-se à meia-noite do primeiro dia do trimestre atual. Os trimestres começam no primeiro dos meses de janeiro, abril, julho e outubro.
this year - O início do ano em curso. Refere-se à meia-noite do primeiro dia (1º de janeiro) do ano em curso.
last hour - O início da hora anterior.
last week - O início da semana anterior.
last month - O início do mês anterior.
last quarter - O início do trimestre anterior.
last year - O início do ano anterior.
Nestes exemplos, suponha que a consulta foi executada às 2023-12-18T12:34:56.789Z (segunda-feira).
Referência de tempo temporal relativo
Tempo resolvido (em relação a 2023-12-18T12:34:56.789Z)
NOW
(tempo de execução da consulta)
2023-12-18T12:34:56.789Z
today
2023-12-18T00:00:00.000Z
today at '01:23:45'
2023-12-18T01:23:45.000Z
today at '23:45' (após o tempo de execução)
2023-12-17T23:45:00.000Z
yesterday
2023-12-17T00:00:00.000Z
yesterday at '01:23:45'
2023-12-17T01:23:45.000Z
monday
2023-12-18T00:00:00.000Z
monday at '01:23:45'
2023-12-18T01:23:45.000Z
tuesday
2023-12-12T00:00:00.000Z
tuesday at '01:23:45'
2023-12-12T01:23:45.000Z
wednesday
2023-12-13T00:00:00.000Z
wednesday at '01:23:45'
2023-12-13T01:23:45.000Z
thursday
2023-12-14T00:00:00.000Z
thursday at '01:23:45'
2023-12-14T01:23:45.000Z
friday
2023-12-15T00:00:00.000Z
friday at '01:23:45'
2023-12-15T01:23:45.000Z
saturday
2023-12-16T00:00:00.000Z
saturday at '01:23:45'
2023-12-16T01:23:45.000Z
sunday
2023-12-17T00:00:00.000Z
sunday at '01:23:45'
2023-12-17T01:23:45.000Z
this hour
2023-12-18T12:00:00.000Z
last hour
2023-12-18T11:00:00.000Z
this week
2023-12-18T00:00:00.000Z
last week
2023-12-11T00:00:00.000Z
this month
2023-12-01T00:00:00.000Z
last month
2023-11-01T00:00:00.000Z
this quarter
2023-10-01T00:00:00.000Z
last quarter
2023-07-01T00:00:00.000Z
this year
2023-01-01T00:00:00.000Z
last year
2022-01-01T00:00:00.000Z
Use uma string DateTime
Você pode especificar um intervalo de tempo usando uma string DateTime. O analisador geralmente suporta o formato DateTime ISO 8601: '2023-12-18T12:34:56.789-06:00'. Porém, o analisador DateTime também pode reconhecer variantes do formato padrão ISO, como '2023-12-18 12:34'. O analisador também oferece suporte a strings somente de data ('2023-12-18') e somente de hora ('12:34:56'). Temos as opções e exemplos para usar uma string DateTime abaixo:
Campo
Detalhes
Estrutura geral
[Date][TimeSeparator][Time][TimeZone][AM/PM]
Data
Ano mês dia
Year - (obrigatório) valor do ano com 4 dígitos.
Month - (obrigatório) valor do mês com 2 dígitos.
Day - (opcional) valor do dia com 2 dígitos.
Uma string DateTime pode incluir um Date sem uma hora, com o valor de hora padronizado como meia-noite no início da data especificada. Os traços entre os elementos de data são opcionais (mas recomendados), portanto '20231218' é equivalente a '2023-12-18'.
Separador de tempo
Separa a data e a hora em uma string DateTime completa. Os valores de separação válidos são a letra maiúscula T ou um único espaço.
Tempo
Hour:Minute[[:Second].FractionalSecond]
Hour - (obrigatório) valor de hora com 1 ou 2 dígitos, 00-23. Recomenda-se 2 dígitos, de acordo com a especificação ISO 8601.
Minute - (obrigatório) valor de minuto de 2 dígitos, 00-59.
:Second - (opcional) valor de segundos de 2 dígitos, 00-59.
[.FractionalSecond] - (opcional) valor de segundo fracionário (milissegundos) de 1 a 3 dígitos, 000-999. Disponível somente quando um valor :Second é incluído.
Uma string DateTime pode incluir uma hora sem data, com o valor de data padronizado para o dia atual. Quando um horário é fornecido sem uma data na cláusula SINCE , se o horário estiver no futuro, o dia anterior será usado como data.
Quando um Time segue um T, os dois pontos são opcionais (mas recomendados). Se os dois pontos forem excluídos, a Hora deverá incluir 2 dígitos e AM/PM não será permitido. Então, '20231218T123456.789' é equivalente a '2023-12-18T12:34:56.789'.
Fuso horário
Opcional - Se TimeZone não estiver incluído em uma string DateTime, o fuso horário indicado na cláusula WITH TIMEZONE da consulta será usado, se estiver presente, caso contrário, o fuso horário UTC será usado.
O valor TimeZone pode opcionalmente ser precedido por um espaço. Pode ser indicado em vários formatos.
Offset - Indica as horas e minutos do fuso horário em relação ao UTC.
(+|-)Hours[:]Minutes - ou seja Mais ou menos, horas de 2 dígitos, dois pontos opcionais e, finalmente, minutos de 2 dígitos. A letra Z também é suportada, representando UTC ou um deslocamento de zero.
Exemplos: -0600, Z, +0530, +05:30
ID de zona entre colchetes - Um ID de zona é um nome textual de um fuso horário. A maioria dos IDs de zona (mas não todos) consiste em uma região seguida por uma barra e depois por uma sub-região. Uma vantagem de usar um ID de zona baseado em região é que o analisador DateTime se ajustará automaticamente às regras de horário de verão da zona.
Observe que os IDs de zona não funcionam ao usar AM/PM.
AM/PM
AM ou PM pode ser adicionado ao final de uma string DateTime. Se presente, o valor Hour será interpretado como um valor de 12 horas em vez de um valor de 24 horas, com um intervalo de 01 a 12 em vez de 00 a 23.
Observe que AM/PM não é compatível com o formato de ID de zona TimeZone .
Referência de tempo temporal relativo
Tempo resolvido (em relação a 2023-12-18T14:27:32.189Z)
Os IDs de zona a seguir são válidos para a cláusula WITH TIMEZONE ou como uma referência de fuso horário entre colchetes em uma string de data e hora (por exemplo, '2023-12-18T12:34 [America/Los_Angeles]').