RustFS
RustFS는 OpenTelemetry OTLP를 통해 메트릭, 트레이스 및 로그를 DataKit에 전송합니다.
구성¶
사전 요구 사항¶
- DataKit이 설치되어 있고 RustFS에서 DataKit의 HTTP API 포트
9529에 접근할 수 있어야 합니다.
DataKit OpenTelemetry 수신 활성화¶
cd /usr/local/datakit/conf.d
sudo cp samples/opentelemetry.conf.sample opentelemetry.conf
sudo vim opentelemetry.conf
DataKit을 다시 시작합니다:
RustFS 시작¶
다음 예에서는 RustFS와 DataKit을 동일한 호스트에서 실행합니다:
docker pull rustfs/rustfs:latest
docker run -d \
--name rustfs \
--restart unless-stopped \
--network host \
-v rustfs-data:/data \
-e RUSTFS_VOLUMES=/data \
-e RUSTFS_ADDRESS=0.0.0.0:9000 \
-e RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001 \
-e RUSTFS_CONSOLE_ENABLE=true \
-e RUSTFS_ACCESS_KEY='<YOUR_ACCESS_KEY>' \
-e RUSTFS_SECRET_KEY='<YOUR_SECRET_KEY>' \
-e RUSTFS_OBS_ENDPOINT=http://127.0.0.1:9529/otel \
-e RUSTFS_OBS_SERVICE_NAME=rustfs-local-validation \
-e RUSTFS_OBS_ENVIRONMENT=local \
-e RUSTFS_OBS_SAMPLE_RATIO=1.0 \
-e RUSTFS_OBS_METER_INTERVAL=10 \
-e RUSTFS_OBS_LOGGER_LEVEL=info \
-e RUSTFS_OBS_LOG_STDOUT_ENABLED=true \
rustfs/rustfs:latest
서로 다른 호스트에서 실행하는 경우 RUSTFS_OBS_ENDPOINT를 RustFS에서 접근 가능한 http://<DATAKIT_HOST>:9529/otel로 변경합니다.
확인¶
- S3 업로드 및 다운로드 작업을 수행합니다. Guance에서
otel_service를 조회하고service_name=rustfs-local-validation로 필터링한 다음rustfs_process_uptime_seconds와rustfs_s3_put_object_total이 계속 보고되는지 확인합니다. service=rustfs-local-validation트레이스와source=rustfs-local-validation로그를 조회하여 데이터가 보고되는지 확인합니다.
메트릭¶
RustFS 메트릭은 OTLP를 통해 otel_service에 기록됩니다. 다음 표는 이 통합에서 사용하는 메트릭을 보여 줍니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
rustfs_bucket_usage_objects_total |
버킷 내 논리 객체 수(클러스터 수준 스냅샷) | bucket, deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_bucket_usage_usage_bytes |
버킷 내 논리 객체 총용량(클러스터 수준 스냅샷) | bucket, deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | B |
rustfs_bytes_pool_hit_rate |
바이트 버퍼 풀 적중률(원시 값 범위: 0~100) | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version, tier | percent |
rustfs_bytes_pool_hits_total |
바이트 버퍼 풀 누적 적중 횟수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version, tier | - |
rustfs_bytes_pool_misses_total |
바이트 버퍼 풀 누적 미적중 횟수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version, tier | - |
rustfs_cluster_buckets_total |
클러스터의 총 버킷 수 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_cluster_capacity_free_bytes |
클러스터 가용 용량의 남은 공간 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | B |
rustfs_cluster_capacity_missing_drives |
용량 관측 데이터가 누락된 드라이브 수 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_cluster_capacity_stale_drives |
용량 데이터가 오래된 스냅샷에서 온 드라이브 수 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_cluster_capacity_used_bytes |
클러스터에서 사용한 가용 용량으로, 총 가용 용량 및 남은 용량과 동일한 기준이며 객체 논리 용량과는 다름 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | B |
rustfs_cluster_erasure_set_read_health |
삭제 코딩 세트 읽기 상태: 1 정상, 0 비정상 | collection_scope, deployment_environment_name, network_local_address, observer, pool_id, rustfs_node, service_instance_id, service_name, service_version, set_id | - |
rustfs_cluster_erasure_set_write_health |
삭제 코딩 세트 쓰기 상태: 1 정상, 0 비정상 | collection_scope, deployment_environment_name, network_local_address, observer, pool_id, rustfs_node, service_instance_id, service_name, service_version, set_id | - |
rustfs_cluster_health_drives_offline_count |
클러스터의 오프라인 드라이브 수 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_cluster_health_drives_online_count |
클러스터의 온라인 드라이브 수 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_cluster_objects_total |
클러스터의 총 논리 객체 수 | collection_scope, deployment_environment_name, network_local_address, observer, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_cluster_usage_objects_since_last_update_seconds |
객체 사용량 스냅샷이 마지막으로 업데이트된 후 경과 시간 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | s |
rustfs_cluster_usage_objects_total_bytes |
클러스터 객체의 총 논리 용량 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | B |
rustfs_cpu_usage_percent |
RustFS에서 내보낸 CPU 사용률 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | percent |
rustfs_http_server_active_requests |
현재 HTTP 서비스 활성 요청 수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_http_server_failures_total |
상태 클래스별 HTTP 서비스 누적 실패 요청 수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version, status_class | - |
rustfs_http_server_requests_total |
HTTP 서비스 누적 요청 수 | deployment_environment_name, method, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_io_latency_p95_ms |
RustFS 네이티브 I/O 지연 시간 P95. 업스트림 집계 구간은 확인되지 않았으며 S3 API P95가 아님 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | ms |
rustfs_io_latency_p99_ms |
RustFS 네이티브 I/O 지연 시간 P99. 업스트림 집계 구간은 확인되지 않았으며 S3 API P99가 아님 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | ms |
rustfs_io_queue_utilization_percent |
I/O 큐 사용률 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | percent |
rustfs_memory_process_resident_bytes |
RustFS 프로세스 상주 메모리 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | B |
rustfs_memory_usage_percent |
RustFS에서 내보낸 메모리 사용률 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | percent |
rustfs_process_uptime_seconds |
RustFS 프로세스 가동 시간 | deployment_environment_name, network_local_address, rustfs_node, server, service_instance_id, service_name, service_version | s |
rustfs_s3_get_object_duration_ms_count |
GET 객체 소요 시간 히스토그램 누적 샘플 수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_s3_get_object_duration_ms_sum |
GET 객체 소요 시간 히스토그램 누적 시간 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | ms |
rustfs_s3_get_object_size_bytes_sum |
GET 객체 크기 히스토그램 누적 바이트 수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | B |
rustfs_s3_get_object_total |
성공한 GET 객체 작업 누적 횟수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_s3_http_requests_total |
메서드, 작업 및 결과별 S3 HTTP 누적 요청 수 | deployment_environment_name, method, network_local_address, op, outcome, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_s3_operations_total |
S3 API 누적 작업 횟수 | deployment_environment_name, network_local_address, op, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_s3_put_object_duration_ms_count |
PUT 객체 소요 시간 히스토그램 누적 샘플 수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_s3_put_object_duration_ms_sum |
PUT 객체 소요 시간 히스토그램 누적 시간 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | ms |
rustfs_s3_put_object_size_bytes_sum |
PUT 객체 크기 히스토그램 누적 바이트 수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | B |
rustfs_s3_put_object_total |
성공한 PUT 객체 작업 누적 횟수 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_scanner_last_cycle_duration_seconds |
최근 완료된 스캔 주기 소요 시간 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | s |
rustfs_scanner_last_cycle_result |
최근 스캔 주기 결과: 0 알 수 없음, 1 성공, 2 오류, 3 일부 완료, 4 대체됨, 5 지연됨 | deployment_environment_name, network_local_address, rustfs_node, service_instance_id, service_name, service_version | - |
rustfs_system_drive_api_latency_micros |
최근 1분간 디스크 스토리지 API 평균 지연 시간(원시 단위: 마이크로초) | collection_scope, deployment_environment_name, drive, network_local_address, observer, rustfs_node, server, service_instance_id, service_name, service_version | μs |
rustfs_system_drive_health |
드라이브 상태: 0 오프라인, 1 정상, 2 복구 중 | collection_scope, deployment_environment_name, drive, network_local_address, observer, rustfs_node, server, service_instance_id, service_name, service_version | - |
rustfs_system_drive_waiting_io |
현재 드라이브에서 대기 중인 I/O 작업 수 | collection_scope, deployment_environment_name, drive, network_local_address, observer, rustfs_node, server, service_instance_id, service_name, service_version | - |
rustfs_system_process_file_descriptor_open_total |
RustFS 프로세스에서 현재 열린 파일 디스크립터 수(Gauge) | deployment_environment_name, network_local_address, rustfs_node, server, service_instance_id, service_name, service_version | - |
rustfs_system_process_io_read_bytes |
프로세스가 기본 스토리지에서 읽은 누적 바이트 수(/proc/[pid]/io read_bytes에 해당) | deployment_environment_name, network_local_address, rustfs_node, server, service_instance_id, service_name, service_version | B |
rustfs_system_process_io_write_bytes |
프로세스가 기본 스토리지에 쓴 누적 바이트 수(/proc/[pid]/io write_bytes에 해당) | deployment_environment_name, network_local_address, rustfs_node, server, service_instance_id, service_name, service_version | B |