모니터링

모니터링 (Monitoring)

Cassandra의 메트릭은 Dropwizard Metrics 라이브러리로 관리됩니다. 메트릭은 JMX, 가상 테이블을 통해 조회하거나, 다양한 내장 리포터 또는 서드파티 리포터 플러그인을 사용해 외부 모니터링 시스템으로 밀어낼 수 있어요.

메트릭은 단일 노드에 대해 수집됩니다. 그것들을 집계하는 것은 운영자가 외부 모니터링 시스템을 사용해 처리해야 합니다.

출처: 문서

본문

메트릭 유형 (Metric Types)

Cassandra가 보고하는 모든 메트릭은 다음 유형 중 하나에 속합니다.

Gauge 값의 순간 측정.

Counter AtomicLong 인스턴스에 대한 gauge. 보통 마지막 호출 이후의 변화를 모니터링해 정상에 비해 큰 증가가 있는지 확인하는 데 소비됩니다.

Histogram 데이터 스트림에서 값의 통계적 분포를 측정합니다. 최소, 최대, 평균 등에 더해 중앙값, 75번째, 90번째, 95번째, 98번째, 99번째, 99.9번째 백분위수도 측정합니다.

Timer 특정 코드가 호출되는 비율과 그 지속 시간의 히스토그램을 모두 측정합니다.

Latency 타이머(마이크로초 단위 지연 시간 추적)와 시작 이후 누적된 총 지연 시간을 추적하는 카운터를 갖춘 특수 유형입니다. 전자는 마지막 검사 이후의 총 지연 시간 변화를 추적하는 경우 유용해요. 이 유형의 각 메트릭 이름에는 'Latency'와 'TotalLatency'가 추가됩니다.

Meter 평균 처리량과 1분, 5분, 15분 지수 가중 평균 처리량을 측정하는 미터 메트릭.

테이블 메트릭 (Table Metrics)

Cassandra의 각 테이블은 그 상태와 성능을 추적하는 메트릭을 가집니다.

메트릭 이름은 모두 특정 키스페이스와 테이블 이름으로 끝나요.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Table.<MetricName>.<Keyspace>.<Table>

JMX MBean org.apache.cassandra.metrics:type=Table keyspace=<Keyspace> scope=<Table> name=<MetricName>

keyspace가 없는 'all'이라는 특수 테이블이 있습니다. 이는 노드의 모든 테이블과 키스페이스에 걸친 메트릭의 집계를 나타냅니다.

이름 타입 설명
MemtableOnHeapSize Gauge 온힙에 저장된 멤테이블의 총 데이터 양(컬럼 관련 오버헤드와 덮어쓴 파티션 포함)
MemtableOffHeapSize Gauge 오프힙에 저장된 멤테이블의 총 데이터 양(컬럼 관련 오버헤드와 덮어쓴 파티션 포함)
MemtableLiveDataSize Gauge 멤테이블에 저장된 총 라이브 데이터 양(데이터 구조 오버헤드 제외)
AllMemtablesOnHeapSize Gauge 온힙에 저장된 멤테이블(2i와 보류 중인 플러시 멤테이블 포함)의 총 데이터 양
AllMemtablesOffHeapSize Gauge 오프힙에 저장된 멤테이블(2i와 보류 중인 플러시 멤테이블 포함)의 총 데이터 양
AllMemtablesLiveDataSize Gauge 멤테이블(2i와 보류 중인 플러시 멤테이블 포함)에 저장된 총 라이브 데이터 양, 데이터 구조 오버헤드 제외
MemtableColumnsCount Gauge 멤테이블에 존재하는 총 컬럼 수
MemtableSwitchCount Counter 플러시로 멤테이블이 전환된 횟수
CompressionRatio Gauge 모든 SSTable의 현재 압축 비율
EstimatedPartitionSizeHistogram Gauge<long[]> 추정 파티션 크기(바이트)의 히스토그램
EstimatedPartitionCount Gauge 테이블의 대략적인 키 수
EstimatedColumnCountHistogram Gauge<long[]> 추정 컬럼 수의 히스토그램
SSTablesPerReadHistogram Histogram 단일 파티션 읽기당 접근한 sstable 데이터 파일 수의 히스토그램. Bloom Filter, min-max key, 파티션 인덱스 조회로 건너뛴 SSTable은 포함되지 않음
ReadLatency Latency 이 테이블의 로컬 읽기 지연 시간
RangeLatency Latency 이 테이블의 로컬 범위 스캔 지연 시간
WriteLatency Latency 이 테이블의 로컬 쓰기 지연 시간
CoordinatorReadLatency Timer 이 테이블의 조정자 읽기 지연 시간
CoordinatorWriteLatency Timer 이 테이블의 조정자 쓰기 지연 시간
CoordinatorScanLatency Timer 이 테이블의 조정자 범위 스캔 지연 시간
PendingFlushes Counter 이 테이블에 대해 보류 중인 플러시 작업의 추정 수
BytesFlushed Counter 서버 [재]시작 이후 플러시된 총 바이트 수
CompactionBytesWritten Counter 서버 [재]시작 이후 컴팩션이 쓴 총 바이트 수
PendingCompactions Gauge 이 테이블의 보류 중인 컴팩션 수 추정치
LiveSSTableCount Gauge 이 테이블의 디스크 SSTable 수
LiveDiskSpaceUsed Counter 이 테이블에 속한 SSTable이 사용하는 디스크 공간(바이트)
TotalDiskSpaceUsed Counter GC되기를 기다리는 사용되지 않은 것 포함, 이 테이블에 속한 SSTable이 사용하는 총 디스크 공간
MaxSSTableSize Gauge 이 테이블 SSTable의 최대 크기 — 해당 SSTable의 모든 컴포넌트 물리적 디스크 크기(바이트). 디스크에 SSTable이 없으면 0
MaxSSTableDuration Gauge 이 테이블 SSTable의 최대 기간(밀리초), maxTimestamp - minTimestamp로 계산. min 또는 max 타임스탬프가 Long.MAX_VALUE이면 0
MinPartitionSize Gauge 가장 작은 컴팩션된 파티션의 크기(바이트)
MaxPartitionSize Gauge 가장 큰 컴팩션된 파티션의 크기(바이트)
MeanPartitionSize Gauge 평균 컴팩션된 파티션의 크기(바이트)
BloomFilterFalsePositives Gauge 테이블 bloom filter의 위양성 수
BloomFilterFalseRatio Gauge 테이블 bloom filter의 위양성 비율
BloomFilterDiskSpaceUsed Gauge bloom filter가 사용하는 디스크 공간(바이트)
BloomFilterOffHeapMemoryUsed Gauge bloom filter가 사용하는 오프힙 메모리
IndexSummaryOffHeapMemoryUsed Gauge 인덱스 요약이 사용하는 오프힙 메모리
CompressionMetadataOffHeapMemoryUsed Gauge 압축 메타데이터가 사용하는 오프힙 메모리
KeyCacheHitRate Gauge 이 테이블의 키 캐시 적중률
TombstoneScannedHistogram Histogram 이 테이블의 쿼리에서 스캔된 툼스톤의 히스토그램
TombstoneWarnings Counter 툼스톤 읽기 경고 수(tombstone_warn_threshold보다 많은 툼스톤을 스캔한 읽기)
TombstoneFailures Counter 툼스톤 읽기 실패 수(tombstone_failure_threshold보다 많은 툼스톤을 스캔한 읽기)
LiveScannedHistogram Histogram 이 테이블의 쿼리에서 스캔된 라이브 셀의 히스토그램
ColUpdateTimeDeltaHistogram Histogram 이 테이블의 컬럼 업데이트 시간 델타의 히스토그램
ViewLockAcquireTime Timer 이 테이블의 구체화된 뷰 업데이트를 위한 파티션 잠금 획득에 걸린 시간
ViewReadTime Timer 구체화된 뷰 업데이트의 로컬 읽기 동안 걸린 시간
TrueSnapshotsSize Gauge 모든 SSTable 컴포넌트를 포함한 이 테이블 스냅샷이 사용하는 디스크 공간
RowCacheHitOutOfRange Counter 쿼리 필터를 충족하지 않아 디스크로 간 테이블 행 캐시 적중 수
RowCacheHit Counter 테이블 행 캐시 적중 수
RowCacheMiss Counter 테이블 행 캐시 미스 수
CasPrepare Latency paxos prepare 라운드 지연 시간
CasPropose Latency paxos propose 라운드 지연 시간
CasCommit Latency paxos commit 라운드 지연 시간
PercentRepaired Gauge 디스크에서 리페어된 테이블 데이터의 백분율
BytesRepaired Gauge 디스크에서 리페어된 테이블 데이터의 크기
BytesUnrepaired Gauge 디스크에서 리페어되지 않은 테이블 데이터의 크기
BytesPendingRepair Gauge 진행 중인 증분 리페어를 위해 격리된 테이블 데이터의 크기
SpeculativeRetries Counter 이 테이블에 대해 추측 재시도가 보내진 횟수
SpeculativeFailedRetries Counter 타임아웃을 막지 못한 추측 재시도 수
SpeculativeInsufficientReplicas Counter 리플리카 부족으로 시도할 수 없었던 추측 재시도 수
SpeculativeSampleLatencyNanos Gauge 추측이 시도되기 전에 기다리는 나노초 수. 값은 정적으로 구성되거나 조정자 지연 시간에 기반해 주기적으로 업데이트될 수 있음
AnticompactionTime Timer 일관성 리페어 전에 안티컴팩션에 보낸 시간
ValidationTime Timer 리페어 중 검증 컴팩션을 하는 데 보낸 시간
SyncTime Timer 리페어 중 스트리밍을 하는 데 보낸 시간
BytesValidated Histogram 검증 중 읽은 바이트 양에 대한 히스토그램
PartitionsValidated Histogram 검증 중 읽은 파티션 수에 대한 히스토그램
BytesAnticompacted Counter 안티컴팩션한 바이트 수
BytesMutatedAnticompaction Counter sstable이 리페어된 범위에 완전히 포함되어 안티컴팩션을 피한 바이트 수
MutatedAnticompactionGauge Gauge 변형된 바이트와 총 리페어된 바이트의 비율

키스페이스 메트릭 (Keyspace Metrics)

Cassandra의 각 키스페이스는 그 상태와 성능을 추적하는 메트릭을 가집니다.

이 메트릭 중 대부분은 위 테이블 메트릭과 같으며, 키스페이스 수준에서 집계된 것입니다. 키스페이스 특정 메트릭은 아래 표에 지정됩니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.keyspace.<MetricName>.<Keyspace>

JMX MBean org.apache.cassandra.metrics:type=Keyspace scope=<Keyspace> name=<MetricName>

이름 타입 설명
WriteFailedIdeaCL Counter 구성된 이상적 일관성 수준을 달성하지 못한 쓰기 수, 구성되지 않았으면 0
IdealCLWriteLatency Latency 구성된 이상적 일관성 수준에서의 조정자 쓰기 지연 시간. 이상적 일관성 수준이 구성되지 않으면 값이 기록되지 않음
RepairTime Timer 리페어 조정자로 보낸 총 시간
RepairPrepareTime Timer 리페어 준비에 보낸 총 시간

스레드 풀 메트릭 (ThreadPool Metrics)

Cassandra는 특정 유형의 작업을 자체 스레드 풀로 분할합니다. 이는 노드의 요청에 대한 백프레셔와 비동기를 제공합니다. 이러한 스레드 풀의 상태를 모니터링하는 것은 중요합니다. 노드가 얼마나 포화되었는지 알려줄 수 있기 때문입니다.

메트릭 이름은 모두 특정 스레드 풀 이름으로 끝나요. 스레드 풀은 또한 특정 유형 아래로 분류됩니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.ThreadPools.<MetricName>.<Path>.<ThreadPoolName>

JMX MBean org.apache.cassandra.metrics:type=ThreadPools path=<Path> scope=<ThreadPoolName> name=<MetricName>

이름 타입 설명
ActiveTasks Gauge 이 풀이 적극적으로 처리 중인 작업 수
PendingTasks Gauge 이 풀에 큐에 쌓인 작업 수
CompletedTasks Counter 완료된 작업 수
TotalBlockedTasks Counter 큐 포화로 차단된 작업 수
CurrentlyBlockedTask Counter 큐 포화로 현재 차단되었지만 재시도 시 풀릴 작업 수
MaxPoolSize Gauge 이 풀의 최대 스레드 수
MaxTasksQueued Gauge 작업이 차단되기 전에 큐에 쌓일 수 있는 최대 작업 수

다음 스레드 풀을 모니터링할 수 있습니다.

이름 타입 설명
Native-Transport-Requests transport 클라이언트 CQL 요청 처리
CounterMutationStage request 카운터 쓰기 담당
ViewMutationStage request 구체화된 뷰 쓰기 담당
MutationStage request 다른 모든 쓰기 담당
ReadRepairStage request 이 스레드 풀에서 읽기 리페어가 발생
ReadStage request 이 스레드 풀에서 로컬 읽기 실행
RequestResponseStage request 이 스레드 풀에서 클러스터에 대한 조정자 요청 실행
AntiEntropyStage internal 리페어용 merkle tree 구축
CacheCleanupExecutor internal 이 스레드 풀에서 캐시 유지보수 수행
CompactionExecutor internal 이 스레드에서 컴팩션 실행
GossipStage internal gossip 요청 처리
HintsDispatcher internal hinted handoff 수행
InternalResponseStage internal 클러스터 내 콜백 담당
MemtableFlushWriter internal 멤테이블을 디스크에 기록
MemtablePostFlush internal 멤테이블이 디스크에 기록된 후 커밋 로그 정리
MemtableReclaimMemory internal 멤테이블 재활용
MigrationStage internal 스키마 마이그레이션 실행
MiscStage internal 기타 작업이 여기서 실행
PendingRangeCalculator internal 토큰 범위 계산
PerDiskMemtableFlushWriter_0 internal 스펙 쓰기 담당(디스크마다 하나씩, 0-N)
Sampler internal SSTable의 인덱스 요약 재샘플링 담당
SecondaryIndexManagement internal 이차 인덱스 업데이트 수행
ValidationExecutor internal 검증 컴팩션 또는 스크러빙 수행
ViewBuildExecutor internal 구체화된 뷰 초기 빌드 수행

클라이언트 요청 메트릭 (Client Request Metrics)

클라이언트 요청은 조정자 수준에서 발생하는 작업을 캡슐화한 자체 메트릭 집합을 가집니다.

다른 유형의 클라이언트 요청은 RequestType별로 나뉩니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.ClientRequest.<MetricName>.<RequestType>

JMX MBean org.apache.cassandra.metrics:type=ClientRequest scope=<RequestType> name=<MetricName>

RequestType: CASRead 설명: 트랜잭션 읽기 요청과 관련된 메트릭. 메트릭:

이름 타입 설명
Timeouts Counter 마주친 타임아웃 수
Failures Counter 마주친 트랜잭션 실패 수
Latency Transaction 트랜잭션 읽기 지연 시간
Unavailables Counter 마주친 사용 불가 예외 수
UnfinishedCommit Counter 읽기에서 커밋된 트랜잭션 수
ConditionNotMet Counter 트랜잭션 전제 조건이 현재 값과 일치하지 않은 수
ContentionHistogram Histogram 마주친 경쟁 읽기 수

RequestType: CASWrite 설명: 트랜잭션 쓰기 요청과 관련된 메트릭. 메트릭:

이름 타입 설명
Timeouts Counter 마주친 타임아웃 수
Failures Counter 마주친 트랜잭션 실패 수
Latency Transaction 트랜잭션 쓰기 지연 시간
Unavailables Counter 마주친 사용 불가 예외 수
UnfinishedCommit Counter 쓰기에서 커밋된 트랜잭션 수
ConditionNotMet Counter 트랜잭션 전제 조건이 현재 값과 일치하지 않은 수
ContentionHistogram Histogram 마주친 경쟁 쓰기 수
MutationSizeHistogram Histogram 요청 변경의 총 크기(바이트)

RequestType: Read 설명: 표준 읽기 요청과 관련된 메트릭. 메트릭:

이름 타입 설명
Timeouts Counter 마주친 타임아웃 수
Failures Counter 마주친 읽기 실패 수
Latency Transaction 읽기 지연 시간
Unavailables Counter 마주친 사용 불가 예외 수

RequestType: RangeSlice 설명: 토큰 범위 읽기 요청과 관련된 메트릭. 메트릭:

이름 타입 설명
Timeouts Counter 마주친 타임아웃 수
Failures Counter 마주친 범위 쿼리 실패 수
Latency Transaction 범위 쿼리 지연 시간
Unavailables Counter 마주친 사용 불가 예외 수

RequestType: Write 설명: 일반 쓰기 요청과 관련된 메트릭. 메트릭:

이름 타입 설명
Timeouts Counter 마주친 타임아웃 수
Failures Counter 마주친 쓰기 실패 수
Latency Transaction 쓰기 지연 시간
Unavailables Counter 마주친 사용 불가 예외 수
MutationSizeHistogram Histogram 요청 변경의 총 크기(바이트)

RequestType: ViewWrite 설명: 구체화된 뷰 쓰기와 관련된 메트릭. 메트릭:

이름 타입 설명
Timeouts Counter 마주친 타임아웃 수
Failures Counter 마주친 트랜잭션 실패 수
Unavailables Counter 마주친 사용 불가 예외 수
ViewReplicasAttempted Counter 시도된 뷰 리플리카 쓰기 총 수
ViewReplicasSuccess Counter 성공한 뷰 리플리카 쓰기 총 수
ViewPendingMutations Gauge ViewReplicasAttempted - ViewReplicasSuccess
ViewWriteLatency Timer 변경이 베이스 테이블에 적용된 때부터 뷰에서 CL.ONE이 달성될 때까지의 시간

캐시 메트릭 (Cache Metrics)

Cassandra 캐시는 캐시의 효과성을 추적하는 메트릭을 가집니다. 다만 테이블 메트릭이 더 유용할 수 있어요.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Cache.<MetricName>.<CacheName>

JMX MBean org.apache.cassandra.metrics:type=Cache scope=<CacheName> name=<MetricName>

이름 타입 설명
Capacity Gauge 캐시 용량(바이트)
Entries Gauge 총 캐시 항목 수
FifteenMinuteCacheHitRate Gauge 15분 캐시 적중률
FiveMinuteCacheHitRate Gauge 5분 캐시 적중률
OneMinuteCacheHitRate Gauge 1분 캐시 적중률
HitRate Gauge 전체 캐시 적중률
Hits Meter 총 캐시 적중 수
Misses Meter 총 캐시 미스 수
MissLatency Timer 미스의 지연 시간
Requests Gauge 총 캐시 요청 수
Size Gauge 점유된 캐시의 총 크기(바이트)

다음 캐시가 다뤄집니다:

이름 설명
CounterCache 성능을 위해 뜨거운 카운터를 메모리에 유지
ChunkCache 프로세스 내 압축되지 않은 페이지 캐시
KeyCache 파티션에서 sstable 오프셋으로의 캐시
RowCache 메모리에 유지되는 행 캐시

Misses와 MissLatency는 ChunkCache에만 정의됩니다.

CQL 메트릭

CQL prepared statement 캐싱에 특화된 메트릭.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.CQL.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=CQL name=<MetricName>

이름 타입 설명
PreparedStatementsCount Gauge 캐시된 prepared statement 수
PreparedStatementsEvicted Counter prepared statement 캐시에서 축출된 prepared statement 수
PreparedStatementsExecuted Counter 실행된 prepared statement 수
RegularStatementsExecuted Counter 준비되지 않은 문 실행 수
PreparedStatementsRatio Gauge 준비된 문과 준비되지 않은 문의 백분율

DroppedMessage 메트릭

다양한 유형의 요청에 대한 버려진 메시지 추적에 특화된 메트릭. 버려진 쓰기는 Hinted Handoff가 저장하고 재시도합니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.DroppedMessage.<MetricName>.<Type>

JMX MBean org.apache.cassandra.metrics:type=DroppedMessage scope=<Type> name=<MetricName>

이름 타입 설명
CrossNodeDroppedLatency Timer 노드 간 버려진 지연 시간
InternalDroppedLatency Timer 노드 내 버려진 지연 시간
Dropped Meter 버려진 메시지 수

추적되는 서로 다른 메시지 유형:

이름 설명
BATCH_STORE Batchlog 쓰기
BATCH_REMOVE Batchlog 정리(성공적으로 적용된 후)
COUNTER_MUTATION 카운터 쓰기
HINT 힌트 재생
MUTATION 일반 쓰기
READ 일반 읽기
READ_REPAIR 읽기 리페어
PAGED_SLICE 페이징된 읽기
RANGE_SLICE 토큰 범위 읽기
REQUEST_RESPONSE RPC 콜백
_TRACE 트레이싱 쓰기

Streaming 메트릭

리페어, 부트스트랩, 리빌드 같은 Streaming 연산 중 보고되는 메트릭.

이 메트릭은 peer 엔드포인트에 특정하며, 소스 노드가 메트릭을 가져오는 노드입니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Streaming.<MetricName>.<PeerIP>

JMX MBean org.apache.cassandra.metrics:type=Streaming scope=<PeerIP> name=<MetricName>

이름 타입 설명
IncomingBytes Counter peer에서 이 노드로 스트리밍된 바이트 수
OutgoingBytes Counter 이 노드에서 peer 엔드포인트로 스트리밍된 바이트 수

Compaction 메트릭

컴팩션 작업에 특화된 메트릭.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Compaction.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=Compaction name=<MetricName>

이름 타입 설명
BytesCompacted Counter 서버 [재]시작 이후 컴팩션된 총 바이트 수
PendingTasks Gauge 수행할 남은 컴팩션 수 추정치
CompletedTasks Gauge 서버 [재]시작 이후 완료된 컴팩션 수
TotalCompactionsCompleted Meter 서버 [재]시작 이후 완료된 컴팩션 처리량
PendingTasksByTableName Gauge<Map<String, Map<String, Integer>>> 수행할 남은 컴팩션 수 추정치, 키스페이스 및 테이블 이름별로 그룹화. 이 정보는 테이블 메트릭에도 유지됨

CommitLog 메트릭

CommitLog에 특화된 메트릭.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.CommitLog.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=CommitLog name=<MetricName>

이름 타입 설명
CompletedTasks Gauge [재]시작 이후 기록된 커밋 로그 메시지 총 수
PendingTasks Gauge 기록됐지만 아직 fsync되지 않은 커밋 로그 메시지 수
TotalCommitLogSize Gauge 모든 커밋 로그 세그먼트가 사용하는 현재 크기(바이트)
WaitingOnSegmentAllocation Timer CommitLogSegment가 할당되기를 기다리며 보낸 시간 — 정상 조건에서는 0이어야 함
WaitingOnCommit Timer CL fsync를 기다리며 보낸 시간 — Periodic의 경우 동기화가 동기화 간격에 뒤처질 때만 발생

Storage 메트릭

스토리지 엔진에 특화된 메트릭.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Storage.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=Storage name=<MetricName>

이름 타입 설명
Exceptions Counter 잡힌 내부 예외 수. 정상 예외에서는 0이어야 함
Load Counter 이 노드가 관리하는 온디스크 데이터 크기(바이트)
TotalHints Counter [재]시작 이후 이 노드에 기록된 힌트 메시지 수. 힌트당 힌트할 각 호스트에 하나의 항목 포함
TotalHintsInProgress Counter 현재 보내려 시도 중인 힌트 수

HintedHandOff 메트릭

Hinted Handoff에 특화된 메트릭. Storage 메트릭에서 추적되는 힌트 관련 메트릭도 있습니다.

이 메트릭은 메트릭 이름에 peer 엔드포인트를 포함합니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.HintedHandOffManager.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=HintedHandOffManager name=<MetricName>

이름 타입 설명
Hints_created- Counter 이 peer에 대해 디스크에 있는 힌트 수
Hints_not_stored- Counter 구성된 힌트 윈도우를 지나 다운되어 이 peer에 저장되지 않은 힌트 수

HintsService 메트릭

힌트 전달 서비스에 특화된 메트릭. Storage 메트릭에서 추적되는 힌트 관련 메트릭도 있습니다.

이 메트릭은 메트릭 이름에 peer 엔드포인트를 포함합니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.HintsService.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=HintsService name=<MetricName>

이름 타입 설명
HintsSucceeded Meter 성공적으로 전달된 힌트의 미터
HintsFailed Meter 전달에 실패한 힌트의 미터
HintsTimedOut Meter 타임아웃된 힌트의 미터
Hint_delays Histogram 힌트 전달 지연 시간의 히스토그램(밀리초)
Hint_delays- Histogram peer별 힌트 전달 지연 시간의 히스토그램(밀리초)

SSTable Index 메트릭

SSTable 인덱스 메타데이터에 특화된 메트릭.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Index.<MetricName>.RowIndexEntry

JMX MBean org.apache.cassandra.metrics:type=Index scope=RowIndexEntry name=<MetricName>

이름 타입 설명
IndexedEntrySize Histogram 모든 SSTable에 걸친 인덱스의 온힙 크기(바이트) 히스토그램
IndexInfoCount Histogram 모든 SSTable에 걸쳐 관리되는 온힙 인덱스 항목 수의 히스토그램
IndexInfoGets Histogram SSTable마다 수행된 인덱스 탐색 수의 히스토그램

BufferPool 메트릭

Cassandra가 관리하는 내부 재활용 버퍼 풀에 특화된 메트릭. 이 풀은 온/오프 힙 버퍼를 재활용해 할당과 GC를 낮게 유지하기 위한 것입니다.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.BufferPool.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=BufferPool name=<MetricName>

이름 타입 설명
Size Gauge 관리되는 버퍼 풀의 크기(바이트)
Misses Meter 풀의 미스 비율. 높을수록 더 많은 할당이 발생함

Client 메트릭

클라이언트 관리에 특화된 메트릭.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Client.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=Client name=<MetricName>

이름 타입 설명
connectedNativeClients Gauge 이 노드의 네이티브 프로토콜 서버에 연결된 클라이언트 수
connections Gauge<List<Map<String, String>>> 모든 연결과 그 상태 정보 목록
connectedNativeClientsByUser Gauge<Map<String, Int>> 사용자 이름별 연결된 네이티브 클라이언트 수

Batch 메트릭

배치 문에 특화된 메트릭.

보고된 이름 형식:

Metric Name org.apache.cassandra.metrics.Batch.<MetricName>

JMX MBean org.apache.cassandra.metrics:type=Batch name=<MetricName>

이름 타입 설명
PartitionsPerCounterBatch Histogram 카운터 배치당 처리된 파티션 수의 분포
PartitionsPerLoggedBatch Histogram 로그 배치당 처리된 파티션 수의 분포
PartitionsPerUnloggedBatch Histogram 언로그 배치당 처리된 파티션 수의 분포

JVM 메트릭

메모리와 가비지 컬렉션 통계 같은 JVM 메트릭은 JMX로 JVM에 연결해 접근하거나 Metric Reporters로 내보낼 수 있습니다.

BufferPool

Metric Name jvm.buffers.<direct|mapped>.<MetricName>

JMX MBean java.nio:type=BufferPool name=<direct|mapped>

이름 타입 설명
Capacity Gauge 이 풀의 버퍼 추정 총 용량
Count Gauge 풀의 추정 버퍼 수
Used Gauge Java 가상 머신이 이 버퍼 풀에 사용 중인 추정 메모리

FileDescriptorRatio

Metric Name jvm.fd.<MetricName>

JMX MBean java.lang:type=OperatingSystem name=<OpenFileDescriptorCount|MaxFileDescriptorCount>

이름 타입 설명
Usage Ratio 총 파일 디스크립터에 대한 사용된 비율

GarbageCollector

Metric Name jvm.gc.<gc_type>.<MetricName>

JMX MBean java.lang:type=GarbageCollector name=<gc_type>

이름 타입 설명
Count Gauge 발생한 가비지 컬렉션 총 수
Time Gauge 누적 컬렉션 경과 시간의 대략적 값(밀리초)

Memory

Metric Name jvm.memory.<heap/non-heap/total>.<MetricName>

JMX MBean java.lang:type=Memory

이름 타입 설명
Committed Gauge JVM이 사용하도록 커밋된 메모리 양(바이트)
Init Gauge JVM이 처음 OS에 요청하는 메모리 양(바이트)
Max Gauge 메모리 관리에 사용할 수 있는 최대 메모리 양(바이트)
Usage Ratio 최대 메모리에 대한 사용된 비율
Used Gauge 사용된 메모리 양(바이트)

MemoryPool

Metric Name jvm.memory.pools.<memory_pool>.<MetricName>

JMX MBean java.lang:type=MemoryPool name=<memory_pool>

이름 타입 설명
Committed Gauge JVM이 사용하도록 커밋된 메모리 양(바이트)
Init Gauge JVM이 처음 OS에 요청하는 메모리 양(바이트)
Max Gauge 메모리 관리에 사용할 수 있는 최대 메모리 양(바이트)
Usage Ratio 최대 메모리에 대한 사용된 비율
Used Gauge 사용된 메모리 양(바이트)

JMX

JMX 기반 클라이언트라면 누구나 cassandra에서 메트릭에 접근할 수 있어요.

JMX 메트릭을 http로 접근하고 싶다면 Mx4jTool을 다운로드하고 mx4j-tools.jar를 클래스패스에 넣는 것이 가능합니다. 시작 시 로그에서 다음을 볼 수 있을 거예요:

HttpAdaptor version 3.0.2 started on port 8081

다른 포트(8081이 기본)나 다른 수신 주소(0.0.0.0이 기본 아님)를 선택하려면 conf/cassandra-env.sh를 편집하고 주석을 해제하세요:

#MX4J_ADDRESS="-Dmx4jaddress=0.0.0.0"

#MX4J_PORT="-Dmx4jport=8081"

Metric Reporters

이 섹션의 상단에서 언급했듯 Cassandra 메트릭은 내장 리포터 또는 서드파티 리포터 플러그인을 사용해 여러 외부 모니터링 시스템으로 내보낼 수 있습니다.

더 알아보기 (Learn more)