Skip to main content

Overview

The Chaos Dashboard provides a web-based interface for creating, managing, and monitoring chaos experiments, workflows, and schedules. It offers an intuitive alternative to kubectl commands and YAML manifests.

Accessing the Dashboard

Port Forward Method

The most common way to access the dashboard in development and testing environments:
kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333
Then open your browser to:

Service Exposure

For production environments, expose the dashboard through a LoadBalancer or Ingress:
apiVersion: v1
kind: Service
metadata:
  name: chaos-dashboard-external
  namespace: chaos-mesh
spec:
  type: LoadBalancer
  selector:
    app.kubernetes.io/component: chaos-dashboard
  ports:
    - port: 2333
      targetPort: 2333
When exposing the dashboard publicly, ensure proper authentication and TLS are configured. The dashboard provides full control over chaos experiments.

Dashboard Features

Experiment Management

The dashboard allows you to:
  • Visual experiment builder with form-based interface
  • Support for all chaos types (Pod, Network, Stress, I/O, etc.)
  • Real-time YAML preview
  • Selector validation and testing
  • Duration and scheduling configuration
  • List all running chaos experiments
  • Filter by namespace, type, and status
  • Real-time status updates
  • Quick access to experiment details
  • Detailed experiment information
  • Target pod selection results
  • Injection status and errors
  • Event timeline
  • Logs and debugging information
  • Pause/resume experiments
  • Update experiment parameters
  • Delete experiments
  • Archive completed experiments

Workflow Management

Workflow Designer

Create and visualize complex workflows:
  • Drag-and-drop workflow builder
  • Template library for common patterns
  • Visual topology display
  • Serial and parallel task orchestration
  • Real-time execution monitoring
  • Node status indicators
Workflow Topology View The dashboard displays workflow execution as a node graph:
  • Green nodes: Completed successfully
  • Blue nodes: Currently running
  • Red nodes: Failed or aborted
  • Gray nodes: Pending execution

Schedule Management

Schedule Configuration

Manage scheduled chaos experiments:
  • Create recurring schedules with cron syntax
  • Cron expression validator
  • Schedule history and execution logs
  • Next execution time preview
  • Pause/resume schedules
  • View active scheduled experiments

Event Timeline

Track all chaos-related events:
  • Experiment creation and deletion
  • Workflow state changes
  • Schedule executions
  • Error events and failures
  • System notifications
Events can be filtered by:
  • Time range
  • Namespace
  • Event type
  • Severity level

Namespace Overview

Dashboard homepage displays:
  • Total experiments by namespace
  • Active experiments count
  • Scheduled experiments
  • Running workflows
  • Recent events
  • System health indicators

Dashboard Architecture

The Chaos Dashboard consists of several components:
1

API Server

RESTful API backend (default port 2333) that handles:
  • Experiment CRUD operations
  • Workflow management
  • Schedule operations
  • Authentication and authorization
  • Metrics collection
2

UI Server

Serves the React-based web interface with:
  • Experiment designer
  • Workflow visualizer
  • Event viewer
  • Metrics dashboards
3

Store Layer

Interfaces with Kubernetes API server to:
  • List and watch chaos resources
  • Create and update experiments
  • Query workflow and schedule status
  • Retrieve events

Configuration

The dashboard can be configured through environment variables or Helm values:
LISTEN_HOST
string
default:"0.0.0.0"
Host address for the dashboard server to bind to.
LISTEN_PORT
int
default:"2333"
Port for the dashboard server to listen on.
ENABLE_PROFILING
bool
default:"false"
Enable pprof profiling endpoints at /debug/pprof.
SECURITY_MODE
bool
default:"false"
Enable authentication and RBAC checks.

Helm Configuration

dashboard:
  enabled: true
  
  # Resource limits
  resources:
    limits:
      cpu: 500m
      memory: 1Gi
    requests:
      cpu: 100m
      memory: 128Mi
  
  # Security settings
  securityMode: true
  
  # Service configuration
  service:
    type: ClusterIP
    port: 2333
  
  # Ingress configuration
  ingress:
    enabled: true
    hosts:
      - host: chaos.example.com
        paths:
          - path: /
    tls:
      - secretName: chaos-dashboard-tls
        hosts:
          - chaos.example.com

API Endpoints

The dashboard exposes RESTful APIs that can be used programmatically:
/api/experiments
GET, POST
List or create chaos experiments
/api/experiments/{uid}
GET, PUT, DELETE
Get, update, or delete a specific experiment
/api/workflows
GET, POST
List or create workflows
/api/workflows/{uid}
GET, PUT, DELETE
Manage specific workflow
/api/schedules
GET, POST
List or create schedules
/api/events
GET
Query chaos-related events
/api/common/namespaces
GET
List available namespaces
/api/swagger/*
GET
Swagger/OpenAPI documentation
API documentation is available at: http://localhost:2333/api/swagger/index.html

Security Considerations

The dashboard has full access to create and manage chaos experiments. Secure it appropriately.

Authentication Options

  1. Namespace Isolation: Deploy dashboard in a restricted namespace
  2. RBAC: Configure Kubernetes RBAC to limit dashboard service account
  3. Network Policies: Restrict network access to dashboard pods
  4. GCP Authentication: Built-in support for Google Cloud IAP
  5. Reverse Proxy: Use nginx or similar for authentication layer

GCP Authentication

dashboard:
  gcpSecurityMode: true
  gcpClientId: "your-client-id.apps.googleusercontent.com"
  gcpClientSecret: "your-client-secret"

Troubleshooting

Check port-forward:
kubectl get pods -n chaos-mesh -l app.kubernetes.io/component=chaos-dashboard
kubectl logs -n chaos-mesh -l app.kubernetes.io/component=chaos-dashboard
Verify service:
kubectl get svc -n chaos-mesh chaos-dashboard
Check RBAC permissions:
kubectl get clusterrolebinding | grep chaos
Verify controller is running:
kubectl get pods -n chaos-mesh
Dashboard UI may not be built in the container image. Check:
kubectl logs -n chaos-mesh -l app.kubernetes.io/component=chaos-dashboard | grep "UI is not built"
Ensure you’re using an official release image with UI included.

Metrics Integration

The dashboard collects HTTP request metrics exposed via Prometheus:
  • chaos_dashboard_http_request_duration_seconds - HTTP request latency histogram
    • Labels: path, method, status
See Monitoring for details on metrics collection.

Next Steps

Workflows

Create complex workflows through the dashboard

Scheduling

Configure recurring experiments

Monitoring

Set up metrics and observability

Status Checks

Add validation to your experiments

Build docs developers (and LLMs) love