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.
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.
spec.type
Selects which categories of data to collect. Omitting type is equivalent to all.
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.
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:
tailwins over everything. Whentailis set,sinceSecondsandsinceTimeare ignored.Without
tail, eithersinceSecondsorsinceTimeapplies — set only one.With
logsabsent 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.
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.
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.
Related
Troubleshooting — the task-oriented guide that uses this resource
Metrics — the metrics
spec.metricssamplesInstalling on Kubernetes — deploying the Operator that provides the doctor controller
Last updated