blockmine 1.24.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.en.md +427 -0
- package/README.md +40 -0
- package/backend/cli.js +1 -1
- package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
- package/backend/src/api/routes/bots.js +13 -0
- package/backend/src/api/routes/servers.js +14 -2
- package/backend/src/core/BotProcess.js +98 -2
- package/backend/src/core/PluginLoader.js +83 -3
- package/backend/src/core/PluginManager.js +75 -5
- package/backend/src/core/services/BotLifecycleService.js +186 -2
- package/backend/src/server.js +11 -1
- package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
- package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
- package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
- package/frontend/dist/flags/en.svg +32 -0
- package/frontend/dist/flags/ru.svg +5 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/locales/en/admin.json +100 -0
- package/frontend/dist/locales/en/api-keys.json +58 -0
- package/frontend/dist/locales/en/bots.json +110 -0
- package/frontend/dist/locales/en/common.json +47 -0
- package/frontend/dist/locales/en/configuration.json +22 -0
- package/frontend/dist/locales/en/console.json +10 -0
- package/frontend/dist/locales/en/dashboard.json +85 -0
- package/frontend/dist/locales/en/dialogs.json +70 -0
- package/frontend/dist/locales/en/event-graphs.json +50 -0
- package/frontend/dist/locales/en/graph-store.json +70 -0
- package/frontend/dist/locales/en/login.json +34 -0
- package/frontend/dist/locales/en/management.json +114 -0
- package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/en/nodes.json +1077 -0
- package/frontend/dist/locales/en/permissions.json +50 -0
- package/frontend/dist/locales/en/plugin-detail.json +49 -0
- package/frontend/dist/locales/en/plugins.json +110 -0
- package/frontend/dist/locales/en/proxies.json +81 -0
- package/frontend/dist/locales/en/servers.json +39 -0
- package/frontend/dist/locales/en/setup.json +17 -0
- package/frontend/dist/locales/en/sidebar.json +27 -0
- package/frontend/dist/locales/en/tasks.json +62 -0
- package/frontend/dist/locales/en/visual-editor.json +219 -0
- package/frontend/dist/locales/en/websocket.json +86 -0
- package/frontend/dist/locales/ru/admin.json +100 -0
- package/frontend/dist/locales/ru/api-keys.json +58 -0
- package/frontend/dist/locales/ru/bots.json +110 -0
- package/frontend/dist/locales/ru/common.json +49 -0
- package/frontend/dist/locales/ru/configuration.json +22 -0
- package/frontend/dist/locales/ru/console.json +10 -0
- package/frontend/dist/locales/ru/dashboard.json +85 -0
- package/frontend/dist/locales/ru/dialogs.json +70 -0
- package/frontend/dist/locales/ru/event-graphs.json +50 -0
- package/frontend/dist/locales/ru/graph-store.json +70 -0
- package/frontend/dist/locales/ru/login.json +34 -0
- package/frontend/dist/locales/ru/management.json +114 -0
- package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/ru/nodes.json +1077 -0
- package/frontend/dist/locales/ru/permissions.json +50 -0
- package/frontend/dist/locales/ru/plugin-detail.json +49 -0
- package/frontend/dist/locales/ru/plugins.json +110 -0
- package/frontend/dist/locales/ru/proxies.json +81 -0
- package/frontend/dist/locales/ru/servers.json +39 -0
- package/frontend/dist/locales/ru/setup.json +17 -0
- package/frontend/dist/locales/ru/sidebar.json +27 -0
- package/frontend/dist/locales/ru/tasks.json +62 -0
- package/frontend/dist/locales/ru/visual-editor.json +221 -0
- package/frontend/dist/locales/ru/websocket.json +86 -0
- package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
- package/frontend/package.json +4 -0
- package/package.json +1 -1
- package/screen/3dviewer.png +0 -0
- package/screen/console.png +0 -0
- package/screen/dashboard.png +0 -0
- package/screen/graph_collabe.png +0 -0
- package/screen/graph_live_debug.png +0 -0
- package/screen/language_selector.png +0 -0
- package/screen/management_command.png +0 -0
- package/screen/node_debug_trace.png +0 -0
- package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
- package/screen/websocket.png +0 -0
- package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
- package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
- package/.claude/agents/README.md +0 -469
- package/.claude/agents/auth-route-debugger.md +0 -118
- package/.claude/agents/auth-route-tester.md +0 -93
- package/.claude/agents/auto-error-resolver.md +0 -97
- package/.claude/agents/build-optimizer.md +0 -236
- package/.claude/agents/code-architect.md +0 -34
- package/.claude/agents/code-architecture-reviewer.md +0 -83
- package/.claude/agents/code-explorer.md +0 -51
- package/.claude/agents/code-refactor-master.md +0 -94
- package/.claude/agents/code-reviewer.md +0 -46
- package/.claude/agents/cost-optimizer.md +0 -134
- package/.claude/agents/deployment-orchestrator.md +0 -113
- package/.claude/agents/documentation-architect.md +0 -82
- package/.claude/agents/frontend-error-fixer.md +0 -77
- package/.claude/agents/iac-code-generator.md +0 -71
- package/.claude/agents/incident-responder.md +0 -346
- package/.claude/agents/infrastructure-architect.md +0 -31
- package/.claude/agents/kubernetes-specialist.md +0 -56
- package/.claude/agents/migration-planner.md +0 -181
- package/.claude/agents/network-architect.md +0 -196
- package/.claude/agents/plan-reviewer.md +0 -52
- package/.claude/agents/refactor-planner.md +0 -63
- package/.claude/agents/security-scanner.md +0 -102
- package/.claude/agents/web-research-specialist.md +0 -78
- package/.claude/commands/cost-analysis.md +0 -315
- package/.claude/commands/dev-docs-update.md +0 -55
- package/.claude/commands/dev-docs.md +0 -51
- package/.claude/commands/feature-dev.md +0 -125
- package/.claude/commands/incident-debug.md +0 -247
- package/.claude/commands/infra-plan.md +0 -81
- package/.claude/commands/migration-plan.md +0 -478
- package/.claude/commands/route-research-for-testing.md +0 -37
- package/.claude/commands/security-review.md +0 -66
- package/.claude/hooks/CONFIG.md +0 -448
- package/.claude/hooks/README.md +0 -163
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
- package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
- package/.claude/hooks/add-skill-activation-banners.ts +0 -132
- package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -222
- package/.claude/hooks/k8s-manifest-validator.sh +0 -56
- package/.claude/hooks/package-lock.json +0 -556
- package/.claude/hooks/package.json +0 -16
- package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
- package/.claude/hooks/post-tool-use-tracker.sh +0 -183
- package/.claude/hooks/security-policy-check.sh +0 -247
- package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
- package/.claude/hooks/skill-activation-prompt.sh +0 -10
- package/.claude/hooks/skill-activation-prompt.ts +0 -141
- package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
- package/.claude/hooks/terraform-validator.sh +0 -53
- package/.claude/hooks/test-input.json +0 -7
- package/.claude/hooks/test-skill-activation.ts +0 -427
- package/.claude/hooks/trigger-build-resolver.sh +0 -79
- package/.claude/hooks/tsc-check.sh +0 -173
- package/.claude/hooks/tsconfig.json +0 -19
- package/.claude/settings.json +0 -59
- package/.claude/settings.local.json +0 -67
- package/.claude/skills/README.md +0 -507
- package/.claude/skills/api-engineering/SKILL.md +0 -63
- package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
- package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
- package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
- package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
- package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
- package/.claude/skills/build-engineering/SKILL.md +0 -431
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
- package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
- package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
- package/.claude/skills/build-engineering/resources/build-security.md +0 -95
- package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
- package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
- package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
- package/.claude/skills/cloud-engineering/SKILL.md +0 -675
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
- package/.claude/skills/cybersecurity/SKILL.md +0 -409
- package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
- package/.claude/skills/database-engineering/SKILL.md +0 -61
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
- package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
- package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
- package/.claude/skills/devsecops/SKILL.md +0 -374
- package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
- package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
- package/.claude/skills/devsecops/resources/container-security.md +0 -915
- package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
- package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
- package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
- package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
- package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
- package/.claude/skills/devsecops/resources/security-testing.md +0 -203
- package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
- package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
- package/.claude/skills/documentation-as-code/SKILL.md +0 -323
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
- package/.claude/skills/engineering-management/SKILL.md +0 -356
- package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
- package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
- package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
- package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
- package/.claude/skills/error-tracking/SKILL.md +0 -379
- package/.claude/skills/frontend-design/SKILL.md +0 -42
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
- package/.claude/skills/general-it-engineering/SKILL.md +0 -393
- package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
- package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
- package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
- package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
- package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
- package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
- package/.claude/skills/network-engineering/SKILL.md +0 -385
- package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
- package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
- package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
- package/.claude/skills/network-engineering/resources/network-security.md +0 -921
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
- package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
- package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
- package/.claude/skills/node-development/SKILL.md +0 -317
- package/.claude/skills/observability-engineering/SKILL.md +0 -101
- package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
- package/.claude/skills/platform-engineering/SKILL.md +0 -555
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
- package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
- package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
- package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
- package/.claude/skills/release-engineering/SKILL.md +0 -393
- package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
- package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
- package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
- package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
- package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
- package/.claude/skills/route-tester/SKILL.md +0 -392
- package/.claude/skills/skill-developer/ADVANCED.md +0 -197
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
- package/.claude/skills/skill-developer/SKILL.md +0 -430
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
- package/.claude/skills/skill-rules.json +0 -2989
- package/.claude/skills/sre/SKILL.md +0 -464
- package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
- package/.claude/skills/sre/resources/capacity-planning.md +0 -226
- package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
- package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
- package/.claude/skills/sre/resources/incident-management.md +0 -436
- package/.claude/skills/sre/resources/observability-stack.md +0 -240
- package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
- package/.claude/skills/sre/resources/performance-optimization.md +0 -108
- package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
- package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
- package/.claude/skills/sre/resources/toil-reduction.md +0 -145
- package/.claude/skills/systems-engineering/SKILL.md +0 -648
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
- package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
- package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
- package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
- package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
- package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
- package/.claude/skills/technical-leadership/SKILL.md +0 -728
- package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
- package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
- package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
# Alerting Best Practices
|
|
2
|
-
|
|
3
|
-
Alert design principles, notification routing (PagerDuty, OpsGenie), alert fatigue prevention, and effective on-call alerting strategies.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Alert Design Principles](#alert-design-principles)
|
|
8
|
-
- [Alert Rules](#alert-rules)
|
|
9
|
-
- [Notification Routing](#notification-routing)
|
|
10
|
-
- [Alert Fatigue Prevention](#alert-fatigue-prevention)
|
|
11
|
-
- [Best Practices](#best-practices)
|
|
12
|
-
|
|
13
|
-
## Alert Design Principles
|
|
14
|
-
|
|
15
|
-
**Good Alerts:**
|
|
16
|
-
```
|
|
17
|
-
✅ Actionable - Can be fixed immediately
|
|
18
|
-
✅ Specific - Clear what's wrong
|
|
19
|
-
✅ User-impacting - Affects customers
|
|
20
|
-
✅ Urgent - Requires immediate attention
|
|
21
|
-
✅ Novel - Not duplicate of existing alert
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**Bad Alerts:**
|
|
25
|
-
```
|
|
26
|
-
❌ Noisy - Frequent false positives
|
|
27
|
-
❌ Vague - Unclear what to do
|
|
28
|
-
❌ Premature - Fires before issue impacts users
|
|
29
|
-
❌ Duplicate - Same as other alerts
|
|
30
|
-
❌ Low-priority - Can wait until business hours
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Alert Rules
|
|
34
|
-
|
|
35
|
-
**Prometheus Alerting:**
|
|
36
|
-
```yaml
|
|
37
|
-
groups:
|
|
38
|
-
- name: slo_alerts
|
|
39
|
-
rules:
|
|
40
|
-
# Good: User-impacting, actionable
|
|
41
|
-
- alert: HighErrorRate
|
|
42
|
-
expr: |
|
|
43
|
-
(
|
|
44
|
-
sum(rate(http_requests_total{status=~"5.."}[5m]))
|
|
45
|
-
/
|
|
46
|
-
sum(rate(http_requests_total[5m]))
|
|
47
|
-
) > 0.05
|
|
48
|
-
for: 5m
|
|
49
|
-
labels:
|
|
50
|
-
severity: critical
|
|
51
|
-
team: platform
|
|
52
|
-
annotations:
|
|
53
|
-
summary: "Error rate above 5% for 5 minutes"
|
|
54
|
-
description: "{{ $value | humanizePercentage }} of requests failing"
|
|
55
|
-
runbook: "https://runbooks.example.com/high-error-rate"
|
|
56
|
-
dashboard: "https://grafana.example.com/d/service-health"
|
|
57
|
-
|
|
58
|
-
# Good: SLO-based, clear threshold
|
|
59
|
-
- alert: LatencyP95High
|
|
60
|
-
expr: |
|
|
61
|
-
histogram_quantile(0.95,
|
|
62
|
-
rate(http_request_duration_seconds_bucket[5m])
|
|
63
|
-
) > 0.5
|
|
64
|
-
for: 10m
|
|
65
|
-
labels:
|
|
66
|
-
severity: warning
|
|
67
|
-
team: platform
|
|
68
|
-
annotations:
|
|
69
|
-
summary: "P95 latency above 500ms"
|
|
70
|
-
impact: "Users experiencing slow response times"
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
**Multi-Window Alerts:**
|
|
74
|
-
```yaml
|
|
75
|
-
# Fast burn + slow burn
|
|
76
|
-
- alert: ErrorBudgetBurn
|
|
77
|
-
expr: |
|
|
78
|
-
(
|
|
79
|
-
sum(rate(http_requests_total{status=~"5.."}[1h]))
|
|
80
|
-
/
|
|
81
|
-
sum(rate(http_requests_total[1h]))
|
|
82
|
-
> (14.4 * (1 - 0.999))
|
|
83
|
-
)
|
|
84
|
-
and
|
|
85
|
-
(
|
|
86
|
-
sum(rate(http_requests_total{status=~"5.."}[5m]))
|
|
87
|
-
/
|
|
88
|
-
sum(rate(http_requests_total[5m]))
|
|
89
|
-
> (14.4 * (1 - 0.999))
|
|
90
|
-
)
|
|
91
|
-
labels:
|
|
92
|
-
severity: critical
|
|
93
|
-
annotations:
|
|
94
|
-
summary: "Error budget burning at 14.4x rate"
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Notification Routing
|
|
98
|
-
|
|
99
|
-
**AlertManager Config:**
|
|
100
|
-
```yaml
|
|
101
|
-
route:
|
|
102
|
-
receiver: default
|
|
103
|
-
group_by: ['alertname', 'cluster']
|
|
104
|
-
group_wait: 30s
|
|
105
|
-
group_interval: 5m
|
|
106
|
-
repeat_interval: 12h
|
|
107
|
-
|
|
108
|
-
routes:
|
|
109
|
-
# Critical: Page immediately
|
|
110
|
-
- match:
|
|
111
|
-
severity: critical
|
|
112
|
-
receiver: pagerduty
|
|
113
|
-
group_wait: 10s
|
|
114
|
-
repeat_interval: 5m
|
|
115
|
-
|
|
116
|
-
# Warning: Slack notification
|
|
117
|
-
- match:
|
|
118
|
-
severity: warning
|
|
119
|
-
receiver: slack
|
|
120
|
-
repeat_interval: 4h
|
|
121
|
-
|
|
122
|
-
# Info: Email only
|
|
123
|
-
- match:
|
|
124
|
-
severity: info
|
|
125
|
-
receiver: email
|
|
126
|
-
repeat_interval: 24h
|
|
127
|
-
|
|
128
|
-
receivers:
|
|
129
|
-
- name: pagerduty
|
|
130
|
-
pagerduty_configs:
|
|
131
|
-
- service_key: $PAGERDUTY_SERVICE_KEY
|
|
132
|
-
description: "{{ .GroupLabels.alertname }}"
|
|
133
|
-
|
|
134
|
-
- name: slack
|
|
135
|
-
slack_configs:
|
|
136
|
-
- api_url: $SLACK_WEBHOOK_URL
|
|
137
|
-
channel: '#alerts'
|
|
138
|
-
title: "{{ .GroupLabels.alertname }}"
|
|
139
|
-
text: "{{ range .Alerts }}{{ .Annotations.description }}{{ end }}"
|
|
140
|
-
|
|
141
|
-
- name: email
|
|
142
|
-
email_configs:
|
|
143
|
-
- to: 'team@example.com'
|
|
144
|
-
from: 'alertmanager@example.com'
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
**PagerDuty Integration:**
|
|
148
|
-
```yaml
|
|
149
|
-
pagerduty_configs:
|
|
150
|
-
- routing_key: $PAGERDUTY_ROUTING_KEY
|
|
151
|
-
severity: "{{ .Labels.severity }}"
|
|
152
|
-
client: "Alertmanager"
|
|
153
|
-
client_url: "{{ .ExternalURL }}"
|
|
154
|
-
description: "{{ .GroupLabels.alertname }}"
|
|
155
|
-
details:
|
|
156
|
-
firing: "{{ .Alerts.Firing | len }}"
|
|
157
|
-
resolved: "{{ .Alerts.Resolved | len }}"
|
|
158
|
-
summary: "{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}"
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## Alert Fatigue Prevention
|
|
162
|
-
|
|
163
|
-
**Strategies:**
|
|
164
|
-
|
|
165
|
-
1. **High Signal-to-Noise Ratio**
|
|
166
|
-
```
|
|
167
|
-
Target: < 5% false positive rate
|
|
168
|
-
If alert fires but no action taken → remove or adjust
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
2. **Appropriate Thresholds**
|
|
172
|
-
```yaml
|
|
173
|
-
# Too sensitive
|
|
174
|
-
expr: cpu_usage > 0.5 # Fires constantly
|
|
175
|
-
|
|
176
|
-
# Better
|
|
177
|
-
expr: cpu_usage > 0.9 for 10m # Sustained high usage
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
3. **Group Similar Alerts**
|
|
181
|
-
```yaml
|
|
182
|
-
route:
|
|
183
|
-
group_by: ['alertname', 'cluster', 'service']
|
|
184
|
-
group_wait: 30s # Wait to group
|
|
185
|
-
group_interval: 5m # Send grouped updates
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
4. **Escalation Policies**
|
|
189
|
-
```yaml
|
|
190
|
-
# PagerDuty escalation
|
|
191
|
-
escalation_policy:
|
|
192
|
-
- level: 1
|
|
193
|
-
targets: [on_call_primary]
|
|
194
|
-
escalation_delay: 5m
|
|
195
|
-
|
|
196
|
-
- level: 2
|
|
197
|
-
targets: [on_call_secondary, team_lead]
|
|
198
|
-
escalation_delay: 10m
|
|
199
|
-
|
|
200
|
-
- level: 3
|
|
201
|
-
targets: [engineering_manager]
|
|
202
|
-
escalation_delay: 15m
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
5. **Alert Inhibition**
|
|
206
|
-
```yaml
|
|
207
|
-
inhibit_rules:
|
|
208
|
-
# If service is down, don't alert on high latency
|
|
209
|
-
- source_match:
|
|
210
|
-
severity: critical
|
|
211
|
-
alertname: ServiceDown
|
|
212
|
-
target_match:
|
|
213
|
-
severity: warning
|
|
214
|
-
alertname: HighLatency
|
|
215
|
-
equal: ['service']
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
## Best Practices
|
|
219
|
-
|
|
220
|
-
### 1. Include Runbook Links
|
|
221
|
-
|
|
222
|
-
```yaml
|
|
223
|
-
annotations:
|
|
224
|
-
runbook: "https://runbooks.example.com/{{ $labels.alertname }}"
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### 2. Add Context
|
|
228
|
-
|
|
229
|
-
```yaml
|
|
230
|
-
annotations:
|
|
231
|
-
description: |
|
|
232
|
-
Service {{ $labels.service }} error rate is {{ $value | humanizePercentage }}
|
|
233
|
-
Dashboard: https://grafana.example.com/d/{{ $labels.service }}
|
|
234
|
-
Logs: https://logs.example.com/?service={{ $labels.service }}
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### 3. Test Alerts
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
# Send test alert
|
|
241
|
-
amtool alert add alertname=TestAlert severity=warning
|
|
242
|
-
|
|
243
|
-
# Check routing
|
|
244
|
-
amtool config routes test --config.file=alertmanager.yml \
|
|
245
|
-
severity=critical team=platform
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
### 4. Review Alerts Regularly
|
|
249
|
-
|
|
250
|
-
```yaml
|
|
251
|
-
# Quarterly alert audit
|
|
252
|
-
review_process:
|
|
253
|
-
- Check false positive rate
|
|
254
|
-
- Verify runbooks are current
|
|
255
|
-
- Update thresholds based on trends
|
|
256
|
-
- Remove unused alerts
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### 5. Time-Based Routing
|
|
260
|
-
|
|
261
|
-
```yaml
|
|
262
|
-
# Different routing for business hours vs off-hours
|
|
263
|
-
routes:
|
|
264
|
-
- match:
|
|
265
|
-
severity: warning
|
|
266
|
-
receiver: slack
|
|
267
|
-
active_time_intervals:
|
|
268
|
-
- business_hours
|
|
269
|
-
|
|
270
|
-
- match:
|
|
271
|
-
severity: warning
|
|
272
|
-
receiver: email
|
|
273
|
-
active_time_intervals:
|
|
274
|
-
- off_hours
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
**Related Resources:**
|
|
280
|
-
- [incident-management.md](incident-management.md)
|
|
281
|
-
- [on-call-runbooks.md](on-call-runbooks.md)
|
|
282
|
-
- [observability-stack.md](observability-stack.md)
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
# Capacity Planning
|
|
2
|
-
|
|
3
|
-
Resource forecasting, growth modeling, scalability analysis, load testing, and proactive capacity management.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Capacity Planning Process](#capacity-planning-process)
|
|
8
|
-
- [Resource Forecasting](#resource-forecasting)
|
|
9
|
-
- [Load Testing](#load-testing)
|
|
10
|
-
- [Scalability Analysis](#scalability-analysis)
|
|
11
|
-
|
|
12
|
-
## Capacity Planning Process
|
|
13
|
-
|
|
14
|
-
```yaml
|
|
15
|
-
quarterly_process:
|
|
16
|
-
1_collect_data:
|
|
17
|
-
- Current resource usage trends
|
|
18
|
-
- Traffic growth patterns
|
|
19
|
-
- Business projections
|
|
20
|
-
- Seasonal variations
|
|
21
|
-
|
|
22
|
-
2_forecast:
|
|
23
|
-
- Project 6-12 months ahead
|
|
24
|
-
- Account for growth initiatives
|
|
25
|
-
- Include safety margin (20-30%)
|
|
26
|
-
|
|
27
|
-
3_plan_upgrades:
|
|
28
|
-
- Identify bottlenecks
|
|
29
|
-
- Plan infrastructure changes
|
|
30
|
-
- Budget for new resources
|
|
31
|
-
|
|
32
|
-
4_implement:
|
|
33
|
-
- Gradual rollout
|
|
34
|
-
- Monitor impact
|
|
35
|
-
- Adjust as needed
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Resource Forecasting
|
|
39
|
-
|
|
40
|
-
**Linear Growth Model:**
|
|
41
|
-
```python
|
|
42
|
-
import pandas as pd
|
|
43
|
-
import numpy as np
|
|
44
|
-
from sklearn.linear_model import LinearRegression
|
|
45
|
-
|
|
46
|
-
def forecast_capacity(historical_data, months_ahead=6):
|
|
47
|
-
"""
|
|
48
|
-
Forecast resource requirements
|
|
49
|
-
|
|
50
|
-
Args:
|
|
51
|
-
historical_data: DataFrame with 'date' and 'usage' columns
|
|
52
|
-
months_ahead: Number of months to forecast
|
|
53
|
-
|
|
54
|
-
Returns:
|
|
55
|
-
Forecasted usage values
|
|
56
|
-
"""
|
|
57
|
-
# Prepare data
|
|
58
|
-
X = np.array(range(len(historical_data))).reshape(-1, 1)
|
|
59
|
-
y = historical_data['usage'].values
|
|
60
|
-
|
|
61
|
-
# Train model
|
|
62
|
-
model = LinearRegression()
|
|
63
|
-
model.fit(X, y)
|
|
64
|
-
|
|
65
|
-
# Forecast
|
|
66
|
-
future_X = np.array(range(len(historical_data),
|
|
67
|
-
len(historical_data) + months_ahead)).reshape(-1, 1)
|
|
68
|
-
forecast = model.predict(future_X)
|
|
69
|
-
|
|
70
|
-
# Add 30% safety margin
|
|
71
|
-
return forecast * 1.3
|
|
72
|
-
|
|
73
|
-
# Usage
|
|
74
|
-
import pandas as pd
|
|
75
|
-
data = pd.DataFrame({
|
|
76
|
-
'date': pd.date_range('2023-01-01', periods=12, freq='M'),
|
|
77
|
-
'usage': [100, 110, 115, 125, 130, 140, 145, 155, 160, 170, 175, 185]
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
forecast = forecast_capacity(data, months_ahead=6)
|
|
81
|
-
print(f"Forecasted usage in 6 months: {forecast[-1]:.0f}")
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**Capacity Metrics:**
|
|
85
|
-
```yaml
|
|
86
|
-
cpu:
|
|
87
|
-
current_avg: 45%
|
|
88
|
-
current_p95: 75%
|
|
89
|
-
target_max: 80%
|
|
90
|
-
growth_rate: 5% monthly
|
|
91
|
-
action_needed: Scale in 4 months
|
|
92
|
-
|
|
93
|
-
memory:
|
|
94
|
-
current_avg: 60%
|
|
95
|
-
current_p95: 85%
|
|
96
|
-
target_max: 85%
|
|
97
|
-
growth_rate: 3% monthly
|
|
98
|
-
action_needed: Scale in 6 months
|
|
99
|
-
|
|
100
|
-
storage:
|
|
101
|
-
current_usage: 500GB
|
|
102
|
-
total_capacity: 1TB
|
|
103
|
-
growth_rate: 50GB monthly
|
|
104
|
-
action_needed: Scale in 10 months
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Load Testing
|
|
108
|
-
|
|
109
|
-
**k6 Load Test:**
|
|
110
|
-
```javascript
|
|
111
|
-
// load-test.js
|
|
112
|
-
import http from 'k6/http';
|
|
113
|
-
import { check, sleep } from 'k6';
|
|
114
|
-
|
|
115
|
-
export const options = {
|
|
116
|
-
stages: [
|
|
117
|
-
{ duration: '5m', target: 100 }, // Ramp up to 100 users
|
|
118
|
-
{ duration: '10m', target: 100 }, // Stay at 100 users
|
|
119
|
-
{ duration: '5m', target: 500 }, // Ramp to 500 users
|
|
120
|
-
{ duration: '10m', target: 500 }, // Stay at 500
|
|
121
|
-
{ duration: '5m', target: 1000 }, // Spike to 1000
|
|
122
|
-
{ duration: '5m', target: 0 }, // Ramp down
|
|
123
|
-
],
|
|
124
|
-
thresholds: {
|
|
125
|
-
http_req_duration: ['p(95)<500'], // 95% of requests < 500ms
|
|
126
|
-
http_req_failed: ['rate<0.01'], // Error rate < 1%
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
export default function () {
|
|
131
|
-
const res = http.get('https://api.example.com/');
|
|
132
|
-
check(res, {
|
|
133
|
-
'status is 200': (r) => r.status === 200,
|
|
134
|
-
'response time < 500ms': (r) => r.timings.duration < 500,
|
|
135
|
-
});
|
|
136
|
-
sleep(1);
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
**Run Load Test:**
|
|
141
|
-
```bash
|
|
142
|
-
# Local test
|
|
143
|
-
k6 run load-test.js
|
|
144
|
-
|
|
145
|
-
# Cloud test (distributed)
|
|
146
|
-
k6 cloud load-test.js
|
|
147
|
-
|
|
148
|
-
# With custom VUs
|
|
149
|
-
k6 run --vus 1000 --duration 30m load-test.js
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## Scalability Analysis
|
|
153
|
-
|
|
154
|
-
**Horizontal vs Vertical Scaling:**
|
|
155
|
-
```yaml
|
|
156
|
-
horizontal_scaling:
|
|
157
|
-
when: Stateless applications, need high availability
|
|
158
|
-
pros:
|
|
159
|
-
- No downtime
|
|
160
|
-
- Better fault tolerance
|
|
161
|
-
- Linear cost scaling
|
|
162
|
-
cons:
|
|
163
|
-
- More complex
|
|
164
|
-
- Coordination overhead
|
|
165
|
-
|
|
166
|
-
vertical_scaling:
|
|
167
|
-
when: Stateful applications, simpler architecture
|
|
168
|
-
pros:
|
|
169
|
-
- Simpler architecture
|
|
170
|
-
- Less coordination
|
|
171
|
-
cons:
|
|
172
|
-
- Downtime required
|
|
173
|
-
- Upper limits
|
|
174
|
-
- Single point of failure
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
**Auto-scaling Configuration:**
|
|
178
|
-
```yaml
|
|
179
|
-
apiVersion: autoscaling/v2
|
|
180
|
-
kind: HorizontalPodAutoscaler
|
|
181
|
-
metadata:
|
|
182
|
-
name: api-hpa
|
|
183
|
-
spec:
|
|
184
|
-
scaleTargetRef:
|
|
185
|
-
apiVersion: apps/v1
|
|
186
|
-
kind: Deployment
|
|
187
|
-
name: api
|
|
188
|
-
minReplicas: 3
|
|
189
|
-
maxReplicas: 100
|
|
190
|
-
metrics:
|
|
191
|
-
- type: Resource
|
|
192
|
-
resource:
|
|
193
|
-
name: cpu
|
|
194
|
-
target:
|
|
195
|
-
type: Utilization
|
|
196
|
-
averageUtilization: 70
|
|
197
|
-
- type: Resource
|
|
198
|
-
resource:
|
|
199
|
-
name: memory
|
|
200
|
-
target:
|
|
201
|
-
type: Utilization
|
|
202
|
-
averageUtilization: 80
|
|
203
|
-
behavior:
|
|
204
|
-
scaleDown:
|
|
205
|
-
stabilizationWindowSeconds: 300
|
|
206
|
-
policies:
|
|
207
|
-
- type: Percent
|
|
208
|
-
value: 50
|
|
209
|
-
periodSeconds: 60
|
|
210
|
-
scaleUp:
|
|
211
|
-
stabilizationWindowSeconds: 0
|
|
212
|
-
policies:
|
|
213
|
-
- type: Percent
|
|
214
|
-
value: 100
|
|
215
|
-
periodSeconds: 30
|
|
216
|
-
- type: Pods
|
|
217
|
-
value: 5
|
|
218
|
-
periodSeconds: 30
|
|
219
|
-
selectPolicy: Max
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
**Related Resources:**
|
|
225
|
-
- [performance-optimization.md](performance-optimization.md)
|
|
226
|
-
- [resource-management.md](../platform-engineering/resources/resource-management.md)
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
# Chaos Engineering
|
|
2
|
-
|
|
3
|
-
Chaos Monkey, fault injection, failure mode testing, Chaos Toolkit, Litmus Chaos, and resilience testing practices.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Principles](#principles)
|
|
8
|
-
- [Tools](#tools)
|
|
9
|
-
- [Experiments](#experiments)
|
|
10
|
-
- [Best Practices](#best-practices)
|
|
11
|
-
|
|
12
|
-
## Principles
|
|
13
|
-
|
|
14
|
-
**Chaos Engineering Principles:**
|
|
15
|
-
1. Build a hypothesis around steady state
|
|
16
|
-
2. Vary real-world events
|
|
17
|
-
3. Run experiments in production
|
|
18
|
-
4. Automate experiments
|
|
19
|
-
5. Minimize blast radius
|
|
20
|
-
|
|
21
|
-
## Tools
|
|
22
|
-
|
|
23
|
-
**Chaos Mesh (Kubernetes):**
|
|
24
|
-
```yaml
|
|
25
|
-
apiVersion: chaos-mesh.org/v1alpha1
|
|
26
|
-
kind: PodChaos
|
|
27
|
-
metadata:
|
|
28
|
-
name: pod-failure-example
|
|
29
|
-
spec:
|
|
30
|
-
action: pod-failure
|
|
31
|
-
mode: one
|
|
32
|
-
selector:
|
|
33
|
-
namespaces:
|
|
34
|
-
- production
|
|
35
|
-
labelSelectors:
|
|
36
|
-
app: api-service
|
|
37
|
-
duration: "30s"
|
|
38
|
-
scheduler:
|
|
39
|
-
cron: "@every 2h"
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**Network Chaos:**
|
|
43
|
-
```yaml
|
|
44
|
-
apiVersion: chaos-mesh.org/v1alpha1
|
|
45
|
-
kind: NetworkChaos
|
|
46
|
-
metadata:
|
|
47
|
-
name: network-delay
|
|
48
|
-
spec:
|
|
49
|
-
action: delay
|
|
50
|
-
mode: all
|
|
51
|
-
selector:
|
|
52
|
-
namespaces:
|
|
53
|
-
- production
|
|
54
|
-
labelSelectors:
|
|
55
|
-
app: api-service
|
|
56
|
-
delay:
|
|
57
|
-
latency: "100ms"
|
|
58
|
-
correlation: "25"
|
|
59
|
-
jitter: "10ms"
|
|
60
|
-
duration: "5m"
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**Litmus Chaos:**
|
|
64
|
-
```yaml
|
|
65
|
-
apiVersion: litmuschaos.io/v1alpha1
|
|
66
|
-
kind: ChaosEngine
|
|
67
|
-
metadata:
|
|
68
|
-
name: nginx-chaos
|
|
69
|
-
spec:
|
|
70
|
-
appinfo:
|
|
71
|
-
appns: 'default'
|
|
72
|
-
applabel: 'app=nginx'
|
|
73
|
-
appkind: 'deployment'
|
|
74
|
-
chaosServiceAccount: litmus-admin
|
|
75
|
-
experiments:
|
|
76
|
-
- name: pod-delete
|
|
77
|
-
spec:
|
|
78
|
-
components:
|
|
79
|
-
env:
|
|
80
|
-
- name: TOTAL_CHAOS_DURATION
|
|
81
|
-
value: '30'
|
|
82
|
-
- name: CHAOS_INTERVAL
|
|
83
|
-
value: '10'
|
|
84
|
-
- name: FORCE
|
|
85
|
-
value: 'false'
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Experiments
|
|
89
|
-
|
|
90
|
-
**Pod Deletion Test:**
|
|
91
|
-
```bash
|
|
92
|
-
# Verify system handles pod failures
|
|
93
|
-
kubectl delete pod -l app=api-service --grace-period=0
|
|
94
|
-
|
|
95
|
-
# Expected outcome:
|
|
96
|
-
# - New pod starts automatically
|
|
97
|
-
# - No service interruption
|
|
98
|
-
# - Requests handled by other pods
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Database Failure Simulation:**
|
|
102
|
-
```yaml
|
|
103
|
-
# Simulate database connection issues
|
|
104
|
-
apiVersion: chaos-mesh.org/v1alpha1
|
|
105
|
-
kind: NetworkChaos
|
|
106
|
-
metadata:
|
|
107
|
-
name: db-partition
|
|
108
|
-
spec:
|
|
109
|
-
action: partition
|
|
110
|
-
mode: all
|
|
111
|
-
selector:
|
|
112
|
-
namespaces:
|
|
113
|
-
- production
|
|
114
|
-
labelSelectors:
|
|
115
|
-
app: api-service
|
|
116
|
-
direction: to
|
|
117
|
-
target:
|
|
118
|
-
selector:
|
|
119
|
-
namespaces:
|
|
120
|
-
- production
|
|
121
|
-
labelSelectors:
|
|
122
|
-
app: postgres
|
|
123
|
-
duration: "2m"
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
**CPU Stress Test:**
|
|
127
|
-
```yaml
|
|
128
|
-
apiVersion: chaos-mesh.org/v1alpha1
|
|
129
|
-
kind: StressChaos
|
|
130
|
-
metadata:
|
|
131
|
-
name: cpu-stress
|
|
132
|
-
spec:
|
|
133
|
-
mode: one
|
|
134
|
-
selector:
|
|
135
|
-
namespaces:
|
|
136
|
-
- production
|
|
137
|
-
labelSelectors:
|
|
138
|
-
app: api-service
|
|
139
|
-
stressors:
|
|
140
|
-
cpu:
|
|
141
|
-
workers: 4
|
|
142
|
-
load: 80
|
|
143
|
-
duration: "5m"
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## Best Practices
|
|
147
|
-
|
|
148
|
-
### 1. Start Small
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
Begin in dev/staging
|
|
152
|
-
Small blast radius
|
|
153
|
-
Short duration
|
|
154
|
-
Gradually increase scope
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### 2. Define Success Criteria
|
|
158
|
-
|
|
159
|
-
```yaml
|
|
160
|
-
experiment:
|
|
161
|
-
hypothesis: "API continues serving traffic during pod failure"
|
|
162
|
-
success_criteria:
|
|
163
|
-
- Error rate < 0.1%
|
|
164
|
-
- P95 latency < 500ms
|
|
165
|
-
- No customer impact
|
|
166
|
-
failure_action: Rollback immediately
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### 3. Automate Chaos
|
|
170
|
-
|
|
171
|
-
```yaml
|
|
172
|
-
# Regular chaos experiments
|
|
173
|
-
schedule:
|
|
174
|
-
daily: Pod deletion
|
|
175
|
-
weekly: Network latency
|
|
176
|
-
monthly: Region failure simulation
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
### 4. Monitor During Experiments
|
|
180
|
-
|
|
181
|
-
```yaml
|
|
182
|
-
observability:
|
|
183
|
-
- Real-time dashboards
|
|
184
|
-
- Alert on anomalies
|
|
185
|
-
- Correlate with experiment timeline
|
|
186
|
-
- Document unexpected behavior
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
**Related Resources:**
|
|
192
|
-
- [reliability-patterns.md](reliability-patterns.md)
|
|
193
|
-
- [incident-management.md](incident-management.md)
|