Skip to main content

Pod Startup Time Check

Pod startup time check validates the startup time of Kubernetes pods.

Infrastructure type

  • Kubernetes

Use cases

Pod Startup Time Check probe helps you:

  • Validate pods start within acceptable timeframes
  • Monitor deployment performance during rollouts
  • Detect slow startup issues during chaos experiments
  • Ensure application readiness times are optimal

Overview

This probe validates that pods start within a specified duration. It's useful for monitoring deployment performance and ensuring applications initialize quickly after pod creation or restart.

Probe type

Command Probe

Prerequisites

  • Kubernetes cluster with chaos infrastructure installed
  • Access to target namespace and pods
  • Sufficient RBAC permissions to query pod status and events

Probe properties

Command

healthchecks -name validate-pod-startup-time

Comparator

TypeCriteriaValue
stringcontains[Pass]

The probe passes when the command output contains [Pass], indicating all pods started within the specified duration.

Environment variables

VariableDescriptionRequiredDefault
TARGET_LABELSComma-separated list of target labels to filter pods.No-
TARGET_NAMESComma-separated list of target pod names.No-
TARGET_NAMESPACENamespace of the target pods.No-
TARGET_KINDKind of the target resource (e.g., deployment, statefulset, daemonset).Nodeployment
AGE_CRITERIAPods older than this age (in seconds) will be excluded from the check.No300
STARTUP_DURATION_CUTOFFAll pods should start within this duration (in seconds).No300
STATUS_CHECK_TIMEOUTMaximum time in seconds to wait for status check.No180
STATUS_CHECK_DELAYDelay in seconds between status checks.No2

Run properties

PropertyDescriptionTypeDefault
timeoutMaximum time to wait for the probe to complete (e.g., 30s, 1m, 5m)String180s
intervalTime between probe executions (e.g., 1s, 5s, 10s)String1s
attemptNumber of retry attempts before marking the probe as failedInteger1
pollingIntervalTime between retry attempts (e.g., 1s, 5s, 10s)String-
initialDelayInitial delay before starting the probe (e.g., 0s, 10s, 30s)String-
stopOnFailureStop the experiment if the probe failsBooleanfalse
verbosityLog verbosity level (info, debug, trace)String-

Probe definition

You can define this probe in your chaos experiment as follows:

Using pod labels

probe:
- name: "startup-time-validation"
type: "cmdProbe"
mode: "Edge"
cmdProbe/inputs:
command: "healthchecks -name validate-pod-startup-time"
comparator:
type: "string"
criteria: "contains"
value: "[Pass]"
env:
- name: TARGET_LABELS
value: "app=nginx"
- name: TARGET_NAMESPACE
value: "production"
- name: STARTUP_DURATION_CUTOFF
value: "120"
- name: AGE_CRITERIA
value: "600"
runProperties:
timeout: 180s
interval: 1s
attempt: 1
stopOnFailure: false

Using pod names

probe:
- name: "specific-pod-startup-check"
type: "cmdProbe"
mode: "Edge"
cmdProbe/inputs:
command: "healthchecks -name validate-pod-startup-time"
comparator:
type: "string"
criteria: "contains"
value: "[Pass]"
env:
- name: TARGET_NAMES
value: "my-app-pod"
- name: TARGET_NAMESPACE
value: "default"
- name: STARTUP_DURATION_CUTOFF
value: "60"
runProperties:
timeout: 90s
interval: 2s
attempt: 3