Grafana로 메트릭 시각화하기

Grafana로 메트릭 시각화하기 (Visualizing Metrics with Grafana)

이 작업은 Istio Dashboard를 설정하고 사용해서 메시 트래픽을 모니터링하는 방법을 보여드려요. 작업 과정에서 Grafana Istio 애드온과 웹 기반 인터페이스를 사용해서 서비스 메시 트래픽 데이터를 봐요.

출처: Istio 문서

본문

이 작업은 Istio Dashboard를 설정하고 사용해서 메시 트래픽을 모니터링하는 방법을 보여드려요. 작업 과정에서 Grafana Istio 애드온과 웹 기반 인터페이스를 사용해서 서비스 메시 트래픽 데이터를 확인해요. 이 작업 전체에서 예시 애플리케이션으로 Bookinfo 샘플 애플리케이션을 사용해요.

시작하기 전에 (Before you begin)

  • 클러스터에 Istio를 설치하세요.
  • Grafana Addon을 설치하세요.
  • Prometheus Addon을 설치하세요.
  • Bookinfo 애플리케이션을 배포하세요.

Istio 대시보드 보기 (Viewing the Istio dashboard)

  1. prometheus 서비스가 클러스터에서 실행 중인지 확인하세요. Kubernetes 환경에서는 다음 명령을 실행하세요.
$ kubectl -n istio-system get svc prometheus
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
prometheus   ClusterIP   10.100.250.202   <none>        9090/TCP   103s
  1. Grafana 서비스가 클러스터에서 실행 중인지 확인하세요. Kubernetes 환경에서는 다음 명령을 실행하세요.
$ kubectl -n istio-system get svc grafana
NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
grafana   ClusterIP   10.103.244.103   <none>        3000/TCP   2m25s
  1. Grafana UI를 통해 Istio Dashboard를 여세요. Kubernetes 환경에서는 다음 명령을 실행하세요.
$ istioctl dashboard grafana

웹 브라우저에서 http://localhost:3000/d/G8wLrJIZk/istio-mesh-dashboard 를 방문하세요. Istio Dashboard는 다음과 비슷하게 보일 거예요. 4. 메시로 트래픽을 보내세요. Bookinfo 샘플의 경우 웹 브라우저에서 http://$GATEWAY_URL/productpage에 접속하거나 다음 명령을 실행하세요. 추적 데이터를 보려면 서비스에 요청을 보내야 해요. 요청 수는 Istio의 샘플링 비율에 따라 달라지며, Telemetry API로 구성할 수 있어요. 기본 샘플링 비율인 1%에서는 첫 번째 추적이 보이기 전에 최소 100개의 요청을 보내야 해요. productpage 서비스에 100개의 요청을 보내려면 다음 명령을 사용하세요.

$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done

[!note] $GATEWAY_URL은 Bookinfo 예시에서 설정한 값이에요. 페이지를 몇 번 새로고침(또는 명령을 몇 번 실행)해서 약간의 트래픽을 생성하세요. Istio Dashboard를 다시 살펴보세요. 생성된 트래픽을 반영해야 해요. 다음과 비슷하게 보일 거예요. 이는 메시 안의 서비스와 워크로드와 함께 메시의 전반적인 모습을 보여줘요. 아래에서 설명하듯이 각자의 대시보드로 이동하면 서비스와 워크로드에 대한 더 자세한 정보를 얻을 수 있어요.

  1. 서비스 대시보드 시각화하기. Grafana 대시보드의 왼쪽 모서리 탐색 메뉴에서 Istio Service Dashboard로 이동하거나 웹 브라우저에서 http://localhost:3000/d/LJ_uJAvmk/istio-service-dashboard 를 방문하세요.

[!note] Service 드롭다운에서 서비스를 선택해야 할 수 있어요. Istio Service Dashboard는 다음과 비슷하게 보일 거예요. 이는 해당 서비스의 메트릭과, 그 서비스를 호출하는 클라이언트 워크로드와 그 서비스를 제공하는 서비스 워크로드에 대한 세부 정보를 보여줘요.

  1. 워크로드 대시보드 시각화하기. Grafana 대시보드의 왼쪽 모서리 탐색 메뉴에서 Istio Workload Dashboard로 이동하거나 웹 브라우저에서 http://localhost:3000/d/UbsSZTDik/istio-workload-dashboard 를 방문하세요. Istio Workload Dashboard는 다음과 비슷하게 보일 거예요. 이는 각 워크로드의 메트릭과, 해당 워크로드에 요청을 보내는 인바운드 워크로드와 해당 워크로드가 요청을 보내는 아웃바운드 서비스에 대한 세부 정보를 보여줘요.

Grafana 대시보드에 대해 (About the Grafana dashboards)

Istio Dashboard는 세 가지 주요 섹션으로 구성돼요.

  1. 메시 요약 보기(Mesh Summary View). 이 섹션은 메시의 전반적인 요약 보기를 제공하고 메시 안의 HTTP/gRPC와 TCP 워크로드를 보여줘요.
  2. 개별 서비스 보기(Individual Services View). 이 섹션은 메시 안의 각 개별 서비스에 대한 요청/응답 메트릭(HTTP/gRPC와 TCP)을 제공해요. 또한 이 서비스의 클라이언트와 서비스 워크로드에 대한 메트릭도 제공해요.
  3. 개별 워크로드 보기(Individual Workloads View). 이 섹션은 메시 안의 각 개별 워크로드에 대한 요청/응답 메트릭(HTTP/gRPC와 TCP)을 제공해요. 또한 이 워크로드의 인바운드 워크로드와 아웃바운드 서비스에 대한 메트릭도 제공해요. 대시보드를 만들고, 구성하고, 편집하는 방법에 대한 자세한 내용은 Grafana 문서를 참고하세요.

정리 (Cleanup)

  • 실행 중일 수 있는 kubectl port-forward 프로세스를 제거하세요.
$ killall kubectl
  • 후속 작업을 탐구할 계획이 없다면 Bookinfo 정리 지침을 참고해서 애플리케이션을 종료하세요.

더 알아보기 (Learn more)

  • Grafana 대시보드 생성·관리에 대해서는 Grafana 문서를 참고하세요.
  • 추적 데이터 수집과 샘플링에 대해서는 Telemetry API 문서를 참고하세요.