뉴렐릭은 텔레메트리 데이터를 쿼리할 수 있도록 NRQL을 설계했으며, NRQL로 작성된 모든 쿼리는 정해진 시간 범위 내에 속하는 텔레메트리 데이터만 고려합니다. 쿼리 요청에 대한 시간 범위가 지정되지 않으면 기본적으로 텔레메트리 데이터의 마지막 시간이 보고됩니다. 쿼리에 대한 시간 범위를 여러 방법으로 설정하여 특정 시간 버킷에서 필요한 데이터를 정확히 얻을 수 있습니다.
시간 범위 지정
두 가지 방법을 사용해 쿼리에서 시간 범위를 지정할 수 있습니다.
대시보드 타임피커를 이용해 보세요. 대시보드를 볼 때 타임 피커를 비활성화하도록 대시보드 위젯을 구성하지 않은 한 타임 피커의 범위는 쿼리의 SINCE 및 UNTIL 절을 대체합니다.
필요한 경우, 메트릭이나 TIMESERIES 범위 스내핑을 사용해 실행하는 쿼리 유형에 따라 정해진 SINCE와 UNTIL의 시간을 조정할 수 있습니다.
메트릭 쿼리 스내핑
메트릭 이벤트 및 일부 샘플 이벤트 유형이 포함된 쿼리는 메트릭의 롤업 시간 집계를 기반으로 시간 범위를 조정해야 하는 경우가 있습니다. 예:
FROM Metric SELECTsum(foo.count) SINCE '2023-12-20T00:04Z' UNTIL '2023-12-22T00:03Z'
이 쿼리에 대한 JSON 응답을 보면 이 47시간 59분 시간 범위는 5분 메트릭 시간 집계로 확인되므로 실제 시간 범위는 가까운 집계 경계인 "beginTime": "2023-12-20T00:00:00Z", "endTime": "2023-12-22T00:00:00Z"에 맞춰집니다.
TIMESERIES 쿼리 스내핑
TIMESERIES 이 포함된 쿼리는 결과에 부분 시계열 버킷이 포함되지 않도록 시간 범위를 조정해야 할 수도 있습니다. 예를 들어:
FROM Foo SELECTcount(*) TIMESERIES 5 minutes SINCE '2023-12-20T00:04:59Z' UNTIL '2023-12-21T00:03:12Z'
이 쿼리에 대한 JSON 응답을 보면 시계열 버킷은 시간 범위의 끝을 기준으로 하며 응답의 첫 번째 버킷이 전체 5분을 포함하도록 시작 시간이 조정됩니다. "beginTime": "2023-12-20T00:08:12Z", "endTime": "2023-12-21T00:03:12Z".
SINCE 및 UNTIL을 사용한 시간 지정
SINCE 및 UNTIL 절에서 시간을 지정하는 몇 가지 방법이 있습니다.
팁
아래 각 옵션의 기본 시간대는 UTC입니다. 사용자가 선호하는 시간대는 쿼리 실행에 사용되지 않습니다. 사용자가 선호하는 시간대는 DateTime 값만 표시합니다.
시간 범위에 대해 UTC 이외의 시간대를 지정하려면 DateTime 문자열 옵션에 포함하거나 NRQL의 WITH TIMEZONE 절을 사용할 수 있습니다.
Unix 시간(에포크 밀리초)
시간은 밀리초 단위의 Unix 시간으로 참조될 수 있습니다. 이는 1970-01-01T00:00:00Z 또는 1970년 1월 1일 자정 이후의 밀리초 수입니다. 예:
FROM Foo SELECT* SINCE 1702899296789 UNTIL 1702902896789
이러한 타임스탬프 값은 2023-12-18T11:34:56.789Z에서 시작하여 2023-12-18T12:34:56.789Z로 끝나는 시간 범위입니다.
상대 시간(n [time units] ago)
상대 시간은 다음 구성 요소에서 n [time units] ago로 참조될 수 있습니다.
n: 양의 정수 값입니다.
[time units]: 사용 가능한 시간 단위에는 milliseconds, seconds, minutes, hours, days, weeks, months (30일로 정의됨), quarters (91일로 정의됨) 또는 years (365일로 정의됨). 시간 단위 복수화는 선택 사항이므로 단위 끝에 "s"를 남겨 둘 수 있습니다. 2 day ago 와 2 days ago 은 같은 의미를 갖습니다.
시간은 쿼리를 실행한 시간을 기준으로 합니다. 예를 들어, 2023-12-18T12:34:56.789Z에서 쿼리를 실행했다고 가정합니다. 사용한 상대 시간 값에 따라 다른 결과를 얻을 수 있습니다.
상대 시간 참조
해결 시간(UTC)
NOW (쿼리 실행 시간)
2023-12-18T12:34:56.789Z
2 milliseconds ago
2023-12-18T12:34:54..787Z
2 seconds ago
2023-12-18T12:34:54.789Z
2 minutes ago
2023-12-18T12:32:56.789Z
2 hours ago
2023-12-18T10: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
상대적 시간
시간적 시간 참조를 사용하여 상대 시간을 사용할 수도 있습니다. 이러한 상대 시간 참조는 시간적 시간 간격의 시작으로 확인됩니다. 상대 시간 참조는 WITH TIMEZONE 절을 따릅니다. 특정 시간 참조에 대한 자세한 내용을 보려면 아래 축소기를 선택하세요.
today, yesterday 또는 weekday를 포함한 특정 요일을 참조할 수 있습니다. 가장 최근에 발생한 참조 요일이 사용됩니다.
today - 오늘 아침 자정
yesterday -어제 아침 자정
monday - 가장 최근 월요일 아침 자정
tuesday - 가장 최근 화요일 아침 자정
wednesday - 가장 최근 수요일 아침 자정
thursday - 가장 최근 목요일 아침 자정
friday - 가장 최근 금요일 아침 자정
saturday - 가장 최근 토요일 아침 자정
sunday - 가장 최근 일요일 아침 자정
상대 요일을 참조할 때 기본값인 자정 시간을 무시하고 시간을 지정할 수 있습니다. 예: yesterday AT '01:23:45'.
시간 참조에는 시와 분, 선택적으로 초가 포함되어야 합니다. AT 절 시간은 시간 문자열 내에 밀리초 또는 시간대 참조를 포함할 수 없습니다.
팁
SINCE 절의 today AT [time]은 미래의 시간을 참조하지 않습니다. 미래의 시간을 참조하면 today가 전날로 조정됩니다. 따라서 지금이 12:00이고 SINCE 절을 SINCE today AT 12:01로 사용하는 경우 쿼리 시작 시간은 어제 12:01로 설정됩니다.
현재('this') 또는 가장 최근에 완료된('last') 시간 단위를 참조할 수 있습니다.
this hour - 현재 시간의 시작(0분 0초)입니다.
this week - 이번 주의 시작입니다. 이는 영업주를 의미하므로 this week 가장 최근 월요일 아침 자정으로 해석됩니다.
this month - 이번 달의 시작일입니다. 이는 이번 달 1일 자정을 의미합니다.
this quarter - 현재 분기의 시작입니다. 이는 해당 분기의 첫 번째 날 자정을 나타냅니다. 분기는 1월, 4월, 7월, 10월의 첫 번째 달에 시작됩니다.
this year - 올해의 시작입니다. 이는 해당 연도의 첫날(1월 1일) 자정을 의미합니다.
last hour - 이전 시간의 시작입니다.
last week - 이전 주의 시작입니다.
last month - 이전 달의 시작입니다.
last quarter - 이전 분기의 시작입니다.
last year - 이전 연도의 시작입니다.
이 예에서는 쿼리가 2023-12-18T12:34:56.789Z(월요일)에 실행되었다고 가정합니다.
상대적 시간 참조
해결된 시간(2023-12-18T12:34:56.789Z 기준)
NOW
(쿼리 실행 시간)
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' (실행 시간 이후)
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.000지
DateTime 문자열 사용
DateTime 문자열을 사용하여 시간 범위를 지정할 수 있습니다. 파서(구문 분석기)는 일반적으로 ISO 8601 DateTime 포맷( '2023-12-18T12:34:56.789-06:00')을 지원합니다. 그러나 DateTime 파서는 '2023-12-18 12:34' 같은 ISO 표준 포맷의 변형도 인식할 수 있습니다. 파서는 날짜 전용('2023-12-18') 및 시간 전용('12:34:56') 문자열도 지원합니다. 아래는 DateTime 문자열을 사용하는 옵션들과 그 예입니다.
들
세부
전체 구조
[Date][TimeSeparator][Time][TimeZone][AM/PM]
날짜
Year-Month-Day
Year - (필수) 4자리 연도 값입니다.
Month - (필수) 2자리 월 값입니다.
Day - (선택 사항) 2자리 일 값입니다.
DateTime 문자열에는 시간 없이 Date가 포함될 수 있으며 시간 값은 기본적으로 지정된 날짜가 시작되는 자정으로 설정됩니다. 날짜 요소 사이의 대시는 선택 사항이지만(권장됨) '20231218'은 '2023-12-18'과 동일합니다.
시간 구분 기호(TimeSeparator)
전체 DateTime 문자열에서 날짜와 시간을 구분합니다. 유효한 구분 값은 대문자 T 또는 공백 1칸입니다.
시간
Hour:Minute[[:Second].FractionalSecond]
Hour - (필수) 1자리 또는 2자리 시간 값으로 00-23 사이입니다. ISO 8601 사양에 따라 2자리 숫자가 권장됩니다.
Minute - (필수) 2자리 분 값으로 00-59 사이입니다.
:Second - (선택사항) 2자리 초 값으로 00-59 사이입니다.
[.FractionalSecond] - (선택 사항) 1-3자리 소수 초(밀리초) 값으로 000-999 사이입니다. :Second 값이 포함된 경우에만 사용할 수 있습니다.
DateTime 문자열에 날짜 없이 시간이 포함되면 날짜 값은 현재 날짜로 기본 설정됩니다. SINCE 절에 날짜 없이 시간을 지정하면, 시간이 미래인 경우 전날 날짜가 사용됩니다.
Time이 T 뒤에 오는 경우, 콜론은 선택 사항이지만 권장됩니다. 콜론을 제외할 경우 시는 2자리 숫자를 포함해야 하며 AM/PM은 허용되지 않습니다. 따라서 '20231218T123456.789'는 '2023-12-18T12:34:56.789'와 동일합니다.
시간대(TimeZone)
선택 사항 - DateTime 문자열에 TimeZone이 포함되지 않았고 쿼리의 WITH TIMEZONE 절에 표시된 시간대가 있는 경우 그 시간대가 사용되며, 그렇지 않은 경우는 UTC 시간대가 사용됩니다.
선택적으로 TimeZone 값 앞에 공백이 올 수 있습니다. 다양한 형태로 표시될 수 있습니다.
Offset(오프셋) - UTC를 기준으로 시간대의 시간과 분을 나타냅니다.
(+|-)Hours[:]Minutes - 즉 플러스 또는 마이너스, 2자리 시간, 선택적 콜론, 마지막으로 2자리의 분이 옵니다. UTC 또는 0의 오프셋을 나타내는 문자 Z도 지원됩니다.
예: -0600 , Z , +0530 , +05:30
대괄호 안의 Zone ID - Zone ID는 시간대의 텍스트 이름입니다. 전부는 아니지만 대부분의 Zone ID는 지역, 슬래시, 하위 지역 순으로 구성됩니다. 지역 기반 Zone ID를 사용하면 DateTime 파서가 해당 영역의 일광 절약 시간 규칙에 맞게 자동으로 조정된다는 이점이 있습니다.