Skip to content

Tenant metrics show only null values #199

Description

@HaveFun83

We currently evaluating the rustfs-operator for a minio replacement.

During our test deployment we found out that the rustfs-operator show only null values for the tenant metrics.

The polling itself looks healthy

example:

# HELP rustfs_operator_tenant_monitor_polls_total Total number of tenant storage monitor polls by result.
# TYPE rustfs_operator_tenant_monitor_polls_total counter
rustfs_operator_tenant_monitor_polls_total{result="error"} 1
rustfs_operator_tenant_monitor_polls_total{result="success"} 22
# HELP rustfs_operator_tenant_monitor_poll_duration_seconds Tenant storage monitor poll duration by result.
# TYPE rustfs_operator_tenant_monitor_poll_duration_seconds summary
rustfs_operator_tenant_monitor_poll_duration_seconds_count{result="error"} 1
rustfs_operator_tenant_monitor_poll_duration_seconds_sum{result="error"} 0.006699
rustfs_operator_tenant_monitor_poll_duration_seconds_count{result="success"} 22
rustfs_operator_tenant_monitor_poll_duration_seconds_sum{result="success"} 0.955364
# HELP rustfs_operator_tenant_storage_poll_success Whether the last tenant storage poll succeeded.
# TYPE rustfs_operator_tenant_storage_poll_success gauge
rustfs_operator_tenant_storage_poll_success{namespace="rustfs",tenant="rustfs"} 1.000000
# HELP rustfs_operator_tenant_storage_last_poll_timestamp_seconds Unix timestamp of the last tenant storage poll.
# TYPE rustfs_operator_tenant_storage_last_poll_timestamp_seconds gauge
rustfs_operator_tenant_storage_last_poll_timestamp_seconds{namespace="rustfs",tenant="rustfs"} 1785166926.000000
# HELP rustfs_operator_tenant_drives_online Number of RustFS drives reported online for a tenant.
# TYPE rustfs_operator_tenant_drives_online gauge
rustfs_operator_tenant_drives_online{namespace="rustfs",tenant="rustfs"} 0.000000
# HELP rustfs_operator_tenant_drives_offline Number of RustFS drives reported offline for a tenant.
# TYPE rustfs_operator_tenant_drives_offline gauge
rustfs_operator_tenant_drives_offline{namespace="rustfs",tenant="rustfs"} 0.000000
# HELP rustfs_operator_tenant_drives_healing Number of RustFS drives currently healing for a tenant.
# TYPE rustfs_operator_tenant_drives_healing gauge
rustfs_operator_tenant_drives_healing{namespace="rustfs",tenant="rustfs"} 0.000000
# HELP rustfs_operator_tenant_raw_capacity_bytes Raw RustFS capacity in bytes for a tenant.
# TYPE rustfs_operator_tenant_raw_capacity_bytes gauge
rustfs_operator_tenant_raw_capacity_bytes{namespace="rustfs",tenant="rustfs"} 0.000000
# HELP rustfs_operator_tenant_raw_used_bytes Raw RustFS used capacity in bytes for a tenant.
# TYPE rustfs_operator_tenant_raw_used_bytes gauge
rustfs_operator_tenant_raw_used_bytes{namespace="rustfs",tenant="rustfs"} 0.000000
# HELP rustfs_operator_tenant_object_usage_bytes Object usage in bytes reported by RustFS for a tenant.
# TYPE rustfs_operator_tenant_object_usage_bytes gauge
rustfs_operator_tenant_object_usage_bytes{namespace="rustfs",tenant="rustfs"} 0.000000
# HELP rustfs_operator_tenant_erasure_write_quorum_drives Estimated write quorum drive count implied by RustFS erasure parity.
# TYPE rustfs_operator_tenant_erasure_write_quorum_drives gauge
rustfs_operator_tenant_erasure_write_quorum_drives{namespace="rustfs",tenant="rustfs"} 0.000000
# HELP rustfs_operator_tenant_storage_healthy Whether tenant storage is online, not healing, and satisfies write quorum.
# TYPE rustfs_operator_tenant_storage_healthy gauge
rustfs_operator_tenant_storage_healthy{namespace="rustfs",tenant="rustfs"} 0.000000

rustfs-operator deploymentt via helm

console:
  enabled: false
  image:
    repository: <private-registry>/rustfs/operator
  podSecurityContext:
    fsGroup: null
  securityContext:
    runAsUser: null
operator:
  image:
    repository: <private-registry>/rustfs/operator
  leaderElect: null
  metrics:
    enabled: true
  podSecurityContext:
    fsGroup: null
  prometheusRule:
    enabled: true
  replicas: 1
  resources:
    limits:
      cpu: 500m
      memory: 512Mi
    requests:
      cpu: 100m
      memory: 128Mi
  securityContext:
    runAsUser: null
  serviceMonitor:
    enabled: true
  tenantMonitor:
    enabled: true
sts:
  enabled: false

tenant config

apiVersion: rustfs.com/v1alpha1
kind: Tenant
metadata:
  name: rustfs
  namespace: rustfs
spec:
  # Container image (optional - uses operator default if not specified)
  image: <private-registry>/rustfs/rustfs:1.0.0-beta.10

  pools:
    - name: dev-pool
      servers: 3
      persistence:
        volumesPerServer: 1 # Single PVC; RustFS uses no erasure parity

        # Optional: Reduce storage size for development
        volumeClaimTemplate:
          accessModes: ["ReadWriteOnce"]
          resources:
            requests:
              storage: 1Gi # Smaller for dev environments

  env:
    # Standard Rust logging (not RustFS-specific)
    - name: RUST_LOG
      value: "debug"
  credsSecret:
    name: rustfs
  securityContext:
    fsGroup: null
    runAsGroup: null
    runAsNonRoot: true
    runAsUser: null
  serviceAccountName: rustfs

  policies:
    - name: loki-bucket-policy
      document:
        configMapKeyRef:
          name: loki-bucket-policy
          key: policy.json

  users:
    - name: loki-user
      credsSecret:
        name: loki-user
      policies:
        - loki-bucket-policy

  buckets:
    - name: loki

The tenant itself look also healthy

Storage Information

Backend:        erasure
Disks:          3 (3 online, 0 offline)
Capacity:       1.55 GiB used / 11.15 GiB total

STATE      ENDPOINT                 PATH                 USED / TOTAL
online     http://rustfs-dev-pool-2.rustfs-hl.rustfs.svc.cluster.local:9000/data/rustfs0 /data/rustfs0        529.00 MiB / 3.72 GiB
online     http://rustfs-dev-pool-1.rustfs-hl.rustfs.svc.cluster.local:9000/data/rustfs0 /data/rustfs0        529.04 MiB / 3.72 GiB
online     http://rustfs-dev-pool-0.rustfs-hl.rustfs.svc.cluster.local:9000/data/rustfs0 /data/rustfs0        529.02 MiB / 3.72 GiB

Environment:
Openshift: 4.20.28

Maybe someone had an advice how we can troubleshoot this further?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions