MCP HubMCP Hub
Volver a habilidades

run-chaos-experiment

pjt222
Actualizado 6 days ago
13 vistas
17
2
17
Ver en GitHub
Pruebasaitestingdesign

Acerca de

Esta habilidad permite a los desarrolladores diseñar y ejecutar experimentos de ingeniería del caos utilizando Litmus o Chaos Mesh en Kubernetes. Realiza inyección controlada de fallos para probar la resiliencia del sistema, validar hipótesis de fallo y mejorar los procesos de recuperación. Úsala antes de lanzamientos importantes, después de cambios arquitectónicos o durante simulacros de resiliencia para fortalecer proactivamente la confiabilidad de tu sistema.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/run-chaos-experiment

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

行混驗

控注故以測且改系韌也。

  • 大釋前(負測)→用
  • 構改後(驗韌)→用
  • GameDay 或災復演→用
  • 驗故模假→用
  • SRE 熟度計畫→用

  • :Kubernetes 叢(Litmus 或 Chaos Mesh)
  • :穩態定(「常」貌)
  • :假設(如「一 pod 死,API 仍可用」)
  • :察棧(Prometheus、Grafana)量影
  • :回退計

一:定穩態與假

文錄常態:

## Steady State Definition

### Service: API Gateway
- **Availability**: 99.9% (< 0.1% error rate)
- **Latency**: p95 < 200ms
- **Throughput**: 1000 req/s

## Hypothesis
"If one API pod is killed, the remaining pods will handle the load with <5s
disruption and no increase in error rate."

得:明、可量之常與成準。

敗:穩態不可定→察不足,先增指。

二:限爆徑

縮驗以減險:

# chaos-config.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: chaos-testing

設護:

## Blast Radius Controls
### Environment
- **Scope**: Staging only (first 5 runs)
- **Production**: Only after 5 successful staging runs
- **Timing**: Business hours (09:00-17:00 local)
### Auto-Abort Conditions
- Error rate >10% for >30 seconds

得:驗有界、不傾全系。

敗:徑過大→縮範。一非關服始。

三:裝 Chaos Mesh

# Add Chaos Mesh Helm repo
helm repo add chaos-mesh https://charts.chaos-mesh.org
helm repo update

# Install Chaos Mesh
helm install chaos-mesh chaos-mesh/chaos-mesh \
  --namespace chaos-mesh \
  --create-namespace \
  --set dashboard.create=true \
  --set controllerManager.replicaCount=1

# Verify
kubectl get pods -n chaos-mesh

# Dashboard
kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333

替:Litmus(中立):

kubectl apply -f https://litmuschaos.github.io/litmus/litmus-operator-v2.14.0.yaml
kubectl get pods -n litmus

得:Chaos Mesh 或 Litmus 行、面板可達。

敗:查 RBAC。混工需叢級權。

四:建行驗

例:Pod Kill(Chaos Mesh):

# pod-kill-experiment.yaml
apiVersion: chaos-mesh.org/v1alpha1
kind: PodChaos
metadata:
  name: api-pod-kill-test
  namespace: chaos-testing
spec:
  action: pod-kill
  mode: one
  selector:
    namespaces:
      - production
    labelSelectors:
      app: api-gateway
      chaos-enabled: "true"
  duration: "30s"

施驗:

kubectl apply -f pod-kill-experiment.yaml
kubectl get podchaos -n chaos-testing -w
kubectl describe podchaos api-pod-kill-test -n chaos-testing

察影於 Grafana:

rate(http_requests_total{status=~"5..", job="api"}[1m])
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job="api"}[1m]))
rate(kube_pod_container_status_restarts_total{pod=~"api-.*"}[5m])

得:pod 死、k8s 重啟、服續微擾。

敗:誤率躍或服衰→停驗、查。

五:析果迭

書驗報:

# Chaos Experiment Report
**Hypothesis**: API stays available if one pod crashes
**Tool**: Chaos Mesh
## Results
- **Error Rate**: 0.1% → 2.3% (8s)
- **Recovery Time**: 8 seconds
## Hypothesis Outcome
**FAILED**: Error rate exceeded 1% threshold
## Improvements Made
1. Reduced readiness probe interval: 10s → 2s
2. Added pre-stop hook: 5-second sleep

記驗於日誌:

date,experiment,environment,status,error_rate_peak,recovery_time_s,outcome
2025-02-09,pod-kill-api,staging,complete,2.3%,8,failed

得:習得記、修施、後驗約。

敗:驗後無動→混工程為戲。優先修。

六:升至產(慎)

預驗常過後:

apiVersion: chaos-mesh.org/v1alpha1
kind: PodChaos
metadata:
  name: api-pod-kill-prod
spec:
  action: pod-kill
  duration: "10s"
  scheduler:
    cron: "0 10 * * 2"

產護:

kubectl create configmap chaos-killswitch \
  -n chaos-testing \
  --from-literal=enabled=true

得:產驗於低險窗、急停備。

敗:產驗致事故→立禁、覆盤。

  • 穩態與假明定
  • 爆徑限(境、範、時)
  • 混工裝測
  • 預驗成
  • 果文錄附指析
  • 修施
  • 後驗驗修
  • 產驗僅於 ≥ 5 預成後

  • 無假:「看何發」費時。必有假
  • 範過廣:殺諸 pod 為災復測,非韌測。始小
  • 產先:勿首於產。預先恆
  • 忽果:無動之混為戲。修所學
  • 警疲:混驗觸警。Grafana 註或靜期警
  • 無停計:失控時需急停。備之

  • setup-prometheus-monitoring
  • configure-alerting-rules
  • define-slo-sli-sla

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/wenyan-ultra/skills/run-chaos-experiment
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Habilidades relacionadas

evaluating-llms-harness

Pruebas

Esta Skill de Claude ejecuta el benchmark lm-evaluation-harness para evaluar modelos de lenguaje en más de 60 tareas académicas estandarizadas como MMLU y GSM8K. Está diseñada para que los desarrolladores comparen la calidad de los modelos, realicen seguimiento del progreso del entrenamiento o reporten resultados académicos. La herramienta admite varios backends, incluidos modelos de HuggingFace y vLLM.

Ver habilidad

cloudflare-cron-triggers

Pruebas

Esta habilidad proporciona conocimiento integral para implementar Cron Triggers de Cloudflare y programar Workers mediante expresiones cron. Cubre la configuración de tareas periódicas, trabajos de mantenimiento y flujos de trabajo automatizados, manejando problemas comunes como expresiones cron inválidas y inconvenientes de zonas horarias. Los desarrolladores pueden utilizarla para configurar manejadores programados, probar activadores cron e integrar con Workflows y Green Compute.

Ver habilidad

webapp-testing

Pruebas

Esta habilidad de Claude proporciona un kit de herramientas basado en Playwright para probar aplicaciones web locales mediante scripts de Python. Permite verificación de frontend, depuración de interfaz de usuario, captura de pantallas y visualización de registros, mientras gestiona los ciclos de vida del servidor. Úsela para tareas de automatización de navegadores, pero ejecute los scripts directamente en lugar de leer su código fuente para evitar contaminación del contexto.

Ver habilidad

finishing-a-development-branch

Pruebas

Esta habilidad ayuda a los desarrolladores a completar el trabajo terminado verificando que las pruebas pasen y luego presentando opciones estructuradas de integración. Guía el flujo de trabajo para fusionar, crear PRs o limpiar ramas después de que se completa la implementación. Úsala cuando tu código esté listo y probado para finalizar sistemáticamente el proceso de desarrollo.

Ver habilidad