서비스 간 Grafana 대시보드

서비스 간 Grafana 대시보드

이 페이지는 hashicorp/consul GitHub 리포지토리에 포함된 Grafana 대시보드 구성에 대한 참조 정보를 제공해요. 서비스 간 대시보드는 Consul 서비스 메시 내 서비스 간 트래픽과 상호작용에 대한 깊은 가시성을 제공해요.

출처: 문서

본문

이 페이지는 hashicorp/consul GitHub 리포지토리에 포함된 Grafana 대시보드 구성에 대한 참조 정보를 제공합니다. 서비스 간 대시보드는 Consul 서비스 메시 내 서비스 간 트래픽과 상호작용에 대한 깊은 가시성을 제공합니다. 로그, 오류율, 트래픽 패턴, 성공률 같은 중요한 메트릭에 초점을 맞추며, 이 모든 것이 운영자가 원활하고 안정적인 서비스 간 통신을 유지하는 데 도움이 됩니다.

Grafana 쿼리 개요

이 대시보드는 서비스 메시 운영에 대한 다음 정보를 제공합니다.

액세스 로그 및 오류 모니터링

설명: 이 섹션은 서비스 간 통신과 관련된 로그 및 오류에 대한 가시성을 제공합니다. 생성된 로그 수, 발생한 오류, 특정 패턴과 일치하는 로그의 백분율을 추적하고 표시합니다.

총 로그 (Total logs)

설명: 이 메트릭은 Consul dataplane 컨테이너가 생성한 로그 줄의 총 수를 셉니다. 특정 네임스페이스에 대해 생성되는 로그의 양에 대한 개요를 제공합니다.

sum(count_over_time(({container="consul-dataplane",namespace=~"$namespace"})[$__interval]))

"$searchable_pattern"을 포함하는 총 로그

설명: 이 메트릭은 지정된 패턴을 포함하는 로그 수를 추적합니다. 서비스 메시 전반에서 특정 로그 이벤트를 필터링하고 모니터링하는 데 유용합니다.

sum(count_over_time({container="consul-dataplane", namespace=~"$namespace"} |~ (?i)(?i)$searchable_pattern [$__interval]))

"$searchable_pattern"을 포함하는 로그의 백분율

설명: 이 메트릭은 전체 로그 볼륨에서 지정된 검색 패턴을 포함하는 로그의 백분율을 계산합니다. 특정 로그 이벤트의 비율을 측정하는 데 도움이 됩니다.

(sum(count_over_time({container="consul-dataplane", namespace=~"$namespace"} |~ (?i)(?i)$searchable_pattern [$__interval])) * 100) / sum(count_over_time({container="consul-dataplane", namespace=~"$namespace"} [$__interval]))

총 응답 코드 분포

설명: 이 파이 차트는 HTTP 응답 코드의 분포를 시각화하여 서비스가 생성한 4xx 및 5xx 오류 코드를 식별하는 데 도움이 됩니다.

sum by(response_code) (count_over_time({container="consul-dataplane", namespace="$namespace"} | json | response_code != "0" | __error__= [$__range]))

서비스별 "$searchable_pattern"을 포함하는 로그 비율

설명: 이 메트릭은 서비스별 로그에서 특정 패턴이 나타나는 비율을 모니터링하여 로그 데이터의 추세와 이상 징후를 감지하는 데 도움이 됩니다.

sum by(app) (rate({container="consul-dataplane", namespace=~"$namespace"} |~ (?i)(?i)$searchable_pattern [$__range]))

TCP 메트릭 - 서비스 수준

TCP 인바운드 및 아웃바운드 바이트

설명: 이 메트릭은 서비스 간에 전송되는 인바운드 및 아웃바운드 TCP 바이트를 추적합니다. 소스 및 대상 서비스 간의 네트워크 트래픽 흐름을 이해하는 데 필수적입니다.

sum(rate(envoy_tcp_downstream_cx_rx_bytes_total{}[10m])) by (service, destination_service)

버퍼링된 TCP 인바운드 및 아웃바운드 바이트

설명: 이 메트릭은 서비스 간 인바운드 및 아웃바운드 트래픽에 대해 버퍼링된 TCP 바이트 양을 모니터링합니다. 잠재적인 네트워크 성능 병목 현상을 식별하는 데 도움이 됩니다.

sum(rate(envoy_tcp_downstream_cx_rx_bytes_buffered{}[10m])) by (service, destination_service)

TCP 다운스트림 연결

설명: 이 메트릭은 소스 서비스에서 대상 서비스로의 활성 TCP 다운스트림 연결 수를 셉니다. 서비스 간 연결 볼륨에 대한 가시성을 제공합니다.

sum(envoy_tcp_downstream_cx_total) by (service, destination_service)

아웃바운드 트래픽 모니터링

업스트림 트래픽

설명: 이 메트릭은 소스 서비스에서 대상 서비스로의 업스트림 트래픽을 모니터링합니다. 서비스 간에 얼마나 많은 트래픽이 전송되고 있는지 보여줍니다.

sum(irate(envoy_cluster_upstream_rq_total{local_cluster=~"$source_service",consul_destination_service=~"$destination_service"}[10m]))

업스트림 요청 응답 적시성

설명: 이 메트릭은 소스 서비스와 대상 서비스 간 업스트림 요청 응답 시간의 95번째 백분위수를 계산합니다. 서비스 통신이 신속하게 처리되도록 하는 데 도움이 됩니다.

histogram_quantile(0.95, sum(rate(envoy_cluster_upstream_rq_time_bucket{local_cluster=~"$source_service",consul_destination_target!=""}[10m])) by (le, consul_destination_target))

업스트림 요청 성공률

설명: 이 메트릭은 4xx 및 5xx 오류를 제외한 소스 서비스에서 대상 서비스로의 요청 성공률을 추적합니다. 서비스 통신의 신뢰성을 평가하는 데 도움이 됩니다.

sum(irate(envoy_cluster_upstream_rq_xx{envoy_response_code_class!="5",local_cluster=~"$source_service",consul_destination_service=~"$destination_service"}[10m]))

인바운드 트래픽 모니터링

보낸 요청 (Requests sent)

설명: 이 메트릭은 서비스 메시 내에서 소스 서비스와 대상 서비스 사이에 전송된 요청 수를 추적합니다.

sum(irate(envoy_cluster_upstream_rq_total{consul_destination_datacenter="dc1",local_cluster=~"$source_service",consul_destination_service=~"$destination_service"}[10m])) by (consul_destination_service, local_cluster)

요청 성공률

설명: 이 메트릭은 소스 서비스에서 대상 서비스로의 요청 성공률을 추적하여 통신의 실패나 병목 현상을 식별하는 데 도움이 됩니다.

sum(irate(envoy_cluster_upstream_rq_xx{envoy_response_code_class!="5",local_cluster=~"$source_service",consul_destination_service=~"$destination_service"}[10m])) by (local_cluster, consul_destination_service) / sum(irate(envoy_cluster_upstream_rq_xx{consul_destination_service=~"$destination_service"}[10m])) by (local_cluster, consul_destination_service)

상태 코드별 응답 성공

설명: 이 메트릭은 소스 서비스에서 대상 서비스로 보낸 요청에 대한 상태 코드별 응답 성공을 추적합니다.

sum(increase(envoy_http_downstream_rq_xx{local_cluster=~"$source_service",envoy_http_conn_manager_prefix="public_listener"}[10m])) by (local_cluster, envoy_response_code_class)

요청 기간 (Request duration)

설명: 이 메트릭은 소스 서비스와 대상 서비스 사이의 요청 기간을 추적하여 성능과 응답 시간을 모니터링하는 데 도움이 됩니다.

histogram_quantile(0.95, sum(rate(envoy_cluster_upstream_rq_time_bucket{consul_destination_datacenter="dc1", consul_destination_service=~"$destination_service",local_cluster=~"$source_service"}[10m])) by (le, cluster, local_cluster, consul_destination_service))

응답 성공 (Response success)

설명: 이 메트릭은 서비스 메시 전반에서 소스 서비스 요청의 응답 성공을 추적합니다.

sum(increase(envoy_http_downstream_rq_total{local_cluster=~"$source_service",envoy_http_conn_manager_prefix="public_listener"}[10m])) by (local_cluster)

요청 응답 비율

설명: 이 메트릭은 소스 서비스가 생성하는 응답의 비율을 추적하여 서비스 활동과 성능에 대한 통찰력을 제공합니다.

sum(irate(envoy_http_downstream_rq_total{local_cluster=~"$source_service",envoy_http_conn_manager_prefix="public_listener"}[10m])) by (local_cluster)

사용자 지정 옵션

서비스 간 대시보드는 서비스 간 통신의 특정 측면을 분석하고, 더 집중적인 모니터링을 위해 대시보드를 조정하며, 서비스 메시에 대한 가시성을 높이는 데 도움이 되는 다양한 사용자 지정 옵션을 포함합니다.

  • 소스 서비스로 필터링: 특정 소스 서비스에서 발생하는 트래픽에 초점을 맞추도록 대시보드를 필터링하여 소스 서비스에서 모든 대상 서비스로의 상호작용을 분석할 수 있습니다.
  • 대상 서비스로 필터링: 마찬가지로 대상 서비스별로 대시보드를 필터링하여 특정 서비스가 수신하는 트래픽을 추적하고 분석할 수 있습니다. 이는 특정 서비스와 관련된 통신 문제나 성능 병목 현상을 정확히 찾아내는 데 도움이 됩니다.
  • 네임스페이스로 필터링: 특정 네임스페이스 내의 서비스 상호작용에 초점을 맞추도록 대시보드를 사용자 지정할 수 있습니다. 이는 엄격한 네임스페이스 격리로 운영되는 멀티 테넌트 환경이나 클러스터에서 문제를 격리하는 데 특히 유용합니다.
  • 로그 패턴 검색: 관심 있는 특정 로그 이벤트(예: 오류 메시지 또는 특정 HTTP 상태 코드)를 필터링하기 위해 로그에 사용자 지정 검색 패턴을 적용할 수 있습니다. 이를 통해 특정 로그 항목으로 범위를 좁히고 문제를 나타낼 수 있는 패턴을 식별할 수 있습니다.
  • 시간 범위 선택: 대시보드는 동적 시간 범위 선택을 지원하여 특정 시간 간격에 걸친 서비스 상호작용에 초점을 맞출 수 있습니다. 이는 트래픽 추세를 분석하고, 인시던트를 해결하며, 서비스 통신의 타이밍을 이해하는 데 도움이 됩니다.

이러한 사용자 지정 옵션을 사용하면 대시보드를 특정 요구 사항에 맞게 조정할 수 있으며, 건강하고 성능이 좋은 서비스 메시를 유지하기 위해 항상 가장 관련성 높은 데이터를 모니터링할 수 있습니다.

더 알아보기 (Learn more)