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='<你的访问密钥>' \
-e RUSTFS_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 上传、下载,在观测云查询
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 |
磁盘存储 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 |