Google Distributed Cloud (GDC) 에어 갭에 배포된 워크로드에서 측정항목을 수집한 후 분석을 시작할 수 있습니다. 측정항목을 분석하려면 유용한 Grafana 대시보드에서 측정항목을 시각화하고 필터링하거나, 유연한 스크립팅 및 자동화를 위해 curl
도구를 사용하여 Cortex에서 직접 액세스하면 됩니다.
이 페이지에서는 Grafana 사용자 인터페이스와 Cortex 엔드포인트용 curl
도구를 모두 사용하여 측정항목을 쿼리하고 시각화하여 워크로드 성능에 대한 유용한 정보를 얻는 방법을 자세히 설명합니다.
다음 두 가지 방법 중 하나로 측정항목에 액세스할 수 있습니다.
- Grafana 대시보드: CPU 사용률, 스토리지 소비, 네트워크 활동과 같은 주요 측정항목을 직관적으로 시각화하여 추세를 살펴보고 비정상적인 활동을 식별합니다. Grafana는 대시보드에서 워크로드 데이터를 필터링하고 분석할 수 있는 사용자 친화적인 인터페이스를 제공합니다.
- Cortex 엔드포인트: 더 고급 사용 사례의 경우 명령줄에서
curl
도구를 사용하여 프로젝트의 Cortex 인스턴스를 직접 쿼리합니다. Cortex는 프로젝트의 Prometheus 측정항목을 저장하고 프로그래매틱 액세스를 위한 HTTP 엔드포인트를 제공합니다. 이 액세스 권한을 사용하면 데이터를 내보내고, 작업을 자동화하고, 맞춤 통합을 빌드할 수 있습니다.
시작하기 전에
Grafana 대시보드에서 측정항목을 쿼리하고 시각화하는 데 필요한 권한을 얻으려면 조직 IAM 관리자 또는 프로젝트 IAM 관리자에게 사전 정의된 조직 Grafana 뷰어 또는 프로젝트 Grafana 뷰어 역할 중 하나를 부여해 달라고 요청하세요. 필요한 액세스 수준과 권한에 따라 조직 또는 프로젝트에서 Grafana 역할을 획득할 수 있습니다.
또는 Cortex 엔드포인트에서 측정항목을 쿼리하는 데 필요한 권한을 얻으려면 프로젝트 IAM 관리자에게 프로젝트 네임스페이스에 대한 프로젝트 Cortex Prometheus 뷰어 역할을 부여해 달라고 요청하세요.
이러한 역할에 대한 자세한 내용은 IAM 권한 준비를 참고하세요.
측정항목 가져오기 및 필터링
다음 방법 중 하나를 선택하여 쿼리를 작성하고, 추세를 시각화하고, 프로젝트 워크로드의 측정항목을 필터링합니다.
Grafana 대시보드
이 섹션에서는 Grafana 대시보드를 사용하여 측정항목에 액세스하는 방법을 설명합니다.
Grafana 엔드포인트 식별
다음 URL은 프로젝트의 Grafana 인스턴스 엔드포인트입니다.
https://GDC_URL/PROJECT_NAMESPACE/grafana
다음을 바꿉니다.
GDC_URL
: GDC의 조직 URL입니다.PROJECT_NAMESPACE
: 프로젝트 네임스페이스예를 들어
org-1
조직의platform-obs
프로젝트에 대한 Grafana 엔드포인트는https://org-1/platform-obs/grafana
입니다.
Grafana 사용자 인터페이스에서 측정항목 보기
Grafana 사용자 인터페이스에서 측정항목을 가져옵니다.
- GDC 콘솔에서 프로젝트를 선택합니다.
- 탐색 메뉴에서 작업 > 모니터링을 선택합니다.
Grafana에서 모두 보기를 클릭합니다.
새 페이지에 Grafana 엔드포인트가 열리고 사용자 인터페이스가 표시됩니다.
사용자 인터페이스의 탐색 메뉴에서 탐색 Explore을 클릭하여 Explore 페이지를 엽니다.
탐색 표시줄의 메뉴에서 유니버스 유형에 따라 측정항목을 가져올 데이터 소스를 선택합니다.
단일 영역 유니버스: prometheus를 선택하여 유니버스의 단일 영역에서 측정항목을 표시합니다.
멀티 영역 유니버스: Grafana는 여러 영역에 연결하여 영역 간 데이터를 표시할 수 있습니다. 측정항목 ZONE_NAME을 선택하여 로그인한 영역과 관계없이 유니버스의 모든 영역의 측정항목을 표시합니다.
또한 단일 대시보드에 교차 영역 데이터 시각화를 표시하고 쿼리에 여러 영역을 추가하려면 데이터 소스로 혼합을 선택합니다.
PromQL(Prometheus 쿼리 언어) 표현식을 사용하여 측정항목을 검색하는 쿼리를 입력합니다. 이 단계는 다음 두 가지 방법 중 하나로 수행할 수 있습니다.
- 측정항목 및 라벨 필터 메뉴에서 쿼리에 사용할 측정항목과 라벨을 선택합니다. 추가 추가를 클릭하여 쿼리에 라벨을 더 추가합니다. 그런 다음 쿼리 실행을 클릭합니다.
- 측정항목 텍스트 필드에 쿼리를 직접 입력하고 Shift+Enter를 눌러 쿼리를 실행합니다.
페이지에 쿼리와 일치하는 측정항목이 표시됩니다.
그림 1. Grafana 사용자 인터페이스에서 측정항목을 쿼리하는 메뉴 옵션
그림 1에서 prometheus 옵션은 Grafana에서 측정항목을 가져오기 위한 쿼리를 빌드할 수 있는 인터페이스를 표시합니다.
측정항목을 쿼리하는 데 사용할 수 있는 라벨의 값 예시는 샘플 쿼리 및 라벨을 참고하세요.
Cortex 엔드포인트
이 섹션에서는 Cortex를 사용하여 측정항목에 액세스하는 방법을 설명합니다.
Cortex 엔드포인트 확인
다음 URL은 프로젝트의 Cortex 인스턴스 엔드포인트입니다.
https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/
다음을 바꿉니다.
GDC_URL
: GDC의 조직 URL입니다.PROJECT_NAMESPACE
: 프로젝트 네임스페이스예를 들어
org-1
조직의platform-obs
프로젝트에 대한 Cortex 엔드포인트는https://org-1/platform-obs/cortex/prometheus/
입니다.
curl
요청 인증
- gdcloud CLI를 다운로드하고 설치합니다.
gdcloud
core/organization_console_url
속성을 설정합니다.gdcloud config set core/organization_console_url https://GDC_URL
-
gdcloud auth login
사용자 이름과 비밀번호를 사용하여 인증하고 로그인합니다.
로그인이 성공하면
gdcloud auth print-identity-token
명령어를 통해 cURL 요청에서 승인 헤더를 사용할 수 있습니다. 자세한 내용은 gdcloud auth를 참고하세요.
Cortex 엔드포인트 호출
curl
도구를 사용하여 Cortex 엔드포인트에 도달하려면 다음 단계를 완료하세요.
curl
요청 인증curl
를 사용하여 Cortex 엔드포인트를 호출하고 표준 Prometheus HTTP API(https://prometheus.io/docs/prometheus/latest/querying/api/)를 사용하여 URL을 확장하여 측정항목을 쿼리합니다.다음은
curl
요청의 예시입니다.curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"
명령어에 따라 출력을 가져옵니다. API 응답은 JSON 형식입니다.
샘플 쿼리 및 라벨
측정항목 이름과 라벨의 키-값 쌍을 사용하여 측정항목을 쿼리할 수 있습니다. PromQL 쿼리의 구문은 다음과 같습니다.
metric_name{label_one="value", label_two="value"}
라벨을 사용하면 측정항목의 특성을 구분할 수 있습니다. 이러한 방식으로 컨테이너 작성자는 워크로드가 측정항목을 생성하고 이러한 측정항목을 필터링하는 태그를 추가하도록 합니다.
예를 들어 수신된 HTTP 요청 수를 집계하는 api_http_requests_total
측정항목이 있을 수 있습니다. 그런 다음 이 측정항목에 request_method
라벨을 추가할 수 있습니다. 이 라벨은 POST
, GET
또는 PUT
값을 사용합니다. 따라서 수신할 수 있는 각 요청 유형에 대해 세 개의 측정항목 스트림을 만듭니다. 이 경우 HTTP GET
요청 수를 찾으려면 다음 쿼리를 실행합니다.
api_http_requests_total{request_method="GET"}
측정항목 및 라벨에 대한 자세한 내용은 https://prometheus.io/docs/practices/naming/를 참고하세요.
다음은 MonitoringTarget
맞춤 리소스가 추가하는 기본 라벨의 일부입니다. 다음 기본 라벨을 사용하여 측정항목을 쿼리할 수 있습니다.
_gdch_service
: 서비스의 짧은 이름입니다.cluster
: 클러스터의 이름입니다.container_name
: 포드 내 컨테이너의 이름입니다.namespace_name
: 프로젝트 네임스페이스pod_name
: 포드 이름 접두사입니다.
다음 표에서는 Prometheus가 자동으로 추가하는 라벨을 설명합니다.
측정항목 라벨 | 설명 |
---|---|
job |
측정항목을 수집하는 데 사용되는 스크랩 작업의 내부 이름입니다. MonitoringTarget 커스텀 리소스에 의해 생성된 작업에는 다음 패턴의 이름이 지정됩니다.obs-system/OBS_SHADOW_PROJECT_NAME/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J I 및 J 는 이름 충돌을 방지하기 위해 내부적으로 결정되는 고유한 숫자입니다. |
instance |
스크랩된 서비스의 $IP:$PORT 입니다. 워크로드 리소스에 복제본이 여러 개 있는 경우 이 필드를 사용하여 복제본을 구분합니다. |
다음 코드 샘플은 라벨의 키-값 쌍을 사용하여 다양한 측정항목을 쿼리하는 방법을 보여줍니다.
프로젝트에서 처리된 작업의 모든 측정항목 스트림을 확인합니다.
processed_ops_total
Kubernetes 클러스터에서 수집된 처리된 작업을 확인합니다.
processed_ops_total{cluster="CLUSTER_NAME"}
Kubernetes 클러스터에서 수집된 CPU 사용량을 확인합니다.
cpu_usage{cluster="CLUSTER_NAME"}
측정항목 라벨 재지정 도구를 사용하여 스크랩된 컨테이너에서 처음에는 노출되지 않는 라벨을 추가하고 생성된 측정항목의 이름을 바꿉니다. 수집하는 측정항목에 라벨을 추가하려면 MonitoringTarget
커스텀 리소스를 구성해야 합니다.
커스텀 리소스의 metricsRelabelings
필드에 이러한 라벨을 지정합니다.
자세한 내용은 라벨 측정항목을 참고하세요.