For the complete documentation index, see llms.txt. This page is also available as Markdown.

CollectInfo Reference

CollectInfo is the Kubernetes custom resource that drives Alluxio's diagnostic collection. Applying one tells the Operator's doctor controller what to collect from your cluster, when to collect it, and optionally where to upload the result.

You only need this page when you want to change the defaults. To simply produce a snapshot and send it to Alluxio support, follow Collecting a Snapshot with Doctor — the defaults collect everything from the past day and need no configuration.

Each run writes one .tar.gz archive to /data/doctor inside the doctor-controller pod. See Finding and downloading the snapshot for the naming scheme and how to retrieve it.

Full Example

Every field below is optional. This example sets all of them to show the shape; a real CollectInfo is usually much shorter.

apiVersion: k8s-operator.alluxio.com/v1
kind: CollectInfo
metadata:
  name: example-doctor
  # Must be in the same namespace as the Alluxio cluster
  namespace: alx-ns
spec:
  # Configure scheduled collection
  scheduled:
    # false: run once immediately; true: enable scheduled execution
    enabled: false
    # Only effective when enabled: true
    cron: "0 0 * * *"
    # Only effective when enabled: true
    timeZone: "Asia/Shanghai"
    # Only effective when enabled: true, retention period for collected results
    expiration: "720h"

  # Information types to collect
  type:
    - all

  # Log collection configuration
  logs:
    # Collect logs from the past 1 hour (3600 seconds)
    # Note: If left empty, defaults to collecting logs from the past 1 day (86400 seconds)
    sinceSeconds: 3600
    # tail: 1000 # Alternatively, use tail to collect the last 1000 lines
    # sinceTime: "2025-11-12T06:00:00Z" # Alternatively, use sinceTime to collect logs after a specific time point

  # Metrics collection configuration
  metrics:
    # Collect metrics from the past 24 hours
    duration: 24h
    # Sampling interval of 5 minutes
    step: 5m

  # (Optional) Upload configuration
  # upload:
  #   account: test
  #   productionId: xxx # Optional
  #   awsKey: <alluxio-provided-key>
  #   awsSecret: <alluxio-provided-secret>

spec.scheduled

Controls whether the collection runs once or on a repeating schedule.

cron is the switch. A CollectInfo without spec.scheduled.cron runs exactly once, as soon as it is applied. One with cron runs on that schedule.

Field
Type
Default
Description

cron

string

—

Cron expression for the schedule. Its presence is what makes the collection recurring. Example: "0 0 * * *" (daily at midnight). See Kubernetes cron syntax.

timeZone

string

—

Time zone the cron expression is evaluated in. Example: "Asia/Shanghai". See Kubernetes time zones.

expiration

string

4320h (180 days)

How long each archive is kept before automatic cleanup. Uses the Go duration format.

enabled

boolean

false

Deprecated — use the presence of cron instead. It no longer decides whether the collection recurs; it only selects the default metrics.step.

Every cluster the Operator creates already carries a CollectInfo that runs daily at midnight UTC with type: all, a 24-hour log window, and a 180-day retention. Inspect yours with kubectl -n <cluster-namespace> get collectinfo.

spec.type

Selects which categories of data to collect. Omitting type is equivalent to all.

Value
Collects
Location in the archive

all

Everything below. This is the default.

—

config

Resolved Alluxio and gateway configuration, any custom configuration, the full property dump, and the AlluxioCluster manifest.

config/

dynamic-config

Cluster state held in etcd, read back from the coordinator: license, mount table, quotas, worker nodes, priorities, TTL rules, cache filters, and virtual path mappings.

etcd/

hardware

CPU, memory, and disk of the Kubernetes nodes, plus the pod specs in the cluster and operator namespaces.

hardware/

job-history

Job service history, including load and free jobs.

job-history/

logs

Container logs from the coordinator, workers, FUSE pods, and the other components.

logs/<namespace>/

meta

A manifest of the collection run itself — when it ran, against which cluster, and the log and metrics windows that were applied.

meta/

metrics

Prometheus metrics scraped from Alluxio components.

metrics/

Metrics collection is the slowest category and produces the largest files. Drop it from type when you only need logs and configuration.

spec.logs

Bounds how much log history each component contributes. Modeled on Kubernetes PodLogOptions.

Field
Type
Description

tail

integer

Collect the last N lines of each container's log. Example: 1000.

sinceSeconds

integer

Collect logs from N seconds ago until now. Example: 3600 (past hour).

sinceTime

string

Collect logs after an absolute RFC3339 timestamp. Example: "2025-11-12T06:00:00Z".

Precedence, when more than one is set:

  1. tail wins over everything. When tail is set, sinceSeconds and sinceTime are ignored.

  2. Without tail, either sinceSeconds or sinceTime applies — set only one.

  3. With logs absent or empty, the default is the past day (86400 seconds).

Widen the window when the incident you are diagnosing started more than a day ago; the default silently truncates anything older.

spec.metrics

Bounds the Prometheus metrics range. Only read when metrics is among the collected type values.

Field
Type
Default
Description

duration

string

24h

How far back from now to collect.

step

string

5m one-time, 2h scheduled

Sampling interval. A smaller step means finer resolution and a larger archive.

spec.upload

Uploads the finished archive to an S3 bucket that Alluxio maintains, so support can retrieve it without you transferring the file yourself. Alluxio provides the credentials — this block is not usable with your own bucket.

Field
Type
Required
Description

account

string

Yes

Account identifier provided by Alluxio.

productionId

string

No

Deprecated — the production ID is now auto-detected from the tarball.

awsKey

string

Yes

AWS access key provided by Alluxio.

awsSecret

string

Yes

AWS secret key provided by Alluxio.

When upload is omitted — the default — archives stay in the doctor-controller pod and you retrieve them yourself.

spec.alluxioCluster

Which Alluxio clusters to collect from, as a list of name and namespace pairs. Set this when the CollectInfo does not live in the same namespace as the cluster, or when one collection should span several clusters.

Last updated