Raft 텔레메트리

Raft 텔레메트리

Raft 텔레메트리는 Vault 통합 스토리지에 대한 정보를 제공합니다.

출처: 문서

본문

기본 메트릭

vault.raft.apply

Metric type Value Description
counter number 구성된 간격의 트랜잭션 수

vault.raft.apply 메트릭은 Raft 내부 스토리지의 쓰기 부하를 나타내는 일반적으로 좋은 지표입니다.

vault.raft.barrier

Metric type Value Description
counter number 노드가 배리어(barrier)를 시작한 횟수

노드는 유한 상태 머신에 적용해야 하는 모든 대기 작업이 제대로 큐에 들어가도록 보장하고 싶을 때 블로킹 호출을 발행해 배리어(barrier)를 시작합니다.

vault.raft.candidate.electSelf

Metric type Value Description
summary ms 노드가 피어에게 투표 요청을 보내는 데 필요한 시간

vault.raft.commitNumLogs

Metric type Value Description
gauge number 단일 배치에서 유한 상태 머신 적용을 위해 처리된 로그 수

vault.raft.commitTime

Metric type Value Description
summary ms 리더 노드의 Raft 로그에 새 엔트리를 커밋하는 데 필요한 시간

vault.raft.compactLogs

Metric type Value Description
summary ms 불필요한 로그를 정리(trim)하는 데 필요한 시간

vault.raft.fsm.apply

Metric type Value Description
summary number 마지막 간격 이후 유한 상태 머신(finite state machine)이 커밋한 로그 수

vault.raft.fsm.applyBatch

Metric type Value Description
summary ms 유한 상태 머신이 가장 최근의 로그 배치를 적용하는 데 필요한 시간

vault.raft.fsm.applyBatchNum

Metric type Value Description
counter number 가장 최근 배치에서 적용된 로그 수

vault.raft.fsm.enqueue

Metric type Value Description
summary ms 유한 상태 머신이 적용할 로그 배치를 큐에 넣는 데 필요한 시간

vault.raft.fsm.restore

Metric type Value Description
summary ms 유한 상태 머신이 스냅샷에서 복원 작업을 완료하는 데 필요한 시간

vault.raft.fsm.snapshot

Metric type Value Description
summary ms 유한 상태 머신이 현재 스냅샷에 대한 상태 정보를 기록하는 데 필요한 시간

vault.raft.fsm.store_config

Metric type Value Description
summary ms 가장 최근의 Raft 구성을 저장하는 데 필요한 시간

vault.raft.get

Metric type Value Description
summary ms 기본 스토리지에서 엔트리를 검색하는 데 필요한 시간

vault.raft.list

Metric type Value Description
summary ms 기본 스토리지에서 키 목록을 검색하는 데 필요한 시간

vault.raft.peers

Metric type Value Description
guage number Raft 클러스터 구성의 피어 수

vault.raft.restore

Metric type Value Description
counter number 노드가 복원(restore) 작업을 수행한 횟수

Raft 스토리지 맥락에서 복원(restore) 작업은 Raft가 상태를 복원하기 위해 외부 스냅샷을 소비하는 과정을 말합니다.

vault.raft.restoreUserSnapshot

Metric type Value Description
timer ms 사용자 스냅샷에서 유한 상태 머신을 복원하는 데 필요한 시간

vault.raft.rpc.appendEntries

Metric type Value Description
timer ms 노드의 원격 appendEntries 호출을 처리하는 데 필요한 시간

vault.raft.rpc.appendEntries.processLogs

Metric type Value Description
timer ms 주어진 노드에 대한 미처리(outstanding) 로그를 완전히 처리하는 데 필요한 시간

vault.raft.rpc.appendEntries.storeLogs

Metric type Value Description
timer ms 주어진 노드에 대해 마지막 append entries 요청 이후 미처리 로그를 기록하는 데 필요한 시간

vault.raft.rpc.installSnapshot

Metric type Value Description
timer ms installSnapshot RPC 호출을 처리하는 데 필요한 시간

현재 follower 상태인 노드만 vault.raft.rpc.installSnapshot 메트릭을 보고합니다.

vault.raft.rpc.processHeartbeat

Metric type Value Description
timer ms 하트비트 요청을 처리하는 데 필요한 시간

vault.raft.rpc.requestVote

Metric type Value Description
summary ms requestVote 호출을 완료하는 데 필요한 시간

vault.raft.snapshot.create

Metric type Value Description
timer ms 새 스냅샷을 캡처하는 데 필요한 시간

vault.raft.snapshot.persist

Metric type Value Description
timer ms 스냅샷을 만드는 동안 스냅샷 메타 정보를 디스크에 기록하는 데 필요한 시간

vault.raft.snapshot.takeSnapshot

Metric type Value Description
timer ms 현재 스냅샷을 생성·영속화하는 데 필요한 총 시간

대부분의 경우 vault.raft.snapshot.takeSnapshotvault.raft.snapshot.create + vault.raft.snapshot.persist와 거의 같습니다.

vault.raft.state.candidate

Metric type Value Description
counter number Raft 서버가 선거를 시작한 횟수

vault.raft.state.follower

Metric type Value Description
summary number 구성된 간격 동안 Raft 서버가 팔로워가 된 횟수

노드는 다음 조건에서 follower 상태로 전환됩니다.

  • when the node joins the cluster
  • when a leader is elected, but the node was not elected leader

vault.raft.state.leader

Metric type Value Description
counter number Raft 서버가 리더가 된 횟수

vault.raft.transition.heartbeat_timeout

Metric type Value Description
summary number 마지막으로 알려진 리더로부터 하트비트 메시지를 받지 못해 노드가 candidate 상태로 전환한 횟수

vault.raft.transition.leader_lease_timeout

Metric type Value Description
counter number 리더가 쿼럼의 노드에 접촉하지 못해 내려온(step down) 횟수

vault.raft.verify_leader

Metric type Value Description
counter number 구성된 간격 동안 노드가 여전히 리더임을 확인한 횟수

Autopilot metrics

참고(Note)

Autopilot은 활성 노드에서만 실행되므로 autopilot 메트릭은 현재 활성 노드에 대해서만 수집됩니다.

vault.autopilot.failure_tolerance

Metric type Value Description
gauge nodes 쿼럼을 초과하는 정상 노드 수

실패 허용치(failure tolerance)는 쿼럼을 잃지 않고 얼마나 많은 현재 정상 노드가 실패할 수 있는지 나타냅니다.

vault.autopilot.healthy

Metric type Value Description
gauge boolean 모든 노드가 정상인지 여부를 나타냄
  • A value of 1 on the gauge means that Autopilot deems all nodes healthy.
  • A value of 0 on the gauge means that Autopilot deems at least 1 node

비정상.

vault.autopilot.node.healthy

Metric type Value Description
gauge boolean 활성(active) 노드가 정상인지 여부를 나타냄
  • A value of 1 on the gauge means that Autopilot deems the node indicated by

node_id는 정상입니다.

  • A value of 0 on the gauge means that Autopilot cannot communicate with the

node_id가 가리키는 노드를 정상으로 간주하거나, 그 노드를 비정상으로 간주합니다.

Leadership change metrics

리더십 변경 메트릭은 Raft 서버의 통합 스토리지와 Raft 노드 간 네트워크 연결의 전반적인 성능을 나타냅니다.

vault.raft.leader.dispatchLog

Metric type Value Description
timer ms 리더 노드가 로그 엔트리를 디스크에 쓰는 데 필요한 시간

vault.raft.leader.dispatchNumLogs

Metric type Value Description
gauge number 가장 최근 배치에서 디스크에 커밋된 로그 수

vault.raft.leader.lastContact

Metric type Value Description
summary ms 리더가 리더 임대(leader lease)를 확인할 때 팔로워 노드에 마지막으로 접촉할 수 있었던 이후 경과 시간

Raft replication metrics

vault.raft.replication.appendEntries.log

Metric type Value Description
summary number 리더 로그와 동등성(parity)을 확립하기 위해 노드에 복제된 로그 수

vault.raft.replication.appendEntries.rpc

Metric type Value Description
timer ms appendEntries로 리더 노드 로그 엔트리를 모든 팔로워 노드에 복제하는 데 필요한 시간

vault.raft.replication.heartbeat

Metric type Value Description
timer ms 피어가 타임아웃되지 않도록 피어에서 appendEntries를 호출하는 데 필요한 시간

vault.raft.replication.installSnapshot

Metric type Value Description
timer ms installSnapshot RPC 호출을 처리하는 데 필요한 시간

현재 follower 상태인 노드만 vault.raft.replication.installSnapshot 메트릭을 보고합니다.

Storage metrics

vault.raft_storage.bolt.cursor.count

Metric type Value Description
gauge number Bolt 데이터베이스에서 생성된 커서 수

vault.raft_storage.bolt.freelist.allocated_bytes

Metric type Value Description
gauge bytes Bolt 데이터베이스 프리리스트에 할당된 총 공간

vault.raft_storage.bolt.freelist.free_pages

Metric type Value Description
gauge number Bolt 데이터베이스 프리리스트(freelist)의 빈 페이지 수

vault.raft_storage.bolt.freelist.pending_pages

Metric type Value Description
gauge number Bolt 데이터베이스 프리리스트의 대기 페이지 수

vault.raft_storage.bolt.freelist.used_bytes

Metric type Value Description
gauge bytes Bolt 데이터베이스 프리리스트가 사용하는 총 공간

vault.raft_storage.bolt.node.count

Metric type Value Description
gauge number Bolt 데이터베이스의 노드 할당 수

vault.raft_storage.bolt.node.dereferences

Metric type Value Description
gauge number Bolt 데이터베이스의 노드 역참조 총 수

vault.raft_storage.bolt.page.bytes_allocated

Metric type Value Description
gauge bytes Bolt 데이터베이스에 할당된 총 공간

vault.raft_storage.bolt.page.count

Metric type Value Description
gauge number Bolt 데이터베이스의 페이지 할당 수

vault.raft_storage.bolt.rebalance.count

Metric type Value Description
gauge number Bolt 데이터베이스가 수행한 노드 리밸런스 수

vault.raft_storage.bolt.rebalance.time

Metric type Value Description
summary ms Bolt 데이터베이스가 노드를 리밸런스하는 데 필요한 시간

vault.raft_storage.bolt.spill.count

Metric type Value Description
gauge number Bolt 데이터베이스가 넘친(spill) 노드 수

vault.raft_storage.bolt.spill.time

Metric type Value Description
summary ms Bolt 데이터베이스가 넘침(spill)에 쓴 총 시간

vault.raft_storage.bolt.split.count

Metric type Value Description
gauge number Bolt 데이터베이스가 분할한 노드 수

vault.raft_storage.bolt.transaction.currently_open_read_transactions

Metric type Value Description
gauge number Bolt DB의 프로세스 내 읽기 트랜잭션 수

vault.raft_storage.bolt.transaction.started_read_transactions

Metric type Value Description
gauge number Bolt DB가 시작한 읽기 트랜잭션 수

vault.raft_storage.bolt.write.count

Metric type Value Description
gauge number Bolt 데이터베이스가 수행한 쓰기 수

vault.raft_storage.bolt.write.time

Metric type Value Description
counter ms Bolt 데이터베이스가 디스크에 쓰는 데 소비한 누적 총 시간

vault.raft_storage.follower.applied_index_delta

Metric type Value Description
gauge number 에코가 보고한 리더 적용 인덱스와 팔로워 적용 인덱스의 차이

vault.raft_storage.follower.last_heartbeat_ms

Metric type Value Description
gauge ms 팔로워가 마지막으로 하트비트 요청을 받은 이후 경과 시간

vault.raft_storage.stats.applied_index

Metric type Value Description
gauge number 유한 상태 머신에 마지막으로 적용되거나 fsm_pending queue에 추가된 Raft 로그의 최고 인덱스

vault.raft_storage.stats.commit_index

Metric type Value Description
gauge number 노드의 디스크에 커밋된 마지막 Raft 로그 인덱스

vault.raft_storage.stats.fsm_pending

Metric type Value Description
gauge number 유한 상태 머신이 적용하도록 노드가 큐에 넣은 Raft 로그 수

vault.raft-storage.delete

Metric type Value Description
timer ms 삭제 경로에 로그 엔트리를 삽입하는 데 필요한 시간

vault.raft-storage.entry_size

Metric type Value Description
summary bytes 로그 적용 중 Raft 엔트리의 총 크기

vault.raft-storage.get

Metric type Value Description
timer ms 유한 상태 머신에서 주어진 경로의 값을 검색하는 데 필요한 시간

vault.raft-storage.list

Metric type Value Description
timer ms 유한 상태 머신에서 프리픽스 아래의 모든 엔트리를 나열하는 데 필요한 시간

vault.raft-storage.put

Metric type Value Description
timer ms 영속 경로에 로그 엔트리를 삽입하는 데 필요한 시간

vault.raft-storage.transaction

Metric type Value Description
timer ms 단일 로그에 작업을 삽입하는 데 필요한 시간

Write-ahead logging (WAL) metrics

실험적(Experimental)

vault.raft.wal.head-truncations

Metric type Value Description
counter number 헤드에서 잘려진(truncated) 로그 엔트리 수

헤드에서(즉, 가장 오래된 엔트리에서) 잘려진 로그 엔트리 수를 셉니다.

시간에 따른 헤드 절단(truncation)의 변화율을 추적하면 개별 truncate 호출이 스파이크로 나타납니다.

실험적(Experimental)

vault.raft.wal.tail-truncations

Metric type Value Description
counter number 테일에서 잘려진 로그 엔트리 수

테일에서(즉, 가장 최신 엔트리에서) 잘려진 로그 엔트리 수를 셉니다.

시간에 따른 테일 절단의 변화율을 추적하면 개별 truncate 호출이 스파이크로 나타납니다.

실험적(Experimental)

vault.raft.wal.log-entries-read

Metric type Value Description
counter number GetLog() 호출 수

실험적(Experimental)

vault.raft.wal.log-entries-written

Metric type Value Description
counter number 기록된 엔트리 수

실험적(Experimental)

vault.raft.wal.log-entry-bytes-read

Metric type Value Description
counter number 디코딩 전에 세그먼트에서 읽은 로그 엔트리 바이트 수

log-entry-bytes-read 카운터는 기술적으로 과대 추정입니다. 헤더, 인덱스 엔트리, 버퍼에 들어가지 못할 만큼 큰 엔트리에 대한 2차 읽기의 바이트를 포함하기 때문입니다.

실험적(Experimental)

vault.raft.wal.log-entry-bytes-written

Metric type Value Description
counter number Codec으로 인코딩한 후의 로그 엔트리 바이트 수

log-entry-bytes-written 카운터는 기술적으로 과대 추정입니다. 헤더와 인덱스 엔트리의 바이트를 포함하기 때문입니다.

실험적(Experimental)

vault.raft.wal.stable-gets

Metric type Value Description
counter number StableStore.Get() 또는 GetUint64() 호출 수

실험적(Experimental)

vault.raft.wal.stable-sets

Metric type Value Description
counter number StableStore.Set() 또는 SetUint64() 호출 수

실험적(Experimental)

vault.raft.wal.log-appends

Metric type Value Description
counter number StoreLog() 호출 수

StoreLog() 호출로 로그에 추가된 엔트리 배치 수를 셉니다.

실험적(Experimental)

vault.raft.wal.segment-rotations

Metric type Value Description
counter number Vault가 새 세그먼트 파일로 전환한 횟수

실험적(Experimental)

vault.raft.wal.last-segment-age-seconds

Metric type Value Description
gauge seconds 세그먼트 생성과 시일(seal) 사이의 초 수

last-segment-age-seconds 게이지는 세그먼트가 생성된 시점과 시일(seal)된 시점 사이의 초 수를 보여줍니다. Vault가 세그먼트를 회전할 때마다 이 게이지는 리셋되며, 쓰기가 얼마나 빨리 디스크를 채우는지에 대한 대략적인 추정을 제공합니다.

더 알아보기 (Learn more)