표현식 쿼리 작성 - Amazon Managed Grafana

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

표현식 쿼리 작성

이 설명서 항목은 Grafana 버전 9.x를 지원하는 Grafana 작업 영역을 위해 설계되었습니다.

Grafana 버전 10.x를 지원하는 Grafana 작업 영역에 대한 내용은 을 참조하십시오. Grafana 버전 10에서 작업하기

Grafana 버전 8.x를 지원하는 Grafana 작업 영역에 대한 내용은 을 참조하십시오. Grafana 버전 8에서 작업하기

서버 측 식을 사용하면 쿼리에서 반환된 데이터를 수학 및 기타 연산을 사용하여 조작할 수 있습니다. 표현식은 새 데이터를 만들며 데이터 소스에서 반환된 데이터를 조작하지 않습니다.

표현식에 대한 정보

서버측 식을 사용하면 쿼리에서 반환된 데이터를 수학 및 기타 연산을 사용하여 조작할 수 있습니다. 표현식은 새 데이터를 생성하고 데이터 원본에서 반환된 데이터를 조작하지 않습니다. 단, 표현식에 적합한 데이터 입력이 되도록 데이터를 약간 재구성하는 것은 예외입니다.

표현식 사용

표현식은 주로 Grafana Alerting에서 사용됩니다. 처리는 서버 측에서 수행되므로 브라우저 세션 없이도 표현식이 작동할 수 있습니다. 하지만 표현식은 백엔드 데이터 소스 및 시각화에도 사용할 수 있습니다.

참고

표현식은 기존 대시보드 알림과 함께 사용할 수 없습니다.

표현식은 다양한 데이터 원본의 쿼리를 결합하거나 데이터 원본에서 사용할 수 없는 작업을 제공하여 데이터 소스를 확장하기 위한 것입니다.

참고

가능하면 데이터 원본 내에서 데이터를 처리해야 합니다. 처리를 위해 스토리지에서 Grafana 서버로 데이터를 복사하는 것은 비효율적이므로 표현식은 간단한 데이터 처리를 대상으로 합니다.

표현식은 시계열 또는 숫자 데이터를 반환하는 데이터 소스 쿼리와 함께 작동합니다. 또한 다차원 데이터에서도 작동합니다. 레이블이나 태그로 각 시리즈를 식별하는 여러 시리즈를 반환하는 쿼리를 예로 들 수 있습니다.

개별 표현식은 하나 이상의 쿼리 또는 다른 식을 입력으로 받아 결과에 데이터를 추가합니다. 각 개별 식 또는 쿼리는 ReFID라고 하는 명명된 식별자인 변수 (예: 기본 문자 A 또는B) 로 표시됩니다.

개별 표현식 또는 다른 표현식의 데이터 소스 쿼리 출력을 참조하기 위해 이 식별자를 변수로 사용합니다.

표현식 유형

표현식은 두 가지 유형의 데이터에 사용할 수 있습니다.

  • 시계열 모음입니다.

  • 숫자 모음으로, 각 숫자가 항목입니다.

각 컬렉션은 단일 데이터 소스 쿼리 또는 표현식에서 반환되며 ReFID로 표시됩니다. 각 컬렉션은 집합이며, 집합의 각 항목은 레이블이나 키-값 쌍으로 저장되는 차원으로 고유하게 식별됩니다.

데이터 소스 쿼리

서버측 표현식은 백엔드 데이터 원본에 대한 데이터 원본 쿼리만 지원합니다. 데이터에는 일반적으로 레이블이 지정된 시계열 데이터로 간주됩니다. 향후에는 표현식이 오류를 더 잘 처리할 수 있도록 쿼리 반환 유형 (숫자 또는 시계열) 데이터에 대한 어설션을 추가할 계획입니다.

표현식과 함께 사용되는 데이터 소스 쿼리는 표현식 엔진에서 실행됩니다. 이렇게 하면 데이터를 하나의 시계열 또는 데이터 프레임당 하나의 숫자가 되도록 재구성합니다. 따라서 예를 들어 테이블 보기에서 한 프레임에 여러 시리즈를 반환하는 데이터 원본을 사용하는 경우 식을 사용하여 실행하면 다르게 보일 수 있습니다.

현재 데이터 프레임을 사용할 때 지원되는 유일한 비시계열 형식 (숫자) 은 시간, 문자열 열, 숫자 열 1개가 없는 데이터 프레임을 반환하는 테이블 응답입니다.

Loc Host 평균_CPU

미아

A

1

NYC

B

2

위 예제는 표현식에 사용할 수 있는 숫자를 생성합니다. 문자열 열은 레이블이 되고 숫자 열은 해당 값이 됩니다. 값이 1인 {"Loc": "MIA", "Host": "A"} 경우를 예로 들 수 있습니다.

운영

표현식에는 수학, 축소, 리샘플링 등의 연산을 사용할 수 있습니다.

수학 연산

수학은 시계열 또는 숫자 데이터에 대한 자유 형식 수학 공식에 사용됩니다. 수학 연산은 숫자와 시계열을 입력으로 받아 다른 숫자와 시계열로 변경합니다.

예를 들어 다른 쿼리나 표현식의 데이터는 달러 기호가 접두사로 붙은 ReFID로 참조됩니다. $A 변수 이름에 공백이 있는 경우 와 같은 중괄호 구문을 사용할 수 있습니다. ${my variable}

숫자 상수는 십진수 (2.24), 8진수 (앞에 0과 같이 표시) 또는 16진수 (앞에 0x와 같이 표시072) 일 수 있습니다. 0x2A 지수 및 부호도 지원됩니다 (예:). -0.8e-2

연산자

산술 (+, 이항 및 단항,,, 지수**)-, 관계 (*/,%,,,,,) 및 논리 (,<,,,>,==,!=,,>=,<=) 연산자가 지원됩니다. && || !

데이터에 대한 연산 작동 방식은 데이터가 숫자 데이터인지 시계열 데이터인지에 따라 달라집니다.

또와 같은 $A + $B 이항 연산의 경우 연산자는 데이터 유형에 따라 다음과 같은 방식으로 적용됩니다. $A || $B

  • $A$B 가 모두 숫자인 경우 두 숫자 사이에서 연산이 수행됩니다.

  • 한 변수가 숫자이고 다른 변수가 시계열인 경우 시계열의 각 지점 값과 숫자 사이의 연산이 수행됩니다.

  • $B 가 모두 시계열 데이터인 경우, $A 및 에 있는 각 타임스탬프에 대해 두 시리즈의 각 값 간의 연산이 $A 수행됩니다$B. 이 Resample 연산을 사용하여 타임스탬프를 정렬할 수 있습니다.

요약:

  • 번호 OP 번호 = 숫자

  • 번호: OP 시리즈 = 시리즈

  • 시리즈: OP 시리즈 = 시리즈

표현식은 단일 변수로 표현되는 여러 시리즈 또는 숫자를 사용하기 때문에 이항 연산은 두 변수 간의 합집합 (조인) 도 수행합니다. 이는 각 개별 시리즈 또는 숫자와 관련된 식별 레이블을 기반으로 수행됩니다.

따라서 $A in과 같은 {host=web01} 레이블이 있는 숫자와 레이블이 같은 다른 숫자가 $B 있는 경우 각 변수 내의 두 항목 간에 연산이 수행되고 결과는 동일한 레이블을 공유하게 됩니다. 이 합집합의 동작 규칙은 다음과 같습니다.

  • 레이블이 없는 항목은 모든 항목에 결합됩니다.

  • 둘 다 항목 (시리즈 하나 또는 숫자 하나) 만 포함된 경우 두 $A 항목이 모두 결합됩니다. $B

  • 레이블이 정확히 일치하는 경우 레이블이 결합됩니다.

  • 레이블이 다른 레이블의 하위 집합인 경우 (예: 에 있는 항목에는 $A 레이블이 지정되고 안에 있는 항목에는 레이블이 {host=A,dc=MIA} 지정되어 있음) 두 $B {host=A} 레이블이 결합됩니다.

  • 각 항목에 대해 서로 다른 태그 키가 있는 등의 $A 변수 내에 있는 경우에는 조인 동작이 정의되지 않습니다.

관계 연산자와 논리 연산자는 true인 경우 거짓 1인 경우 0을 반환합니다.

수학 함수

대부분의 함수는 자체 식 연산에 존재하지만 수학 연산자나 기호와 유사한 일부 함수도 있습니다. 함수가 숫자나 시리즈를 취할 수 있는 경우 인수와 동일한 유형이 반환됩니다. 시리즈인 경우 시리즈의 각 점 값에 대해 의 연산이 수행됩니다.

abs

abs는 인수의 절대값을 반환합니다. 인수는 숫자나 수열이 될 수 있습니다. 예를 들면 abs(-1) 또는 abs($A)입니다.

is_inf

is_inf는 숫자 또는 시리즈를 취하여 Inf 값 (음수 또는 양수) 및 기타 값에 1 대해 반환합니다. 0 예를 들어 is_inf($A)입니다.

참고

예를 들어 음의 무한대를 구체적으로 확인해야 하는 경우 다음과 같이 비교할 수 있습니다. $A == infn()

is_nan

is_nan은 숫자 또는 시리즈를 취하여 값과 기타 값에 1 대해 NaN 반환합니다. 0 예를 들어 is_nan($A)입니다. 이 함수는 와 같지 않기 NaN 때문에 존재합니다. NaN

is_null

is_null은 숫자 또는 시리즈를 취하여 값과 기타 값에 1 대해 null 반환합니다. 0 예를 들어 is_null($A)입니다.

is_number

is_number는 숫자 또는 시리즈를 취하여 모든 실수 값과 기타 값 (예:null,Inf+, Inf- 및) 0 에 대해 반환합니다1. NaN 예를 들어 is_number($A)입니다.

로그

로그는 숫자 또는 시리즈일 수 있는 인수의 자연 로그를 반환합니다. 값이 0보다 작으면 반환됩니다. NaN 예를 들면 log(-1) 또는 log($A)입니다.

inf, infn, nan, null

inf, infn, nan 및 null 함수는 모두 이름의 단일 값을 반환합니다. 이들은 주로 테스트용으로 사용됩니다. 예: null().

라운드

Round는 반올림된 정수 값을 반환합니다. 예: round(3.123)또는 round($A).

ceil

Ceil은 숫자를 가장 가까운 정수 값으로 반올림합니다. 예를 들어, ceil(3.123)4를 반환합니다.

바닥

Floor는 숫자를 가장 가까운 정수 값으로 내림합니다. 예를 들어,floor(3.123) 가 반환됩니다3.

리듀스

Reduce는 쿼리 또는 표현식에서 반환된 하나 이상의 시계열을 가져와 각 시리즈를 단일 숫자로 바꿉니다. 시계열 레이블은 출력된 각 축소 숫자에 레이블로 유지됩니다.

필드:

  • 함수 — 사용할 축소 함수

  • 입력 — 리샘플링할 변수 (ReFID (예:A))

  • 모드 — 시리즈에 숫자가 아닌 값 (null, NaN, +-Inf) 이 포함된 경우 축소 함수의 제어 동작을 허용합니다.

리덕션 함수

개수

Count는 각 시리즈의 포인트 수를 반환합니다.

Mean

평균은 각 계열에 있는 모든 값의 합계를 해당 계열의 점 수로 나눈 값을 반환합니다. strict모드에서는 시리즈에 null 또는 nan인 값이 있거나 시리즈가 비어 있는 경우 NaN이 반환됩니다.

최소값 및 최대값

Min과 Max는 각각 시리즈에서 가장 작은 값 또는 가장 큰 값을 반환합니다. strict모드에서는 시리즈에 null 또는 nan인 값이 있거나 시리즈가 비어 있는 경우 NaN이 반환됩니다.

합계

Sum은 시리즈에 있는 모든 값의 합계를 반환합니다. 시리즈의 길이가 0인 경우 합계는 0이 됩니다. strict모드에서는 시리즈에 NaN 또는 Null 값이 있는 경우 NaN이 반환됩니다.

마지막

Last 는 시리즈의 마지막 숫자를 반환합니다. 시리즈에 값이 없으면 NaN을 반환합니다.

리덕션 모드

엄격

엄격 모드에서는 입력 시리즈가 그대로 처리됩니다. 수열에 숫자가 아닌 값 (null, NaN 또는 +-Inf) 이 있는 경우 NaN이 반환됩니다.

숫자가 아닌 항목 삭제

이 모드에서는 입력 시리즈의 숫자가 아닌 모든 값 (null, NaN 또는 +-Inf) 이 감소 함수를 실행하기 전에 필터링됩니다.

숫자가 아닌 숫자 바꾸기

이 모드에서는 숫자가 아닌 모든 값이 사전 정의된 값으로 대체됩니다.

리샘플링

리샘플링은 각 시계열의 타임스탬프를 일정한 시간 간격을 유지하도록 변경합니다. 주요 사용 사례는 동일한 타임스탬프를 공유하지 않는 시계열을 리샘플링하여 시계열 간에 계산을 수행할 수 있도록 하는 것입니다. 두 시리즈를 각각 리샘플링한 다음 리샘플링된 변수를 참조하는 수학 연산을 통해 이 작업을 수행할 수 있습니다.

필드:

  • 입력 — 리샘플링할 시계열 데이터의 변수 (ReFID (예:A))

  • 리샘플링 대상 — 리샘플링하는 데 걸리는 시간 (예: 10s. 단위) 은 s 초, m 분, 시간, h 일, 주, d 년 단위일 수 있습니다. w y

  • 다운샘플 — 윈도우 샘플당 데이터 포인트가 두 개 이상일 때 사용하는 축소 함수입니다. 동작에 대한 자세한 내용은 축소 작업을 참조하십시오.

  • 업샘플 — 데이터 포인트가 없는 윈도우 샘플을 채우는 데 사용하는 방법입니다.

    • 패드는 마지막으로 알려진 값으로 채웁니다.

    • 다음으로 알려진 값으로 다시 채웁니다.

    • 샘플 창을 채우려면 다음을 입력하십시오. NaNs

표현식 작성하기

데이터 소스가 지원하는 경우 Grafana는 표현식 버튼을 표시하고 쿼리 편집기 목록에 기존 표현식을 표시합니다.

표현식 작성하기
  1. 패널을 엽니다.

  2. 쿼리 아래에서 표현식을 선택합니다.

  3. 작업 필드에서 작성하려는 표현식 유형을 선택합니다.

  4. 표현식을 작성합니다.

  5. Apply(적용)를 선택합니다.

특수 사례

쿼리된 데이터 소스가 시리즈나 숫자를 반환하지 않는 경우 표현식 엔진이 반환합니다. NoData 예를 들어, 요청에 표현식으로 병합된 두 개의 데이터 원본 쿼리가 포함되어 있고 하나 이상의 데이터 원본 쿼리에서 반환되는 경우 NoData 전체 쿼리의 결과는 다음과 같습니다. NoData Grafana NoData Alerting이 결과를 처리하는 방법에 대한 자세한 내용은 을 참조하십시오. 데이터 없음 또는 오류 사례 처리