Prometheus 데이터 소스 사용 - Amazon Managed Grafana

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

Prometheus 데이터 소스 사용

Prometheus 설정

명칭 설명
Name 데이터 소스 이름. 패널 및 쿼리에서 데이터 소스를 보는 방법입니다.
Default 기본 데이터 소스는 새 패널에 대해 미리 선택됨을 의미합니다.
Url Prometheus 서버의 URL(예: https://prometheus.example.org:9090).
Access 서버(기본값) = Grafana 백엔드/서버에서 URL에 액세스할 수 있어야 합니다.
Basic Auth Prometheus 데이터 소스에 대한 기본 인증을 활성화합니다.
User 기본 인증을 위한 사용자 이름.
Password 기본 인증을 위한 암호.
Scrape interval 이를 Prometheus에 구성된 일반적인 스크레이프 및 평가 간격으로 설정합니다. 기본값은 15s(15초)입니다.
Disable metrics lookup 이 옵션을 선택하면 쿼리 필드의 자동 완성에서 지표 선택기 및 지표/레이블 지원이 비활성화됩니다. 그러면 더 큰 Prometheus 인스턴스에 성능 문제가 있는 경우 도움이 됩니다.
Custom Query Parameters Prometheus 쿼리 URL에 사용자 지정 파라미터를 추가합니다. 예: timeout, partial_response, dedup 또는 max_source_resolution. 여러 파라미터를 '&' 기호로 함께 연결해야 합니다.

Prometheus 쿼리 편집기

다음 섹션에서는 대시보드 및 탐색에서 Prometheus 쿼리 편집기에 대한 정보와 옵션을 제공합니다.

대시보드의 쿼리 편집기

제목을 선택한 다음, 편집을 선택하거나 패널에서 일시 중지한 동안 e 키를 눌러서 편집 모드에서 그래프를 엽니다.

명칭 설명
Query expression Prometheus 쿼리 표현식에 대한 자세한 내용은 Prometheus 설명서를 참조하세요.
Legend format 이름 또는 패턴을 사용하여 시계열의 이름을 제어합니다. 예를 들어 {{hostname}}hostname 레이블의 레이블 값으로 대체됩니다.
Min step Prometheus 범위 쿼리의 step파라미터$__interval$__rate_interval 변수의 추가 하한 값. 제한에서는 절댓값을 사용하며 해상도 설정에 의해 수정되지 않습니다.
Resolution 1/1에서는 각 픽셀이 하나의 데이터 포인트에 대응하도록 Prometheus 범위 쿼리의 step 파라미터$__interval 변수를 모두 설정합니다. 더 나은 성능을 위해 더 낮은 해상도를 사용합니다. 1/2에서는 모두 다른 픽셀에 대해서만 데이터 포인트를 검색하고 1/10에서는 10픽셀당 하나의 데이터 포인트를 검색합니다. 최소 시간 간격최소 단계 모두 $__intervalstep의 최종 값을 제한합니다.
Metric lookup 이 입력 필드에서 지표 이름을 검색합니다.
Format as Table, Time series 또는 Heatmap사이를 전환합니다. Table은 테이블 패널에서만 작동합니다. Heatmap은 히트맵 패널에서 히스토그램 유형의 지표를 표시하는 데 적합합니다. 누적 히스토그램을 일반 히스토그램으로 변환하고 버킷 바인딩을 기준으로 시리즈를 정렬합니다.
Instant 요청된 시계열에 대해 Prometheus에서 스크레이핑한 최신 값만 반환하려면 '인스턴트' 쿼리를 수행합니다. 인스턴트 쿼리는 정상 범위 쿼리보다 훨씬 빠르게 결과를 반환합니다. 이를 사용하여 레이블 세트를 조회합니다.
Min time interval 이 값에 해상도 설정의 분모를 곱하면 Prometheus 범위 쿼리의 step 파라미터$__interval 변수 모두에 하한이 설정됩니다. 데이터 소스 옵션에 설정된 스크레이프 간격을 기본값으로 사용합니다.
참고

Amazon Managed Grafana에서는 동적으로 계산된 단계에 맞게 쿼리에 대한 요청 날짜를 수정합니다. 그러면 지표 데이터를 일관되게 표시할 수 있지만 그래프의 오른쪽 엣지에 약간의 데이터 갭이 생길 수 있습니다.

대시보드에서의 인스턴트 쿼리

Prometheus 데이터 소스를 사용하면 최신 값만 쿼리하는 인스턴트 쿼리를 실행할 수 있습니다. 테이블 패널에서 결과를 시각화하여 시계열의 사용 가능한 모든 레이블을 볼 수 있습니다.

인스턴트 쿼리 결과는 시리즈당 하나의 데이터 포인트로만 구성됩니다. 시리즈 재정의를 사용하여 그래프 패널에 표시할 수 있습니다. 그래프에 최신 값 포인트로 표시하려면 시리즈 재정의를 추가하고 Points > true를 선택합니다. 전체 그래프에서 가로선을 표시하려면 시리즈 재정의를 추가하고 Transform > constant를 선택합니다. 시리즈 재정의에 대한 자세한 내용은 시리즈 재정의 섹션을 참조하세요.

탐색의 쿼리 편집기

명칭 설명
Query expression Prometheus 쿼리 표현식에 대한 자세한 내용은 Prometheus 설명서를 참조하세요.
Step Prometheus 범위 쿼리의 Step 파라미터. 여기에서는 5s, 1m, 3h, 1d, 1y와 같은 시간 단위를 사용할 수 있습니다. 지정된 단위가 없는 경우 기본 단위는 s(초)입니다.
Query type Range, Instant, 또는 Both. 범위 쿼리를 실행하는 경우 쿼리 결과는 그래프 및 테이블에 표시됩니다. 인스턴트 쿼리는 요청된 시계열에 대해 Prometheus에서 스크레이핑한 최신 값만 반환하고 이는 테이블에 표시됩니다. 둘 다를 선택하면 인스턴트 쿼리와 범위 쿼리가 모두 실행됩니다. 범위 쿼리 결과는 그래프로 표시되고 인스턴트 쿼리 결과는 테이블에 표시됩니다.

지표 브라우저

지표 브라우저를 사용하면 지표를 빠르게 찾고 관련 레이블을 선택하여 기본 쿼리를 빌드할 수 있습니다. 브라우저를 열면 사용 가능한 모든 지표와 레이블이 표시됩니다. Prometheus 인스턴스에서 지원하는 경우 각 지표는 툴팁에 해당 도움말 및 유형을 표시합니다.

지표를 선택하면 브라우저에서 사용 가능한 레이블 범위를 좁혀 지표에 적용되는 레이블만 표시합니다. 그런 다음, 사용 가능한 레이블 값이 하단 섹션의 목록에 표시되는 레이블을 하나 이상 선택할 수 있습니다. 각 레이블에 대해 하나 이상의 값을 선택하여 쿼리 범위를 좁힙니다.

참고

시작할 지표 이름이 기억나지 않는 경우 먼저 몇 개의 레이블을 선택하여 목록 범위를 좁힌 다음, 관련 레이블 값을 찾을 수도 있습니다.

지표 브라우저의 모든 목록에는 위에 검색 필드가 있습니다. 이를 통해 특정 문자열과 일치하는 지표 또는 레이블을 빠르게 필터링할 수 있는 검색 필드가 있습니다. 값 섹션에는 하나의 검색 필드만 있습니다. 선택한 후에 여러 레이블에서 값을 찾는 데 도움이 되도록 모든 레이블에 해당 필터링이 적용됩니다. 예를 들어 레이블 앱, 작업, job_name 중에서 하나에만 찾으려는 값이 포함될 수 있습니다.

쿼리에 만족하면 '쿼리 사용'을 클릭하여 쿼리를 실행합니다. 비율 쿼리로 사용 버튼은 쿼리 주위에 rate(...)[$__interval]을 추가하여 카운터 지표에 대한 쿼리를 작성하는 데 도움이 됩니다. '선택기 검증' 버튼은 Prometheus에서 해당 선택기에 사용할 수 있는 시계열 수를 확인합니다.

제한 사항

지표 브라우저에는 10,000개의 레이블(키) 및 50,000개의 레이블 값(지표 이름 포함)과 같은 하드 제한이 있습니다. Prometheus 인스턴스가 더 많은 결과를 반환해도 브라우저는 계속 작동합니다. 그러나 결과 세트는 이러한 최대 제한을 초과하여 잘립니다.

템플릿 지정

지표 쿼리에서 서버, 애플리케이션 및 센서 이름과 같은 사물을 하드코딩하는 대신 해당 위치에서 변수를 사용할 수 있습니다. 변수는 대시보드 상단에서 드롭다운 선택 상자로 표시됩니다. 이러한 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.

템플릿 지정 및 템플릿 변수에 대한 자세한 내용은 템플릿 및 변수 섹션을 참조하세요.

쿼리 변수

쿼리 유형의 변수를 사용하면 Prometheus에서 지표, 레이블 또는 레이블 값 목록을 쿼리할 수 있습니다. Prometheus 데이터 소스 플러그인은 쿼리 입력 필드에 사용할 수 있는 다음 함수를 제공합니다.

명칭 설명
label_names() 레이블 이름 목록을 반환합니다.
label_values(label) 모든 지표에서 label에 대한 레이블 값 목록을 반환합니다.
label_values(metric, label) 지정된 지표에서 label에 대한 레이블 값 목록을 반환합니다.
metrics(metric) 지정된 metric 정규식과 일치하는 지표 목록을 반환합니다.
query_result(query) query에 대한 Prometheus 쿼리 결과 목록을 반환합니다.

지표 이름, 레이블 이름레이블 값에 대한 자세한 내용은 Prometheus 설명서를 참조하세요.

간격 및 범위 변수 사용

참고

$__range, $__range_s$__range_ms에 대한 지원은 Grafana v5.3에서만 사용할 수 있습니다.

쿼리 변수에서 $__interval, $__interval_ms, $__range, $__range_s, $__range_ms와 같은 몇 가지 전역 변수를 사용할 수 있습니다. 자세한 내용은 전역 변수 단원을 참조하십시오. label_values 함수는 쿼리를 지원하지 않으므로 변수 쿼리를 필터링해야 하는 경우 query_result 함수와 함께 사용하기 편리할 수 있습니다.

대시보드에서 시간 범위를 변경할 때 올바른 인스턴스를 가져오려면 변수의 refresh 트리거를 On Time Range Change로 설정해야 합니다.

다음 코드 예제에서는 대시보드에 표시된 시간 범위 동안 평균 QPS를 기반으로 가장 사용량이 높은 요청 인스턴스 5개로 변수를 채우는 방법을 보여줍니다.

Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance))) Regex: /"([^"]+)"/

다음 코드 예제에서는 $__range_s를 사용하여 대시보드에 표시된 시간 범위 동안 특정 상태의 인스턴스로 변수를 채우는 방법을 보여줍니다.

Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>) Regex:

$__rate_interval 변수 사용

$__rate_interval 변수는 비율 함수에 사용하기 위해 제공됩니다. 최대($__interval + 스크레이프 간격, 4 * 스크레이프 간격)로 정의됩니다. 스크레이프 간격은 최소 단계 설정(AKA query_interval, PromQL 쿼리당 설정)(설정된 경우)입니다. 그렇지 않으면 Prometheus 데이터 소스에 설정된 스크레이프 간격입니다(그러나 후자는 해상도 설정에서 수정되기 때문에 패널에서 최소 간격 설정 무시).

쿼리에서 변수 사용

두 가지 구문이 있습니다.

  • $<varname> 예: rate(http_requests_total{job=~"$job"}[5m])

  • [[varname]] 예: rate(http_requests_total{job=~"[[job]]"}[5m])

왜 두 가지 방법이 있을까요? 첫 번째 구문은 읽고 쓰기가 더 쉽지만 단어 중간에 변수를 사용할 수는 없습니다. 다중 값 또는 모든 값 포함 옵션이 활성화되면 Grafana는 레이블을 일반 텍스트에서 정규식 호환 문자열로 변환합니다. 즉 = 대신 =~를 사용해야 합니다.

주석

주석을 사용하여 그래프 위에 풍부한 이벤트 정보를 오버레이할 수 있습니다. 대시보드 메뉴 또는 주석 보기를 사용하여 주석 쿼리를 추가합니다. 자세한 내용은 주석 단원을 참조하십시오.

Prometheus는 주석을 쿼리하는 두 가지 방법을 지원합니다.

단계 옵션은 쿼리에서 반환되는 이벤트 수를 제한하는 데 유용합니다.