Consul 데이터플레인 모니터링 대시보드

Consul 데이터플레인 모니터링 대시보드 (Consul Dataplane Monitoring Dashboard)

이 페이지는 hashicorp/consul GitHub 저장소에 포함된 Grafana 대시보드 구성에 대한 참조 정보를 제공해요. Consul 데이터플레인 대시보드는 Consul 서비스 메시 내 서비스 상태, 성능, 리소스 사용률을 종합적으로 보여줘요.

출처: 문서

본문

이 페이지는 hashicorp/consul GitHub 저장소에 포함된 Grafana 대시보드 구성에 대한 참조 정보를 제공해요. Consul 데이터플레인 대시보드는 Consul 서비스 메시 내 서비스 상태, 성능, 리소스 사용률을 종합적인 뷰로 제공해요. 이 대시보드로 클러스터 및 서비스 수준 모두에서 주요 메트릭을 모니터링할 수 있어요. 서비스 신뢰성과 성능을 보장하는 데 도움이 돼요.

이 이미지는 대시보드의 시각적 레이아웃과 내용의 예시를 제공해요.

Grafana 쿼리 개요 (Grafana queries overview)

Consul 데이터플레인 대시보드는 서비스 메시 작업에 대해 다음 정보를 제공해요.

실시간 서비스 수 (Live service count)

설명: 현재 서비스 메시에서 실행 중인 실시간 Envoy 프록시의 총 수를 표시해요. 서비스의 전반적인 가용성을 추적하고 서비스 메시의 중단이나 기타 광범위한 문제를 식별하는 데 도움이 돼요.

sum(envoy_server_live{app=~"$service"})

총 요청 성공률 (Total request success rate)

설명: 서비스 메시 전체에서 성공적인 요청의 백분율을 추적해요. 운영 성공에 집중하기 위해 4xx 및 5xx 응답 코드를 제외해요. 서비스의 전반적인 신뢰성을 모니터링하는 데 사용해요.

sum(irate(envoy_cluster_upstream_rq_xx{envoy_response_code_class!~"5|4",consul_destination_service=~"$service"}[10m])) / sum(irate(envoy_cluster_upstream_rq_xx{consul_destination_service=~"$service"}[10m]))

총 실패 요청 (Total failed requests)

설명: 이 파이 차트는 서비스별로 분류된 서비스 메시 내 실패 요청의 총 수를 표시해요. 실패가 발생하는 위치에 대한 시각적 분석을 제공해 문제가 있는 서비스에 집중할 수 있게 해요.

sum(increase(envoy_cluster_upstream_rq_xx{envoy_response_code_class=~"4|5", consul_destination_service=~"$service"}[10m])) by (local_cluster)

초당 요청 수 (Requests per second)

설명: 이 메트릭은 선택한 서비스로의 초당 수신 HTTP 요청 속도를 표시해요. 운영자가 서비스의 현재 부하와 처리 중인 트래픽 양을 이해하는 데 도움이 돼요.

sum(rate(envoy_http_downstream_rq_total{service=~"$service",envoy_http_conn_manager_prefix="public_listener"}[5m])) by (service)

비정상 클러스터 (Unhealthy clusters)

설명: 이 메트릭은 메시의 비정상 클러스터 수를 추적해 운영자가 문제를 겪고 있고 운영 상태를 보장하기 위해 주의가 필요한 서비스를 식별하는 데 도움이 돼요.

(sum(envoy_cluster_membership_healthy{app=~"$service",envoy_cluster_name=~"$cluster"})  - sum(envoy_cluster_membership_total{app=~"$service",envoy_cluster_name=~"$cluster"}))

힙 크기 (Heap size)

설명: 이 메트릭은 Envoy 프록시의 총 메모리 힙 크기를 표시해요. 힙 크기 모니터링은 메모리 문제를 감지하고 서비스가 효율적으로 운영되는지 보장하는 데 필수적이에요.

SUM(envoy_server_memory_heap_size{app=~"$service"})

할당된 메모리 (Allocated memory)

설명: 이 메트릭은 Envoy 프록시가 할당한 메모리 양을 표시해요. 운영자가 서비스의 리소스 사용률을 모니터링해 메모리 과다 사용을 방지하고 성능을 최적화하는 데 도움이 돼요.

SUM(envoy_server_memory_allocated{app=~"$service"})

노드별 평균 가동 시간 (Avg uptime per node)

설명: 이 메트릭은 모든 노드의 Envoy 프록시 평균 가동 시간을 계산해요. 운영자가 서비스의 안정성을 모니터링하고 서비스 재시작이나 충돌로 인한 잠재적 문제를 감지하는 데 도움이 돼요.

avg(envoy_server_uptime{app=~"$service"})

클러스터 상태 (Cluster state)

설명: 이 메트릭은 모든 클러스터가 정상인지 여부를 나타내요. 클러스터 상태에 대한 빠른 개요를 제공해 서비스 성능에 영향을 주는 문제가 없는지 확인할 수 있어요.

(sum(envoy_cluster_membership_total{app=~"$service",envoy_cluster_name=~"$cluster"})-sum(envoy_cluster_membership_healthy{app=~"$service",envoy_cluster_name=~"$cluster"})) == bool 0

네임스페이스별 CPU 스로틀 시간 (CPU throttled seconds by namespace)

설명: 이 메트릭은 CPU 사용량이 스로틀된 초 수를 추적해요. CPU 스로틀 모니터링은 운영자가 서비스가 할당된 CPU 한도를 초과하고 최적화가 필요할 수 있음을 식별하는 데 도움이 돼요.

rate(container_cpu_cfs_throttled_seconds_total{namespace=~"$namespace"}[5m])

파드 한도 대비 메모리 사용량 (Memory usage by pod limits)

설명: 이 메트릭은 각 파드에 설정된 메모리 한도의 백분율로 메모리 사용량을 표시해요. 운영자가 서비스가 할당된 메모리 한도 내에 유지되어 성능 저하를 방지하는지 확인하는 데 도움이 돼요.

100 * max (container_memory_working_set_bytes{namespace=~"$namespace"} / on(container, pod) label_replace(kube_pod_container_resource_limits{resource="memory"}, "pod", "$1", "exported_pod", "(.+)")) by (pod)

파드 한도 대비 CPU 사용량 (CPU usage by pod limits)

설명: 이 메트릭은 각 파드에 설정된 CPU 한도의 백분율로 CPU 사용량을 표시해요. CPU 사용량 모니터링은 운영자가 서비스 성능을 최적화하고 CPU 고갈을 방지하는 데 도움이 돼요.

100 * max(
  container_memory_working_set_bytes{namespace=~"$namespace"} /
  on(container, pod) label_replace(kube_pod_container_resource_limits{resource="memory"}, "pod", "$1", "exported_pod", "(.+)")
) by (pod)

총 활성 업스트림 연결 (Total active upstream connections)

설명: 이 메트릭은 메시의 다른 서비스로의 활성 업스트림 연결의 총 수를 추적해요. 서비스 종속성과 네트워크 부하에 대한 통찰력을 제공해요.

sum(envoy_cluster_upstream_cx_active{app=~"$service",envoy_cluster_name=~"$cluster"}) by (app, envoy_cluster_name)

총 활성 다운스트림 연결 (Total active downstream connections)

설명: 이 메트릭은 서비스에서 클라이언트로의 활성 다운스트림 연결의 총 수를 추적해요. 운영자가 서비스 부하를 모니터링하고 서비스가 트래픽을 효과적으로 처리할 수 있는지 확인하는 데 도움이 돼요.

sum(envoy_http_downstream_cx_active{app=~"$service"})

더 알아보기 (Learn more)