이 페이지에서는 Google Distributed Cloud (GDC) 오프라인 프로젝트의 로그 및 측정항목 시각화에 사용되는 Grafana 인스턴스 내에서 대시보드를 만들고 관리하는 프로세스를 설명합니다.
대시보드는 시스템 성능을 동적으로 시각화하여 보여줍니다. 하나 이상의 맞춤설정 가능한 패널로 구성되며 각 패널은 GDC 구성요소의 특정 측정항목을 쿼리하고 표시하도록 구성됩니다. 이 패널을 사용하면 다음 작업을 할 수 있습니다.
- 다양한 그래프 유형을 통해 측정항목을 시각화합니다.
- 측정항목 값을 기반으로 알림을 트리거하는 알림 기준을 정의합니다.
- 라벨, 단위, 기간과 같은 표시 속성을 맞춤설정합니다.
- 정확한 비교를 위해 일관된 시간 해상도를 설정합니다.
Grafana 대시보드를 효과적으로 사용하면 GDC 환경의 성능과 상태에 관한 유용한 정보를 얻을 수 있습니다.
시작하기 전에
Grafana 대시보드에 액세스하고 이를 볼 수 있는 권한을 얻으려면 조직 IAM 관리자 또는 프로젝트 IAM 관리자에게 사전 정의된 Grafana 뷰어 역할 중 하나를 부여해 달라고 요청하세요.
또한 대시보드를 만드는 데 필요한 API 객체를 관리하는 데 필요한 권한을 얻으려면 조직 IAM 관리자 또는 프로젝트 IAM 관리자에게 연결된 ConfigMap
및 Dashboard
역할을 부여해 달라고 요청하세요.
필요한 액세스 수준 및 권한에 따라 조직 또는 프로젝트에서 이러한 리소스에 대한 생성자, 편집자 또는 뷰어 역할을 획득할 수 있습니다. 자세한 내용은 IAM 권한 준비를 참고하세요.
해당 역할을 획득한 후 대시보드를 만들기 전에 다음 단계를 따르세요.
- 워크로드에서 측정항목을 수집합니다.
kubeconfig 파일의 경로를 환경 변수로 설정합니다.
export KUBECONFIG=KUBECONFIG_PATH
KUBECONFIG_PATH
를 대시보드를 만들려는 관리 API 서버의 kubeconfig 파일 경로로 바꿉니다.
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 엔드포인트를 열어 사용자 인터페이스를 표시합니다.
- 탐색 메뉴에서 추가를 클릭합니다.
- 드롭다운 메뉴에서 대시보드를 클릭합니다. Grafana에서 빈 대시보드를 만듭니다.
빈 대시보드에 원하는 패널을 모두 추가합니다.
각 패널의 데이터 소스 메뉴에서 측정항목 (
prometheus
), 감사 로그(auditloki
), 운영 로그 (oploki
) 등 패널에 사용할 데이터 소스를 선택합니다.멀티 영역 유니버스의 경우 Grafana에는 여러 영역의 측정항목과 로그를 사용하여 대시보드 시각화를 만들 수 있는 영역 라벨이 지정된 데이터 소스가 있습니다. 이러한 데이터 소스의 이름은
DATA_SOURCE-ZONE_ID
형식으로 지정됩니다. 여기서DATA_SOURCE
는 다음 값 중 하나를 사용할 수 있습니다.- Prometheus (
prometheus
또는metrics
)를 사용하여 측정항목을 표시합니다. - 감사 로그 (
auditloki
)를 선택하여 감사 로그를 표시합니다. - 운영 로그 (
oploki
): 운영 로그를 표시합니다.
- Prometheus (
ZONE_ID
은 대시보드에 데이터를 표시하려는 영역의 ID입니다.
또한 교차 영역 리소스의 시각화 대시보드를 만들려면 데이터 소스 이름이
--Mixed--
입니다. 이 데이터 소스를 사용하면 영역별로 여러 쿼리를 추가하고 단일 대시보드에서 영역 간 데이터 시각화를 사용할 수 있습니다. 이 기능을 사용하면 유니버스의 여러 영역에서 단일 측정항목 또는 로그 쿼리 간의 동작을 비교할 수 있습니다.세부정보를 맞춤설정하고 패널을 수정하여 쿼리를 제공하거나 기타 업데이트를 실행합니다.
메뉴 바에서
대시보드 설정을 클릭하여 설정 페이지를 엽니다.탐색 메뉴에서 JSON 모델을 선택합니다.
대시보드의 JSON 모델을 복사하여 나중에 사용할 수 있도록 일반 텍스트 파일에 붙여넣습니다.
ConfigMap
객체를 만듭니다.
다음 단계에 따라 대시보드의 JSON 모델이 포함된 ConfigMap
객체를 만드세요.
- 터미널 창을 엽니다.
ConfigMap
객체를 만듭니다.ConfigMap
객체의data
섹션에 이전에 복사한 JSON 모델을 붙여넣습니다.apiVersion: v1 kind: ConfigMap metadata: namespace: PROJECT_NAMESPACE name: CONFIGMAP_NAME data: JSON_FILE_NAME.json: | { JSON_MODEL }
다음을 바꿉니다.
PROJECT_NAMESPACE
: 프로젝트 네임스페이스CONFIGMAP_NAME
:ConfigMap
객체에 지정하려는 이름입니다.JSON_FILE_NAME
: 대시보드의 JSON 모델 파일에 지정할 이름입니다.JSON_MODEL
: 맞춤 대시보드의 JSON 모델입니다.
이 객체의 모양에 관한 예는
ConfigMap
예시를 참고하세요.ConfigMap
객체를 Management API 서버에 적용합니다.kubectl --kubeconfig ${KUBECONFIG} apply -f CONFIGMAP_NAME.yaml
ConfigMap
예
다음 YAML 파일은 platform-obs
네임스페이스에 있는 대시보드의 ConfigMap
객체 예를 보여줍니다.
apiVersion: v1
kind: ConfigMap
metadata:
namespace: platform-obs
name: my-project-dashboard-configmap
data:
my-project-dashboard.json: |
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "--",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"graphTooltip": 0,
"id": null,
"links": [],
"panels": [],
"schemaVersion": 27,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Sample dashboard",
"uid": null,
"version": 0
}
Dashboard
커스텀 리소스 만들기
다음 단계에 따라 Dashboard
커스텀 리소스를 만들고 커스텀 대시보드를 프로젝트의 Grafana 인스턴스로 가져옵니다.
- 터미널 창을 엽니다.
Dashboard
맞춤 리소스를 만들고ConfigMap
객체에 지정한 이름으로 파일을 구성합니다.apiVersion: observability.gdc.goog/v1 kind: Dashboard metadata: namespace: PROJECT_NAMESPACE name: DASHBOARD_NAME spec: configMapRef: name: CONFIGMAP_NAME namespace: PROJECT_NAMESPACE key: JSON_FILE_NAME.json foldername: Default
다음을 바꿉니다.
PROJECT_NAMESPACE
: 프로젝트 네임스페이스DASHBOARD_NAME
:Dashboard
커스텀 리소스에 지정할 이름입니다.CONFIGMAP_NAME
:ConfigMap
객체에 지정한 이름입니다.JSON_FILE_NAME
:ConfigMap
객체에 대시보드의 JSON 모델이 포함된 파일에 지정한 이름입니다.
Dashboard
커스텀 리소스를 관리 API 서버에 적용합니다.kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
시스템은 Dashboard
커스텀 리소스와 연결된 ConfigMap
객체의 변경사항을 모두 모니터링합니다. 대시보드를 업데이트하거나 삭제하려면 이러한 리소스를 수정하세요. 수정사항이 있으면 Grafana가 업데이트됩니다. Grafana 사용자 인터페이스에서 직접 실행한 업데이트는 저장할 수 없습니다.