10장. 가시성

10.1. 관리자 메트릭

10.1.1. 서버리스 관리자 메트릭

클러스터 관리자는 메트릭을 사용하여 OpenShift Serverless 클러스터 구성 요소 및 워크로드를 수행하는 방법을 모니터링할 수 있습니다.

OpenShift Container Platform 웹 콘솔 관리자 화면에서 대시보드로 이동하여 OpenShift Serverless의 다양한 메트릭을 볼 수 있습니다.

10.1.1.1. 사전 요구 사항

  • 클러스터 메트릭 활성화에 대한 정보는 메트릭 관리에 대한 OpenShift Container Platform 설명서를 참조하십시오.
  • 클러스터 관리자 액세스 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔의 관리자 화면에 액세스할 수 있습니다.
주의

Service Mesh가 mTLS를 사용하여 사용하도록 설정된 경우 Service Mesh가 Prometheus의 메트릭 스크랩을 허용하지 않기 때문에 기본적으로 Knative Serviceing에 대한 메트릭이 사용되지 않도록 설정됩니다.

이 문제를 해결하는 방법에 대한 자세한 내용은 mTLS를 사용하여 서비스 메시를 사용할 때 Knative Serving 메트릭 활성화를 참조하십시오.

메트릭을 스크랩하는 작업은 스크랩 요청이 활성화를 통과하지 않기 때문에 Knative 서비스의 자동 확장에 영향을 미치지 않습니다. 결과적으로 실행 중인 Pod가 없는 경우 스크랩이 수행되지 않습니다.

10.1.2. 서버리스 컨트롤러 메트릭

다음 메트릭은 컨트롤러 로직을 구현하는 구성 요소에서 출력됩니다. 이러한 메트릭은 조정 작업 및 조정 요청이 작업 대기열에 추가되는 작업 대기열 동작에 대한 세부 정보를 표시합니다.

메트릭 이름설명유형태그단위

work_queue_depth

작업 대기열의 깊이

게이지

reconciler

정수(단위 없음)

reconcile_count

조정 작업 수

카운터

reconciler, success

정수(단위 없음)

reconcile_latency

조정 작업 대기 시간

히스토그램

reconciler, success

밀리초

workqueue_adds_total

작업 대기열에서 처리하는 총 추가 작업 수

카운터

name

정수(단위 없음)

workqueue_queue_latency_seconds

항목이 요청되기 전에 작업 대기열에 남아 있는 시간

히스토그램

name

workqueue_retries_total

작업 대기열에서 처리한 총 재시도 횟수

카운터

name

정수(단위 없음)

workqueue_work_duration_seconds

작업 대기열에서 처리하는 데 걸리는 시간 및 항목

히스토그램

name

workqueue_unfinished_work_seconds

처리되지 않은 작업 대기열 항목이 진행 중인 시간

히스토그램

name

workqueue_longest_running_processor_seconds

가장 긴 미결 작업 대기열 항목이 진행 중인 시간

히스토그램

name

10.1.3. Webhook 메트릭

Webhook 메트릭은 작업에 대한 유용한 정보를 표시합니다. 예를 들어, 많은 작업이 실패하면 사용자가 생성한 리소스에 문제가 있음을 나타내는 것일 수 있습니다.

메트릭 이름설명유형태그단위

request_count

webhook로 라우팅되는 요청 수입니다.

카운터

admission_allowed, kind_group, kind_kind, kind_version, request_operation, resource_group, resource_namespace, resource_resource, resource_version

정수(단위 없음)

request_latencies

webhook 요청에 대한 응답 시간입니다.

히스토그램

admission_allowed, kind_group, kind_kind, kind_version, request_operation, resource_group, resource_namespace, resource_resource, resource_version

밀리초

10.1.4. Knative Eventing 메트릭

클러스터 관리자는 Knative Eventing 구성 요소에 대한 다음 메트릭을 볼 수 있습니다.

HTTP 코드에서 메트릭을 집계하여 정상적인 이벤트 (2xx) 및 실패한 이벤트(5xx)의 두 가지 범주로 구분할 수 있습니다.

10.1.4.1. 브로커 Ingress 메트릭

다음 메트릭을 사용하여 브로커 Ingress를 디버그하고, 수행 방법을 확인하고, Ingress 구성 요소에서 전달되는 이벤트를 확인할 수 있습니다.

메트릭 이름설명유형태그단위

event_count

브로커가 수신한 이벤트 수.

카운터

broker_name, event_type, namespace_name, response_code, response_code_class, unique_name

정수(단위 없음)

event_dispatch_latencies

이벤트를 채널로 전달하는 데 걸린 시간입니다.

히스토그램

broker_name, event_type, namespace_name, response_code, response_code_class, unique_name

밀리초

10.1.4.2. 브로커 필터 메트릭

다음 메트릭을 사용하여 브로커 필터를 디버그하고, 수행 방법을 확인하고, 필터에서 전달되는 이벤트를 확인할 수 있습니다. 이벤트에서 필터링 작업의 대기 시간을 측정할 수도 있습니다.

메트릭 이름설명유형태그단위

event_count

브로커가 수신한 이벤트 수.

카운터

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

정수(단위 없음)

event_dispatch_latencies

이벤트를 채널로 전달하는 데 걸린 시간입니다.

히스토그램

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

밀리초

event_processing_latencies

트리거 구독자에게 전달되기 전에 이벤트를 처리하는 데 걸리는 시간입니다.

히스토그램

broker_name, container_name, filter_type, namespace_name, trigger_name, unique_name

밀리초

10.1.4.3. InMemoryChannel 디스패처 메트릭

다음 메트릭을 사용하여 InMemoryChannel 채널을 디버그하고, 어떻게 수행하는지, 채널에서 디스패치 중인 이벤트를 확인할 수 있습니다.

메트릭 이름설명유형태그단위

event_count

InMemoryChannel 채널에서 디스패치하는 이벤트 수.

카운터

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

정수(단위 없음)

event_dispatch_latencies

InMemoryChannel 채널에서 이벤트를 디스패치하는 데 걸린 시간.

히스토그램

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

밀리초

10.1.4.4. 이벤트 소스 메트릭

다음 메트릭을 사용하여 이벤트 소스에서 연결된 이벤트 싱크로 이벤트가 전달되었는지 확인할 수 있습니다.

메트릭 이름설명유형태그단위

event_count

이벤트 소스에서 보낸 이벤트 수입니다.

카운터

broker_name, container_name, filter_type, namespace_name, response_code, response_code_class, trigger_name, unique_name

정수(단위 없음)

retry_event_count

처음에 이벤트 소스가 전송되지 못한 후 이벤트 소스에 의해 전송되는 재시도 이벤트 수입니다.

카운터

event_source, event_type, name, namespace_name, resource_group, response_code, response_code_class, response_error, response_timeout

정수(단위 없음)

10.1.5. Knative Serving 메트릭

클러스터 관리자는 Knative Serving 구성 요소에 대한 다음 메트릭을 볼 수 있습니다.

10.1.5.1. 활성화기 메트릭

다음 메트릭을 사용하여 트래픽이 활성화기를 통해 전달될 때 애플리케이션이 응답하는 방식을 파악할 수 있습니다.

메트릭 이름설명유형태그단위

request_concurrency

활성화기 또는 보고 기간에 평균 동시성으로 라우팅되는 동시 요청 수입니다.

게이지

configuration_name, container_name, namespace_name, pod_name, revision_name, service_name

정수(단위 없음)

request_count

활성화기로 라우팅되는 요청 수입니다. 이러한 요청은 활성화기 처리기에서 실행된 요청입니다.

카운터

configuration_name, container_name, namespace_name, pod_name, response_code, response_code_class, revision_name, service_name,

정수(단위 없음)

request_latencies

실행된 라우팅된 요청에 대한 응답 시간(밀리초)입니다.

히스토그램

configuration_name, container_name, namespace_name, pod_name, response_code, response_code_class, revision_name, service_name

밀리초

10.1.5.2. 자동 스케일러 메트릭

자동 스케일러 구성 요소는 각 버전의 자동 스케일러 동작과 관련된 여러 메트릭을 표시합니다. 예를 들어, 자동 스케일러가 서비스에 할당하려는 대상 Pod 수, 안정적인 기간 동안 초당 평균 요청 수 또는 Knative Pod 자동 스케일러(KPA)를 사용하는 경우 자동 스케일러가 패닉 모드인지를 모니터링할 수 있습니다.

메트릭 이름설명유형태그단위

desired_pods

자동 스케일러가 서비스에 할당하려는 Pod 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

excess_burst_capacity

stable 창에서 제공되는 추가 버스트 용량입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

stable_request_concurrency

stable 창에서 모니터링되는 각 pod의 평균 요청 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

panic_request_concurrency

panic 창에서 모니터링되는 각 Pod의 평균 요청 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

target_concurrency_per_pod

자동 스케일러가 각 pod에 보내려는 동시 요청 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

stable_requests_per_second

stable 창에서 모니터링되는 각 pod의 평균 요청 수(초당)입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

panic_requests_per_second

panic 창에서 모니터링되는 각 Pod의 평균 요청 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

target_requests_per_second

각 pod에 대해 자동 스케일러가 대상으로 하는 초당 요청 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

panic_mode

자동 스케일러가 패닉 모드이면 이 값은 1이며 자동 스케일러가 패닉 모드가 아닌 경우 0입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

requested_pods

Kubernetes 클러스터에서 자동 스케일러가 요청한 Pod 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

actual_pods

할당되어 있고 현재 준비 상태인 Pod 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

not_ready_pods

준비되지 않은 상태의 Pod 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

pending_pods

현재 보류 중인 pod 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

terminating_pods

현재 종료 중인 Pod 수입니다.

게이지

configuration_name, namespace_name, revision_name, service_name

정수(단위 없음)

10.1.5.3. Go 런타임 메트릭

각 Knative Serving 컨트롤 플레인 프로세스는 수많은 Go 런타임 메모리 통계(MemStats)를 출력합니다.

참고

각 메트릭의 name 태그는 빈 태그입니다.

메트릭 이름설명유형태그단위

go_alloc

할당된 힙 오브젝트의 바이트 수입니다. 이 메트릭은 heap_alloc과 동일합니다.

게이지

name

정수(단위 없음)

go_total_alloc

힙 오브젝트에 할당된 누적 바이트 수입니다.

게이지

name

정수(단위 없음)

go_sys

운영 체제에서 얻은 총 메모리 바이트 수입니다.

게이지

name

정수(단위 없음)

go_lookups

런타임에서 수행하는 포인터 검색 수입니다.

게이지

name

정수(단위 없음)

go_mallocs

할당된 힙 오브젝트의 누적 개수입니다.

게이지

name

정수(단위 없음)

go_frees

해제된 힙 오브젝트의 누적 개수입니다.

게이지

name

정수(단위 없음)

go_heap_alloc

할당된 힙 오브젝트의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_heap_sys

운영 체제에서 얻은 힙 메모리의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_heap_idle

유휴 상태의 사용되지 않는 범위의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_heap_in_use

현재 사용 중인 범위의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_heap_released

운영 체제로 반환되는 실제 메모리의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_heap_objects

할당된 힙 오브젝트 수입니다.

게이지

name

정수(단위 없음)

go_stack_in_use

현재 사용 중인 스택 범위의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_stack_sys

운영 체제에서 얻은 스택 메모리의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_mspan_in_use

할당된 mspan 구조의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_mspan_sys

mspan 구조의 운영 체제에서 얻은 메모리 바이트 수입니다.

게이지

name

정수(단위 없음)

go_mcache_in_use

할당된 mcache 구조의 바이트 수입니다.

게이지

name

정수(단위 없음)

go_mcache_sys

mcache 구조의 운영 체제에서 얻은 메모리 바이트 수입니다.

게이지

name

정수(단위 없음)

go_bucket_hash_sys

버킷 해시 테이블 프로파일에서의 메모리 바이트 수입니다.

게이지

name

정수(단위 없음)

go_gc_sys

가비지 컬렉션 메타데이터의 메모리 바이트 수입니다.

게이지

name

정수(단위 없음)

go_other_sys

기타, 오프-힙 런타임 할당의 메모리 바이트 수입니다.

게이지

name

정수(단위 없음)

go_next_gc

다음 가비지 컬렉션 사이클의 대상 힙 크기입니다.

게이지

name

정수(단위 없음)

go_last_gc

마지막 가비지 컬렉션이Epoch 또는 Unix 시간으로 완료된 시간입니다.

게이지

name

나노초

go_total_gc_pause_ns

프로그램이 시작된 이후 가비지 컬렉션 stop-the-world 일시 중지의 누적 시간입니다

게이지

name

나노초

go_num_gc

완료된 가비지 컬렉션 사이클 수입니다.

게이지

name

정수(단위 없음)

go_num_forced_gc

가비지 컬렉션 기능을 호출하는 애플리케이션으로 인해 강제된 가비지 컬렉션 사이클의 수입니다.

게이지

name

정수(단위 없음)

go_gc_cpu_fraction

프로그램이 시작된 이후 가비지 컬렉터에서 사용한 프로그램의 사용 가능한 일부 CPU 시간입니다.

게이지

name

정수(단위 없음)