Milvus 모니터링 프레임워크 개요
이 주제에서는 Milvus가 Prometheus를 사용하여 메트릭을 모니터링하고 Grafana를 사용하여 메트릭을 시각화하고 경고를 생성하는 방법에 대해 설명합니다.
Milvus의 Prometheus
Prometheus는 Kubernetes 구현을 위한 오픈 소스 모니터링 및 알림 도구 키트입니다. 메트릭을 시계열 데이터로 수집하고 저장합니다. 즉, 메트릭은 기록될 때 타임스탬프와 함께 레이블이라고 하는 선택적 키-값 쌍과 함께 저장됩니다.
현재 Milvus는 Prometheus의 다음 구성 요소를 사용합니다:
- 내보내기가 설정한 엔드포인트에서 데이터를 가져오는 Prometheus 엔드포인트.
- Prometheus 모니터링 인스턴스를 효과적으로 관리하기 위한 Prometheus 운영자.
- 엔드투엔드 Kubernetes 클러스터 모니터링을 쉽게 운영할 수 있는 Kube-prometheus.
메트릭 이름
Prometheus의 유효한 메트릭 이름에는 네임스페이스, 서브시스템, 이름이라는 세 가지 요소가 포함됩니다. 이 세 가지 요소는 "_"로 연결됩니다.
Prometheus에서 모니터링하는 Milvus 메트릭의 네임스페이스는 "milvus"입니다. 메트릭이 속한 역할에 따라 하위 시스템은 다음 8가지 역할 중 하나에 속해야 합니다: "rootcoord", "proxy", "querycoord", "querynode", "indexcoord", "indexnode", "datacoord", "datanode".
예를 들어, 쿼리된 벡터의 총 수를 계산하는 Milvus 메트릭의 이름은 milvus_proxy_search_vectors_count
입니다.
메트릭 유형
Prometheus는 네 가지 유형의 메트릭을 지원합니다:
- 카운터: 재시작 시에만 값이 증가하거나 0으로 초기화될 수 있는 누적 메트릭 유형입니다.
- 게이지: 값이 올라가거나 내려갈 수 있는 메트릭 유형입니다.
- 히스토그램: 구성 가능한 버킷을 기준으로 카운트되는 메트릭 유형입니다. 일반적인 예로는 요청 지속 시간이 있습니다.
- 요약: 히스토그램과 유사한 메트릭 유형으로 슬라이딩 시간 창에 대해 구성 가능한 사분위수를 계산합니다.
메트릭 레이블
Prometheus는 동일한 메트릭 이름을 가진 샘플에 레이블을 지정하여 구분합니다. 레이블은 메트릭의 특정 속성입니다. 이름이 같은 메트릭은 variable_labels
필드에 대해 동일한 값을 가져야 합니다. 다음 표에는 Milvus 메트릭의 일반적인 레이블 이름과 의미가 나와 있습니다.
레이블 이름 | 정의 | 값 |
---|---|---|
"node_id" | 역할의 고유 ID. | 밀버스에서 생성된 전 세계적으로 고유한 ID입니다. |
"status" | 처리된 작업 또는 요청의 상태입니다. | "포기", "성공" 또는 "실패". |
"쿼리 유형" | 읽기 요청의 유형입니다. | "검색" 또는 "쿼리". |
"msg_type" | 메시지 유형입니다. | "삽입", "삭제", "검색" 또는 "쿼리". |
"세그먼트_상태" | 세그먼트의 상태입니다. | "봉인됨", "성장 중", "플러시됨", "플러싱", "삭제됨" 또는 "가져오기". |
"캐시 상태" | 캐시된 객체의 상태. | "히트" 또는 "미스". |
"캐시_이름" | 캐시된 객체의 이름입니다. 이 레이블은 "cache_state" 레이블과 함께 사용됩니다. | 예: "컬렉션ID", "스키마" 등. |
"채널_이름" | 메시지 저장소의 물리적 토픽(Pulsar 또는 Kafka). | 예: "by-dev-rootcoord-dml_0", "by-dev-rootcoord-dml_255" 등. |
"function_name" | 특정 요청을 처리하는 함수의 이름입니다. | 예: "CreateCollection", "CreatePartition", "CreateIndex" 등. |
"user_name" | 인증에 사용되는 사용자 이름입니다. | 원하는 사용자 이름입니다. |
"index_task_status" | 메타 저장소에 있는 인덱스 작업의 상태입니다. | "미발급", "진행 중", "실패", "완료" 또는 "재활용". |
Milvus의 Grafana
Grafana는 모든 데이터 소스와 연결할 수 있는 오픈 소스 시각화 스택입니다. 메트릭을 가져와서 사용자가 방대한 데이터를 이해하고, 분석하고, 모니터링할 수 있도록 도와줍니다.
Milvus는 메트릭 시각화를 위해 Grafana의 사용자 지정 가능한 대시보드를 사용합니다.
다음 단계
모니터링 및 알림의 기본 워크플로우에 대해 알아본 후 다음을 학습하세요: