blockmine 1.24.0 → 1.27.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.
Files changed (476) hide show
  1. package/CHANGELOG.md +76 -1
  2. package/README.en.md +427 -0
  3. package/README.md +40 -0
  4. package/backend/package.json +2 -2
  5. package/backend/prisma/migrations/20260328173000_add_plugin_source_ref/migration.sql +2 -0
  6. package/backend/prisma/migrations/migration_lock.toml +2 -2
  7. package/backend/prisma/schema.prisma +2 -0
  8. package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
  9. package/backend/src/api/routes/apiKeys.js +8 -0
  10. package/backend/src/api/routes/bots.js +271 -9
  11. package/backend/src/api/routes/eventGraphs.js +151 -1
  12. package/backend/src/api/routes/health.js +38 -0
  13. package/backend/src/api/routes/nodeRegistry.js +63 -0
  14. package/backend/src/api/routes/plugins.js +254 -29
  15. package/backend/src/api/routes/servers.js +14 -2
  16. package/backend/src/container.js +11 -8
  17. package/backend/src/core/BotCommandLoader.js +161 -0
  18. package/backend/src/core/BotConnection.js +125 -0
  19. package/backend/src/core/BotEventHandlers.js +234 -0
  20. package/backend/src/core/BotIPCHandler.js +445 -0
  21. package/backend/src/core/BotManager.js +15 -7
  22. package/backend/src/core/BotProcess.js +169 -140
  23. package/backend/src/core/EventGraphManager.js +7 -3
  24. package/backend/src/core/GraphDebugHandler.js +229 -0
  25. package/backend/src/core/GraphDebugIPC.js +117 -0
  26. package/backend/src/core/GraphExecutionEngine.js +545 -978
  27. package/backend/src/core/GraphTraversal.js +80 -0
  28. package/backend/src/core/GraphValidation.js +73 -0
  29. package/backend/src/core/NodeDefinition.js +138 -0
  30. package/backend/src/core/NodeRegistry.js +153 -141
  31. package/backend/src/core/PluginLoader.js +83 -3
  32. package/backend/src/core/PluginManager.js +346 -35
  33. package/backend/src/core/RewindSignal.js +9 -0
  34. package/backend/src/core/config/ConfigValidator.js +72 -0
  35. package/backend/src/core/config/FeatureFlags.js +52 -0
  36. package/backend/src/core/config/__tests__/ConfigValidator.test.js +232 -0
  37. package/backend/src/core/domain/entities/Bot.js +39 -0
  38. package/backend/src/core/domain/entities/Command.js +41 -0
  39. package/backend/src/core/domain/entities/EventGraph.js +39 -0
  40. package/backend/src/core/domain/entities/Plugin.js +45 -0
  41. package/backend/src/core/domain/entities/User.js +40 -0
  42. package/backend/src/core/domain/services/DependencyResolver.js +168 -0
  43. package/backend/src/core/domain/services/GraphValidator.js +117 -0
  44. package/backend/src/core/domain/services/PermissionChecker.js +34 -0
  45. package/backend/src/core/domain/services/__tests__/DependencyResolver.test.js +126 -0
  46. package/backend/src/core/domain/valueObjects/BotConfig.js +27 -0
  47. package/backend/src/core/domain/valueObjects/DependencyGraph.js +86 -0
  48. package/backend/src/core/domain/valueObjects/PluginManifest.js +36 -0
  49. package/backend/src/core/errors/BaseError.js +29 -0
  50. package/backend/src/core/errors/ErrorHandler.js +81 -0
  51. package/backend/src/core/errors/__tests__/ErrorHandler.test.js +188 -0
  52. package/backend/src/core/errors/index.js +68 -0
  53. package/backend/src/core/infrastructure/BatchingUtility.js +66 -0
  54. package/backend/src/core/infrastructure/CircuitBreaker.js +103 -0
  55. package/backend/src/core/infrastructure/ConnectionPool.js +81 -0
  56. package/backend/src/core/infrastructure/RateLimiter.js +64 -0
  57. package/backend/src/core/infrastructure/__tests__/BatchingUtility.test.js +86 -0
  58. package/backend/src/core/infrastructure/__tests__/CircuitBreaker.test.js +156 -0
  59. package/backend/src/core/infrastructure/__tests__/ConnectionPool.test.js +146 -0
  60. package/backend/src/core/infrastructure/__tests__/RateLimiter.test.js +171 -0
  61. package/backend/src/core/ipc/botApiFactory.js +72 -0
  62. package/backend/src/core/ipc/ipcMessageTypes.js +115 -0
  63. package/backend/src/core/logging/AuditLogger.js +61 -0
  64. package/backend/src/core/logging/StructuredLogger.js +80 -0
  65. package/backend/src/core/logging/__tests__/StructuredLogger.test.js +213 -0
  66. package/backend/src/core/logging/index.js +7 -0
  67. package/backend/src/core/metrics/MetricsCollector.js +104 -0
  68. package/backend/src/core/metrics/__tests__/MetricsCollector.test.js +131 -0
  69. package/backend/src/core/node-registries/actionsNodes.js +191 -0
  70. package/backend/src/core/node-registries/arraysNodes.js +152 -0
  71. package/backend/src/core/node-registries/botNodes.js +48 -0
  72. package/backend/src/core/node-registries/containerNodes.js +141 -0
  73. package/backend/src/core/node-registries/dataNodes.js +284 -0
  74. package/backend/src/core/node-registries/debugNodes.js +23 -0
  75. package/backend/src/core/node-registries/eventsNodes.js +223 -0
  76. package/backend/src/core/node-registries/flowNodes.js +151 -0
  77. package/backend/src/core/node-registries/furnaceNodes.js +123 -0
  78. package/backend/src/core/node-registries/index.js +108 -0
  79. package/backend/src/core/node-registries/inventory.js +102 -106
  80. package/backend/src/core/node-registries/logicNodes.js +54 -0
  81. package/backend/src/core/node-registries/mathNodes.js +38 -0
  82. package/backend/src/core/node-registries/navigationNodes.js +109 -0
  83. package/backend/src/core/node-registries/objectsNodes.js +90 -0
  84. package/backend/src/core/node-registries/stringsNodes.js +165 -0
  85. package/backend/src/core/node-registries/timeNodes.js +105 -0
  86. package/backend/src/core/node-registries/typeNodes.js +22 -0
  87. package/backend/src/core/node-registries/usersNodes.js +126 -0
  88. package/backend/src/core/nodes/arrays/shuffle.js +14 -0
  89. package/backend/src/core/nodes/bot/get_name.js +8 -0
  90. package/backend/src/core/nodes/bot/stop_bot.js +5 -0
  91. package/backend/src/core/nodes/container/open.js +101 -111
  92. package/backend/src/core/nodes/data/store_read.js +26 -0
  93. package/backend/src/core/nodes/data/store_write.js +23 -0
  94. package/backend/src/core/nodes/event/call_event.js +31 -0
  95. package/backend/src/core/nodes/event/custom_event.js +8 -0
  96. package/backend/src/core/nodes/flow/timer.js +35 -0
  97. package/backend/src/core/nodes/inventory/drop.js +73 -65
  98. package/backend/src/core/nodes/inventory/equip.js +54 -45
  99. package/backend/src/core/nodes/inventory/select_slot.js +48 -46
  100. package/backend/src/core/nodes/navigation/follow.js +54 -51
  101. package/backend/src/core/nodes/navigation/go_to.js +41 -53
  102. package/backend/src/core/nodes/navigation/go_to_entity.js +65 -69
  103. package/backend/src/core/nodes/navigation/go_to_player.js +65 -70
  104. package/backend/src/core/nodes/navigation/stop.js +17 -26
  105. package/backend/src/core/nodes/users/add_to_group.js +24 -0
  106. package/backend/src/core/nodes/users/check_permission.js +26 -0
  107. package/backend/src/core/nodes/users/remove_from_group.js +24 -0
  108. package/backend/src/core/services/BotIPCMessageRouter.js +337 -0
  109. package/backend/src/core/services/BotLifecycleService.js +43 -450
  110. package/backend/src/core/services/CacheManager.js +83 -23
  111. package/backend/src/core/services/CrashRestartManager.js +42 -0
  112. package/backend/src/core/services/DebugSessionManager.js +114 -12
  113. package/backend/src/core/services/EventGraphService.js +69 -0
  114. package/backend/src/core/services/MinecraftBotManager.js +9 -1
  115. package/backend/src/core/services/PluginManagementService.js +84 -0
  116. package/backend/src/core/services/TestModeContext.js +65 -0
  117. package/backend/src/core/services/__tests__/CacheManager.test.js +168 -0
  118. package/backend/src/core/services.js +1 -11
  119. package/backend/src/core/validation/InputValidator.js +167 -0
  120. package/backend/src/core/validation/__tests__/InputValidator.test.js +296 -0
  121. package/backend/src/real-time/botApi/index.js +1 -1
  122. package/backend/src/real-time/socketHandler.js +26 -0
  123. package/backend/src/server.js +21 -6
  124. package/frontend/dist/assets/browser-ponyfill-D8y0Ty7C.js +2 -0
  125. package/frontend/dist/assets/index-CFJLS0dk.css +32 -0
  126. package/frontend/dist/assets/index-D91UGNMG.js +11260 -0
  127. package/frontend/dist/flags/en.svg +32 -0
  128. package/frontend/dist/flags/ru.svg +5 -0
  129. package/frontend/dist/index.html +2 -2
  130. package/frontend/dist/locales/en/admin.json +100 -0
  131. package/frontend/dist/locales/en/api-keys.json +58 -0
  132. package/frontend/dist/locales/en/bots.json +113 -0
  133. package/frontend/dist/locales/en/common.json +53 -0
  134. package/frontend/dist/locales/en/configuration.json +22 -0
  135. package/frontend/dist/locales/en/console.json +10 -0
  136. package/frontend/dist/locales/en/dashboard.json +85 -0
  137. package/frontend/dist/locales/en/dialogs.json +70 -0
  138. package/frontend/dist/locales/en/event-graphs.json +50 -0
  139. package/frontend/dist/locales/en/graph-store.json +70 -0
  140. package/frontend/dist/locales/en/login.json +36 -0
  141. package/frontend/dist/locales/en/management.json +192 -0
  142. package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
  143. package/frontend/dist/locales/en/nodes.json +1132 -0
  144. package/frontend/dist/locales/en/permissions.json +50 -0
  145. package/frontend/dist/locales/en/plugin-detail.json +69 -0
  146. package/frontend/dist/locales/en/plugins.json +329 -0
  147. package/frontend/dist/locales/en/proxies.json +81 -0
  148. package/frontend/dist/locales/en/servers.json +39 -0
  149. package/frontend/dist/locales/en/setup.json +19 -0
  150. package/frontend/dist/locales/en/sidebar.json +195 -0
  151. package/frontend/dist/locales/en/tasks.json +62 -0
  152. package/frontend/dist/locales/en/visual-editor.json +418 -0
  153. package/frontend/dist/locales/en/websocket.json +86 -0
  154. package/frontend/dist/locales/ru/admin.json +100 -0
  155. package/frontend/dist/locales/ru/api-keys.json +58 -0
  156. package/frontend/dist/locales/ru/bots.json +113 -0
  157. package/frontend/dist/locales/ru/common.json +49 -0
  158. package/frontend/dist/locales/ru/configuration.json +22 -0
  159. package/frontend/dist/locales/ru/console.json +10 -0
  160. package/frontend/dist/locales/ru/dashboard.json +85 -0
  161. package/frontend/dist/locales/ru/dialogs.json +70 -0
  162. package/frontend/dist/locales/ru/event-graphs.json +50 -0
  163. package/frontend/dist/locales/ru/graph-store.json +70 -0
  164. package/frontend/dist/locales/ru/login.json +36 -0
  165. package/frontend/dist/locales/ru/management.json +192 -0
  166. package/frontend/dist/locales/ru/minecraft-viewer.json +30 -0
  167. package/frontend/dist/locales/ru/nodes.json +1131 -0
  168. package/frontend/dist/locales/ru/permissions.json +50 -0
  169. package/frontend/dist/locales/ru/plugin-detail.json +49 -0
  170. package/frontend/dist/locales/ru/plugins.json +209 -0
  171. package/frontend/dist/locales/ru/proxies.json +81 -0
  172. package/frontend/dist/locales/ru/servers.json +39 -0
  173. package/frontend/dist/locales/ru/setup.json +19 -0
  174. package/frontend/dist/locales/ru/sidebar.json +195 -0
  175. package/frontend/dist/locales/ru/tasks.json +62 -0
  176. package/frontend/dist/locales/ru/visual-editor.json +420 -0
  177. package/frontend/dist/locales/ru/websocket.json +86 -0
  178. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
  179. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
  180. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
  181. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
  182. package/frontend/package.json +6 -0
  183. package/nul +12 -0
  184. package/package.json +3 -3
  185. package/screen/3dviewer.png +0 -0
  186. package/screen/console.png +0 -0
  187. package/screen/dashboard.png +0 -0
  188. package/screen/graph_collabe.png +0 -0
  189. package/screen/graph_live_debug.png +0 -0
  190. package/screen/language_selector.png +0 -0
  191. package/screen/management_command.png +0 -0
  192. package/screen/node_debug_trace.png +0 -0
  193. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  194. package/screen/websocket.png +0 -0
  195. 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
  196. 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
  197. package/.claude/agents/README.md +0 -469
  198. package/.claude/agents/auth-route-debugger.md +0 -118
  199. package/.claude/agents/auth-route-tester.md +0 -93
  200. package/.claude/agents/auto-error-resolver.md +0 -97
  201. package/.claude/agents/build-optimizer.md +0 -236
  202. package/.claude/agents/code-architect.md +0 -34
  203. package/.claude/agents/code-architecture-reviewer.md +0 -83
  204. package/.claude/agents/code-explorer.md +0 -51
  205. package/.claude/agents/code-refactor-master.md +0 -94
  206. package/.claude/agents/code-reviewer.md +0 -46
  207. package/.claude/agents/cost-optimizer.md +0 -134
  208. package/.claude/agents/deployment-orchestrator.md +0 -113
  209. package/.claude/agents/documentation-architect.md +0 -82
  210. package/.claude/agents/frontend-error-fixer.md +0 -77
  211. package/.claude/agents/iac-code-generator.md +0 -71
  212. package/.claude/agents/incident-responder.md +0 -346
  213. package/.claude/agents/infrastructure-architect.md +0 -31
  214. package/.claude/agents/kubernetes-specialist.md +0 -56
  215. package/.claude/agents/migration-planner.md +0 -181
  216. package/.claude/agents/network-architect.md +0 -196
  217. package/.claude/agents/plan-reviewer.md +0 -52
  218. package/.claude/agents/refactor-planner.md +0 -63
  219. package/.claude/agents/security-scanner.md +0 -102
  220. package/.claude/agents/web-research-specialist.md +0 -78
  221. package/.claude/commands/cost-analysis.md +0 -315
  222. package/.claude/commands/dev-docs-update.md +0 -55
  223. package/.claude/commands/dev-docs.md +0 -51
  224. package/.claude/commands/feature-dev.md +0 -125
  225. package/.claude/commands/incident-debug.md +0 -247
  226. package/.claude/commands/infra-plan.md +0 -81
  227. package/.claude/commands/migration-plan.md +0 -478
  228. package/.claude/commands/route-research-for-testing.md +0 -37
  229. package/.claude/commands/security-review.md +0 -66
  230. package/.claude/hooks/CONFIG.md +0 -448
  231. package/.claude/hooks/README.md +0 -163
  232. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
  233. package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
  234. package/.claude/hooks/add-skill-activation-banners.ts +0 -132
  235. package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
  236. package/.claude/hooks/error-handling-reminder.sh +0 -12
  237. package/.claude/hooks/error-handling-reminder.ts +0 -222
  238. package/.claude/hooks/k8s-manifest-validator.sh +0 -56
  239. package/.claude/hooks/package-lock.json +0 -556
  240. package/.claude/hooks/package.json +0 -16
  241. package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
  242. package/.claude/hooks/post-tool-use-tracker.sh +0 -183
  243. package/.claude/hooks/security-policy-check.sh +0 -247
  244. package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
  245. package/.claude/hooks/skill-activation-prompt.sh +0 -10
  246. package/.claude/hooks/skill-activation-prompt.ts +0 -141
  247. package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
  248. package/.claude/hooks/terraform-validator.sh +0 -53
  249. package/.claude/hooks/test-input.json +0 -7
  250. package/.claude/hooks/test-skill-activation.ts +0 -427
  251. package/.claude/hooks/trigger-build-resolver.sh +0 -79
  252. package/.claude/hooks/tsc-check.sh +0 -173
  253. package/.claude/hooks/tsconfig.json +0 -19
  254. package/.claude/settings.json +0 -59
  255. package/.claude/settings.local.json +0 -67
  256. package/.claude/skills/README.md +0 -507
  257. package/.claude/skills/api-engineering/SKILL.md +0 -63
  258. package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
  259. package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
  260. package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
  261. package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
  262. package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
  263. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
  264. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
  265. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
  266. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
  267. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
  268. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
  269. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
  270. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
  271. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
  272. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
  273. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
  274. package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
  275. package/.claude/skills/build-engineering/SKILL.md +0 -431
  276. package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
  277. package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
  278. package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
  279. package/.claude/skills/build-engineering/resources/build-security.md +0 -95
  280. package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
  281. package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
  282. package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
  283. package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
  284. package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
  285. package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
  286. package/.claude/skills/cloud-engineering/SKILL.md +0 -675
  287. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
  288. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
  289. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
  290. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
  291. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
  292. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
  293. package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
  294. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
  295. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
  296. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
  297. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
  298. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
  299. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
  300. package/.claude/skills/cybersecurity/SKILL.md +0 -409
  301. package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
  302. package/.claude/skills/database-engineering/SKILL.md +0 -61
  303. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
  304. package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
  305. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
  306. package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
  307. package/.claude/skills/devsecops/SKILL.md +0 -374
  308. package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
  309. package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
  310. package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
  311. package/.claude/skills/devsecops/resources/container-security.md +0 -915
  312. package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
  313. package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
  314. package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
  315. package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
  316. package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
  317. package/.claude/skills/devsecops/resources/security-testing.md +0 -203
  318. package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
  319. package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
  320. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
  321. package/.claude/skills/documentation-as-code/SKILL.md +0 -323
  322. package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
  323. package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
  324. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
  325. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
  326. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
  327. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
  328. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
  329. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
  330. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
  331. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
  332. package/.claude/skills/engineering-management/SKILL.md +0 -356
  333. package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
  334. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
  335. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
  336. package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
  337. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
  338. package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
  339. package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
  340. package/.claude/skills/error-tracking/SKILL.md +0 -379
  341. package/.claude/skills/frontend-design/SKILL.md +0 -42
  342. package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
  343. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
  344. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
  345. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
  346. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
  347. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
  348. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
  349. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
  350. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
  351. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
  352. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
  353. package/.claude/skills/general-it-engineering/SKILL.md +0 -393
  354. package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
  355. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
  356. package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
  357. package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
  358. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
  359. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
  360. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
  361. package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
  362. package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
  363. package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
  364. package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
  365. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
  366. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
  367. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
  368. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
  369. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
  370. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
  371. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
  372. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
  373. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
  374. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
  375. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
  376. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
  377. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
  378. package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
  379. package/.claude/skills/network-engineering/SKILL.md +0 -385
  380. package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
  381. package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
  382. package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
  383. package/.claude/skills/network-engineering/resources/network-security.md +0 -921
  384. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
  385. package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
  386. package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
  387. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
  388. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
  389. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
  390. package/.claude/skills/node-development/SKILL.md +0 -317
  391. package/.claude/skills/observability-engineering/SKILL.md +0 -101
  392. package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
  393. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
  394. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
  395. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
  396. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
  397. package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
  398. package/.claude/skills/platform-engineering/SKILL.md +0 -555
  399. package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
  400. package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
  401. package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
  402. package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
  403. package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
  404. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
  405. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
  406. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
  407. package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
  408. package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
  409. package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
  410. package/.claude/skills/release-engineering/SKILL.md +0 -393
  411. package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
  412. package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
  413. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
  414. package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
  415. package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
  416. package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
  417. package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
  418. package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
  419. package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
  420. package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
  421. package/.claude/skills/route-tester/SKILL.md +0 -392
  422. package/.claude/skills/skill-developer/ADVANCED.md +0 -197
  423. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
  424. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
  425. package/.claude/skills/skill-developer/SKILL.md +0 -430
  426. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
  427. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
  428. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
  429. package/.claude/skills/skill-rules.json +0 -2989
  430. package/.claude/skills/sre/SKILL.md +0 -464
  431. package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
  432. package/.claude/skills/sre/resources/capacity-planning.md +0 -226
  433. package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
  434. package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
  435. package/.claude/skills/sre/resources/incident-management.md +0 -436
  436. package/.claude/skills/sre/resources/observability-stack.md +0 -240
  437. package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
  438. package/.claude/skills/sre/resources/performance-optimization.md +0 -108
  439. package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
  440. package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
  441. package/.claude/skills/sre/resources/toil-reduction.md +0 -145
  442. package/.claude/skills/systems-engineering/SKILL.md +0 -648
  443. package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
  444. package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
  445. package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
  446. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
  447. package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
  448. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
  449. package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
  450. package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
  451. package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
  452. package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
  453. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
  454. package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
  455. package/.claude/skills/technical-leadership/SKILL.md +0 -728
  456. package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
  457. package/backend/package-lock.json +0 -6801
  458. package/backend/src/core/node-registries/actions.js +0 -202
  459. package/backend/src/core/node-registries/arrays.js +0 -155
  460. package/backend/src/core/node-registries/bot.js +0 -23
  461. package/backend/src/core/node-registries/container.js +0 -162
  462. package/backend/src/core/node-registries/data.js +0 -290
  463. package/backend/src/core/node-registries/debug.js +0 -26
  464. package/backend/src/core/node-registries/events.js +0 -201
  465. package/backend/src/core/node-registries/flow.js +0 -139
  466. package/backend/src/core/node-registries/furnace.js +0 -143
  467. package/backend/src/core/node-registries/logic.js +0 -62
  468. package/backend/src/core/node-registries/math.js +0 -42
  469. package/backend/src/core/node-registries/navigation.js +0 -111
  470. package/backend/src/core/node-registries/objects.js +0 -98
  471. package/backend/src/core/node-registries/strings.js +0 -187
  472. package/backend/src/core/node-registries/time.js +0 -113
  473. package/backend/src/core/node-registries/type.js +0 -25
  474. package/backend/src/core/node-registries/users.js +0 -79
  475. package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
  476. package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
@@ -1,787 +0,0 @@
1
- # System Monitoring
2
-
3
- Comprehensive guide to system monitoring covering log aggregation, metrics collection, APM integration, dashboards, and alerting for observability and reliability.
4
-
5
- ## Table of Contents
6
-
7
- - [Monitoring Architecture](#monitoring-architecture)
8
- - [Log Aggregation](#log-aggregation)
9
- - [Metrics Collection](#metrics-collection)
10
- - [APM Tools Integration](#apm-tools-integration)
11
- - [Dashboard Creation](#dashboard-creation)
12
- - [Alert Configuration](#alert-configuration)
13
- - [Log Analysis](#log-analysis)
14
- - [Best Practices](#best-practices)
15
-
16
- ## Monitoring Architecture
17
-
18
- ### Monitoring Stack
19
-
20
- ```
21
- ┌─────────────────────────────────────────────────────────┐
22
- │ Visualization │
23
- │ (Grafana, Kibana) │
24
- ├─────────────────────────────────────────────────────────┤
25
- │ Alerting & Analysis │
26
- │ (Prometheus, Elasticsearch) │
27
- ├─────────────────────────────────────────────────────────┤
28
- │ Data Collection │
29
- │ (node_exporter, Filebeat, Telegraf) │
30
- ├─────────────────────────────────────────────────────────┤
31
- │ Application Servers │
32
- └─────────────────────────────────────────────────────────┘
33
- ```
34
-
35
- ## Log Aggregation
36
-
37
- ### rsyslog Configuration
38
-
39
- ```bash
40
- # Install rsyslog
41
- sudo apt install rsyslog
42
-
43
- # /etc/rsyslog.d/50-default.conf
44
-
45
- # Log levels: debug, info, notice, warn, error, crit, alert, emerg
46
-
47
- # Separate logs by facility
48
- auth,authpriv.* /var/log/auth.log
49
- *.*;auth,authpriv.none -/var/log/syslog
50
- kern.* -/var/log/kern.log
51
- mail.* -/var/log/mail.log
52
-
53
- # Remote logging to centralized server
54
- *.* @@logserver.example.com:514 # TCP
55
- # Or UDP
56
- *.* @logserver.example.com:514 # UDP
57
-
58
- # Filter specific logs
59
- :programname, isequal, "myapp" /var/log/myapp.log
60
- & stop # Don't process further
61
-
62
- # Restart rsyslog
63
- sudo systemctl restart rsyslog
64
- ```
65
-
66
- **Centralized Log Server:**
67
- ```bash
68
- # /etc/rsyslog.conf on log server
69
-
70
- # Enable UDP reception
71
- module(load="imudp")
72
- input(type="imudp" port="514")
73
-
74
- # Enable TCP reception
75
- module(load="imtcp")
76
- input(type="imtcp" port="514")
77
-
78
- # Template for organizing logs by hostname
79
- $template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
80
- *.* ?RemoteLogs
81
- & stop
82
- ```
83
-
84
- ### journald Configuration
85
-
86
- ```bash
87
- # /etc/systemd/journald.conf
88
-
89
- [Journal]
90
- # Persistent storage
91
- Storage=persistent
92
-
93
- # Max disk usage
94
- SystemMaxUse=1G
95
- RuntimeMaxUse=100M
96
-
97
- # Keep logs for 30 days
98
- MaxRetentionSec=2592000
99
-
100
- # Forward to syslog
101
- ForwardToSyslog=yes
102
-
103
- # Restart journald
104
- sudo systemctl restart systemd-journald
105
- ```
106
-
107
- **Query journald:**
108
- ```bash
109
- # View all logs
110
- journalctl
111
-
112
- # Follow logs
113
- journalctl -f
114
-
115
- # Specific service
116
- journalctl -u nginx.service
117
-
118
- # Since time
119
- journalctl --since "2024-01-01 00:00:00"
120
- journalctl --since "1 hour ago"
121
-
122
- # Priority level
123
- journalctl -p err # Errors only
124
- journalctl -p warning # Warnings and above
125
-
126
- # Specific boot
127
- journalctl -b # Current boot
128
- journalctl -b -1 # Previous boot
129
-
130
- # Export to file
131
- journalctl -u myapp --since today > /tmp/myapp-logs.txt
132
-
133
- # JSON format
134
- journalctl -u myapp -o json-pretty
135
- ```
136
-
137
- ### Loki (Grafana Loki)
138
-
139
- **Install Loki:**
140
- ```bash
141
- # Download Loki
142
- wget https://github.com/grafana/loki/releases/download/v2.9.0/loki-linux-amd64.zip
143
- unzip loki-linux-amd64.zip
144
- sudo mv loki-linux-amd64 /usr/local/bin/loki
145
- ```
146
-
147
- **Loki Configuration:**
148
- ```yaml
149
- # /etc/loki/config.yml
150
- auth_enabled: false
151
-
152
- server:
153
- http_listen_port: 3100
154
- grpc_listen_port: 9096
155
-
156
- common:
157
- path_prefix: /var/loki
158
- storage:
159
- filesystem:
160
- chunks_directory: /var/loki/chunks
161
- rules_directory: /var/loki/rules
162
- replication_factor: 1
163
- ring:
164
- kvstore:
165
- store: inmemory
166
-
167
- schema_config:
168
- configs:
169
- - from: 2023-01-01
170
- store: boltdb-shipper
171
- object_store: filesystem
172
- schema: v11
173
- index:
174
- prefix: index_
175
- period: 24h
176
-
177
- limits_config:
178
- retention_period: 720h # 30 days
179
- ```
180
-
181
- **Systemd Service:**
182
- ```ini
183
- # /etc/systemd/system/loki.service
184
- [Unit]
185
- Description=Loki Log Aggregation System
186
- After=network.target
187
-
188
- [Service]
189
- Type=simple
190
- User=loki
191
- ExecStart=/usr/local/bin/loki -config.file=/etc/loki/config.yml
192
- Restart=always
193
-
194
- [Install]
195
- WantedBy=multi-user.target
196
- ```
197
-
198
- **Promtail (Log Shipper):**
199
- ```yaml
200
- # /etc/promtail/config.yml
201
- server:
202
- http_listen_port: 9080
203
- grpc_listen_port: 0
204
-
205
- positions:
206
- filename: /var/lib/promtail/positions.yaml
207
-
208
- clients:
209
- - url: http://loki-server:3100/loki/api/v1/push
210
-
211
- scrape_configs:
212
- - job_name: system
213
- static_configs:
214
- - targets:
215
- - localhost
216
- labels:
217
- job: varlogs
218
- host: ${HOSTNAME}
219
- __path__: /var/log/*log
220
-
221
- - job_name: nginx
222
- static_configs:
223
- - targets:
224
- - localhost
225
- labels:
226
- job: nginx
227
- __path__: /var/log/nginx/*log
228
-
229
- - job_name: application
230
- static_configs:
231
- - targets:
232
- - localhost
233
- labels:
234
- job: myapp
235
- __path__: /var/log/myapp/*.log
236
- ```
237
-
238
- ## Metrics Collection
239
-
240
- ### Prometheus Node Exporter
241
-
242
- **Install:**
243
- ```bash
244
- # Download node_exporter
245
- wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
246
- tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
247
- sudo cp node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
248
- ```
249
-
250
- **Systemd Service:**
251
- ```ini
252
- # /etc/systemd/system/node_exporter.service
253
- [Unit]
254
- Description=Node Exporter
255
- After=network.target
256
-
257
- [Service]
258
- Type=simple
259
- User=node_exporter
260
- ExecStart=/usr/local/bin/node_exporter \
261
- --collector.filesystem.mount-points-exclude='^/(sys|proc|dev|run)($|/)' \
262
- --collector.netclass.ignored-devices='^(veth|docker|lo).*'
263
- Restart=always
264
-
265
- [Install]
266
- WantedBy=multi-user.target
267
- ```
268
-
269
- **Enable and Start:**
270
- ```bash
271
- sudo useradd -rs /bin/false node_exporter
272
- sudo systemctl daemon-reload
273
- sudo systemctl enable node_exporter
274
- sudo systemctl start node_exporter
275
-
276
- # Verify
277
- curl http://localhost:9100/metrics
278
- ```
279
-
280
- ### Prometheus Server
281
-
282
- **Install Prometheus:**
283
- ```bash
284
- wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
285
- tar xvfz prometheus-2.47.0.linux-amd64.tar.gz
286
- sudo cp prometheus-2.47.0.linux-amd64/{prometheus,promtool} /usr/local/bin/
287
- sudo mkdir -p /etc/prometheus /var/lib/prometheus
288
- ```
289
-
290
- **Configuration:**
291
- ```yaml
292
- # /etc/prometheus/prometheus.yml
293
- global:
294
- scrape_interval: 15s
295
- evaluation_interval: 15s
296
- external_labels:
297
- cluster: 'production'
298
- region: 'us-east-1'
299
-
300
- # Alertmanager configuration
301
- alerting:
302
- alertmanagers:
303
- - static_configs:
304
- - targets:
305
- - localhost:9093
306
-
307
- # Load rules
308
- rule_files:
309
- - "alerts/*.yml"
310
-
311
- scrape_configs:
312
- # Prometheus itself
313
- - job_name: 'prometheus'
314
- static_configs:
315
- - targets: ['localhost:9090']
316
-
317
- # Node exporters
318
- - job_name: 'node'
319
- static_configs:
320
- - targets:
321
- - 'web1:9100'
322
- - 'web2:9100'
323
- - 'db1:9100'
324
- labels:
325
- env: 'production'
326
- role: 'backend'
327
-
328
- # Application metrics
329
- - job_name: 'myapp'
330
- static_configs:
331
- - targets:
332
- - 'web1:8080'
333
- - 'web2:8080'
334
- metrics_path: '/metrics'
335
- ```
336
-
337
- **Systemd Service:**
338
- ```ini
339
- # /etc/systemd/system/prometheus.service
340
- [Unit]
341
- Description=Prometheus
342
- After=network.target
343
-
344
- [Service]
345
- Type=simple
346
- User=prometheus
347
- ExecStart=/usr/local/bin/prometheus \
348
- --config.file=/etc/prometheus/prometheus.yml \
349
- --storage.tsdb.path=/var/lib/prometheus \
350
- --web.console.templates=/etc/prometheus/consoles \
351
- --web.console.libraries=/etc/prometheus/console_libraries \
352
- --storage.tsdb.retention.time=30d
353
- Restart=always
354
-
355
- [Install]
356
- WantedBy=multi-user.target
357
- ```
358
-
359
- ### Telegraf
360
-
361
- **Install:**
362
- ```bash
363
- wget -q https://repos.influxdata.com/influxdata-archive_compat.key
364
- echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
365
- echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
366
- sudo apt-get update && sudo apt-get install telegraf
367
- ```
368
-
369
- **Configuration:**
370
- ```toml
371
- # /etc/telegraf/telegraf.conf
372
-
373
- [global_tags]
374
- env = "production"
375
- datacenter = "us-east-1"
376
-
377
- [agent]
378
- interval = "10s"
379
- round_interval = true
380
- metric_batch_size = 1000
381
- metric_buffer_limit = 10000
382
-
383
- # Output to InfluxDB
384
- [[outputs.influxdb_v2]]
385
- urls = ["http://influxdb:8086"]
386
- token = "$INFLUX_TOKEN"
387
- organization = "myorg"
388
- bucket = "metrics"
389
-
390
- # Output to Prometheus
391
- [[outputs.prometheus_client]]
392
- listen = ":9273"
393
-
394
- # Input plugins
395
- [[inputs.cpu]]
396
- percpu = true
397
- totalcpu = true
398
- collect_cpu_time = false
399
- report_active = false
400
-
401
- [[inputs.disk]]
402
- ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
403
-
404
- [[inputs.diskio]]
405
-
406
- [[inputs.mem]]
407
-
408
- [[inputs.net]]
409
-
410
- [[inputs.system]]
411
-
412
- [[inputs.processes]]
413
-
414
- [[inputs.nginx]]
415
- urls = ["http://localhost/nginx_status"]
416
-
417
- [[inputs.postgresql]]
418
- address = "host=localhost user=telegraf database=postgres sslmode=disable"
419
- ```
420
-
421
- ## APM Tools Integration
422
-
423
- ### Application Metrics (Node.js Example)
424
-
425
- ```javascript
426
- // Express.js with Prometheus metrics
427
- const express = require('express');
428
- const promClient = require('prom-client');
429
-
430
- const app = express();
431
-
432
- // Create a Registry
433
- const register = new promClient.Registry();
434
-
435
- // Add default metrics
436
- promClient.collectDefaultMetrics({ register });
437
-
438
- // Custom metrics
439
- const httpRequestDuration = new promClient.Histogram({
440
- name: 'http_request_duration_seconds',
441
- help: 'Duration of HTTP requests in seconds',
442
- labelNames: ['method', 'route', 'status_code'],
443
- buckets: [0.1, 0.5, 1, 2, 5]
444
- });
445
-
446
- const httpRequestTotal = new promClient.Counter({
447
- name: 'http_requests_total',
448
- help: 'Total number of HTTP requests',
449
- labelNames: ['method', 'route', 'status_code']
450
- });
451
-
452
- register.registerMetric(httpRequestDuration);
453
- register.registerMetric(httpRequestTotal);
454
-
455
- // Middleware to track metrics
456
- app.use((req, res, next) => {
457
- const start = Date.now();
458
-
459
- res.on('finish', () => {
460
- const duration = (Date.now() - start) / 1000;
461
- const route = req.route ? req.route.path : req.path;
462
-
463
- httpRequestDuration.labels(req.method, route, res.statusCode).observe(duration);
464
- httpRequestTotal.labels(req.method, route, res.statusCode).inc();
465
- });
466
-
467
- next();
468
- });
469
-
470
- // Metrics endpoint
471
- app.get('/metrics', async (req, res) => {
472
- res.set('Content-Type', register.contentType);
473
- res.end(await register.metrics());
474
- });
475
-
476
- app.listen(3000);
477
- ```
478
-
479
- ## Dashboard Creation
480
-
481
- ### Grafana Installation
482
-
483
- ```bash
484
- # Install Grafana
485
- sudo apt-get install -y software-properties-common
486
- sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
487
- wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
488
- sudo apt-get update
489
- sudo apt-get install grafana
490
-
491
- # Start Grafana
492
- sudo systemctl start grafana-server
493
- sudo systemctl enable grafana-server
494
-
495
- # Access: http://localhost:3000
496
- # Default credentials: admin/admin
497
- ```
498
-
499
- ### Grafana Dashboard JSON (Node Exporter)
500
-
501
- ```json
502
- {
503
- "dashboard": {
504
- "title": "System Metrics",
505
- "panels": [
506
- {
507
- "title": "CPU Usage",
508
- "targets": [
509
- {
510
- "expr": "100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)"
511
- }
512
- ],
513
- "type": "graph"
514
- },
515
- {
516
- "title": "Memory Usage",
517
- "targets": [
518
- {
519
- "expr": "100 * (1 - ((node_memory_MemAvailable_bytes) / (node_memory_MemTotal_bytes)))"
520
- }
521
- ],
522
- "type": "graph"
523
- },
524
- {
525
- "title": "Disk Usage",
526
- "targets": [
527
- {
528
- "expr": "100 - ((node_filesystem_avail_bytes{mountpoint=\"/\"} * 100) / node_filesystem_size_bytes{mountpoint=\"/\"})"
529
- }
530
- ],
531
- "type": "gauge"
532
- }
533
- ]
534
- }
535
- }
536
- ```
537
-
538
- ### Common PromQL Queries
539
-
540
- ```promql
541
- # CPU usage per core
542
- rate(node_cpu_seconds_total{mode!="idle"}[5m])
543
-
544
- # Memory usage percentage
545
- 100 * (1 - ((node_memory_MemAvailable_bytes) / (node_memory_MemTotal_bytes)))
546
-
547
- # Disk I/O
548
- rate(node_disk_read_bytes_total[5m])
549
- rate(node_disk_written_bytes_total[5m])
550
-
551
- # Network traffic
552
- rate(node_network_receive_bytes_total{device!~"lo|veth.*"}[5m])
553
- rate(node_network_transmit_bytes_total{device!~"lo|veth.*"}[5m])
554
-
555
- # HTTP request rate
556
- rate(http_requests_total[5m])
557
-
558
- # 95th percentile response time
559
- histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))
560
-
561
- # Error rate
562
- rate(http_requests_total{status_code=~"5.."}[5m])
563
- ```
564
-
565
- ## Alert Configuration
566
-
567
- ### Prometheus Alert Rules
568
-
569
- ```yaml
570
- # /etc/prometheus/alerts/system.yml
571
- groups:
572
- - name: system_alerts
573
- interval: 30s
574
- rules:
575
- # High CPU usage
576
- - alert: HighCPUUsage
577
- expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
578
- for: 5m
579
- labels:
580
- severity: warning
581
- component: system
582
- annotations:
583
- summary: "High CPU usage on {{ $labels.instance }}"
584
- description: "CPU usage is above 80% (current: {{ $value | humanize }}%)"
585
-
586
- # High memory usage
587
- - alert: HighMemoryUsage
588
- expr: 100 * (1 - ((node_memory_MemAvailable_bytes) / (node_memory_MemTotal_bytes))) > 90
589
- for: 5m
590
- labels:
591
- severity: warning
592
- annotations:
593
- summary: "High memory usage on {{ $labels.instance }}"
594
- description: "Memory usage is above 90% (current: {{ $value | humanize }}%)"
595
-
596
- # Disk space low
597
- - alert: DiskSpaceLow
598
- expr: 100 - ((node_filesystem_avail_bytes{mountpoint="/"} * 100) / node_filesystem_size_bytes{mountpoint="/"}) > 85
599
- for: 10m
600
- labels:
601
- severity: warning
602
- annotations:
603
- summary: "Disk space low on {{ $labels.instance }}"
604
- description: "Disk usage is above 85% (current: {{ $value | humanize }}%)"
605
-
606
- # Instance down
607
- - alert: InstanceDown
608
- expr: up == 0
609
- for: 1m
610
- labels:
611
- severity: critical
612
- annotations:
613
- summary: "Instance {{ $labels.instance }} is down"
614
- description: "{{ $labels.instance }} has been down for more than 1 minute"
615
- ```
616
-
617
- ### Alertmanager Configuration
618
-
619
- ```yaml
620
- # /etc/alertmanager/alertmanager.yml
621
- global:
622
- resolve_timeout: 5m
623
- slack_api_url: 'https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK'
624
-
625
- route:
626
- group_by: ['alertname', 'cluster']
627
- group_wait: 10s
628
- group_interval: 10s
629
- repeat_interval: 12h
630
- receiver: 'slack-notifications'
631
-
632
- routes:
633
- - match:
634
- severity: critical
635
- receiver: 'pagerduty-critical'
636
-
637
- - match:
638
- severity: warning
639
- receiver: 'slack-notifications'
640
-
641
- receivers:
642
- - name: 'slack-notifications'
643
- slack_configs:
644
- - channel: '#alerts'
645
- title: 'Alert: {{ .GroupLabels.alertname }}'
646
- text: '{{ range .Alerts }}{{ .Annotations.description }}{{ end }}'
647
-
648
- - name: 'pagerduty-critical'
649
- pagerduty_configs:
650
- - service_key: 'YOUR_PAGERDUTY_KEY'
651
-
652
- - name: 'email-team'
653
- email_configs:
654
- - to: 'team@example.com'
655
- from: 'alerts@example.com'
656
- smarthost: 'smtp.example.com:587'
657
- auth_username: 'alerts@example.com'
658
- auth_password: 'password'
659
-
660
- inhibit_rules:
661
- - source_match:
662
- severity: 'critical'
663
- target_match:
664
- severity: 'warning'
665
- equal: ['alertname', 'instance']
666
- ```
667
-
668
- ## Log Analysis
669
-
670
- ### Log Parsing with grep/awk
671
-
672
- ```bash
673
- # Find errors in logs
674
- grep -i error /var/log/myapp/app.log
675
-
676
- # Count occurrences
677
- grep -c "ERROR" /var/log/myapp/app.log
678
-
679
- # Extract specific fields (Apache access log)
680
- awk '{print $1, $7}' /var/log/apache2/access.log
681
-
682
- # Top 10 IP addresses
683
- awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
684
-
685
- # HTTP status code summary
686
- awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c
687
-
688
- # Response times over threshold
689
- awk '$NF > 1.0 {print $0}' /var/log/app/access.log
690
- ```
691
-
692
- ### Log Analysis Scripts
693
-
694
- ```bash
695
- #!/bin/bash
696
- # analyze-logs.sh - Automated log analysis
697
-
698
- LOG_FILE="/var/log/myapp/app.log"
699
- REPORT_FILE="/var/log/myapp/daily-report-$(date +%Y%m%d).txt"
700
-
701
- {
702
- echo "=== Log Analysis Report ==="
703
- echo "Date: $(date)"
704
- echo "Log file: $LOG_FILE"
705
- echo ""
706
-
707
- echo "=== Error Summary ==="
708
- echo "Total errors: $(grep -c ERROR $LOG_FILE)"
709
- echo "Total warnings: $(grep -c WARN $LOG_FILE)"
710
- echo ""
711
-
712
- echo "=== Top 10 Error Messages ==="
713
- grep ERROR $LOG_FILE | awk -F'ERROR' '{print $2}' | sort | uniq -c | sort -rn | head -10
714
- echo ""
715
-
716
- echo "=== Errors by Hour ==="
717
- grep ERROR $LOG_FILE | awk '{print $1, $2}' | cut -d: -f1 | uniq -c
718
- echo ""
719
-
720
- echo "=== Last 20 Errors ==="
721
- grep ERROR $LOG_FILE | tail -20
722
-
723
- } > $REPORT_FILE
724
-
725
- echo "Report saved to $REPORT_FILE"
726
- ```
727
-
728
- ## Best Practices
729
-
730
- ### 1. Monitoring Strategy
731
-
732
- ```
733
- The Four Golden Signals:
734
- 1. Latency - Response time
735
- 2. Traffic - Request rate
736
- 3. Errors - Error rate
737
- 4. Saturation - Resource utilization
738
- ```
739
-
740
- ### 2. Alert Design
741
-
742
- - **Alert on symptoms, not causes**
743
- - **Make alerts actionable**
744
- - **Include context in notifications**
745
- - **Avoid alert fatigue**
746
- - **Set appropriate thresholds**
747
-
748
- ### 3. Retention Policies
749
-
750
- ```bash
751
- # Logs
752
- - Application logs: 30 days
753
- - System logs: 90 days
754
- - Audit logs: 1 year
755
-
756
- # Metrics
757
- - Raw metrics: 15 days (15s interval)
758
- - 5min aggregates: 90 days
759
- - 1hour aggregates: 2 years
760
- ```
761
-
762
- ### 4. Security
763
-
764
- ```bash
765
- # Secure metrics endpoints
766
- # Use authentication
767
- # Encrypt in transit (TLS)
768
- # Limit access to monitoring systems
769
- # Sanitize log data (no PII, no secrets)
770
- ```
771
-
772
- ### 5. Performance
773
-
774
- ```bash
775
- # Optimize collection intervals
776
- # Use log sampling for high-volume
777
- # Aggregate metrics appropriately
778
- # Archive old data
779
- # Monitor the monitoring system
780
- ```
781
-
782
- ---
783
-
784
- **Related Topics:**
785
- - See [troubleshooting-guide.md](troubleshooting-guide.md) for debugging with logs
786
- - See [performance-tuning.md](performance-tuning.md) for metrics interpretation
787
- - See [security-hardening.md](security-hardening.md) for audit logging