@tinkcarlos/skillora 0.2.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 (234) hide show
  1. package/.claude/skills/.temp-skill-index.md +245 -0
  2. package/.claude/skills/SKILL.md +264 -0
  3. package/.claude/skills/api-scaffolding/SKILL.md +431 -0
  4. package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
  5. package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
  6. package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
  7. package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
  8. package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
  9. package/.claude/skills/api-testing-observability/SKILL.md +583 -0
  10. package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
  11. package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
  12. package/.claude/skills/brainstorming/SKILL.md +283 -0
  13. package/.claude/skills/bug-fixing/SKILL.md +382 -0
  14. package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
  15. package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
  16. package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
  17. package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
  18. package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
  19. package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
  20. package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
  21. package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
  22. package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
  23. package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
  24. package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
  25. package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
  26. package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
  27. package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
  28. package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
  29. package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
  30. package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
  31. package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
  32. package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
  33. package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
  34. package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
  35. package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
  36. package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
  37. package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
  38. package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
  39. package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
  40. package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
  41. package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
  42. package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
  43. package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
  44. package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
  45. package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
  46. package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
  47. package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
  48. package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
  49. package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
  50. package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
  51. package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
  52. package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
  53. package/.claude/skills/code-review/SKILL.md +535 -0
  54. package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
  55. package/.claude/skills/code-review/references/automated-analysis.md +456 -0
  56. package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
  57. package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
  58. package/.claude/skills/code-review/references/backend-review.md +868 -0
  59. package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
  60. package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
  61. package/.claude/skills/code-review/references/common-patterns.md +321 -0
  62. package/.claude/skills/code-review/references/configuration-review.md +425 -0
  63. package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
  64. package/.claude/skills/code-review/references/database-review.md +298 -0
  65. package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
  66. package/.claude/skills/code-review/references/external-standards.md +51 -0
  67. package/.claude/skills/code-review/references/feature-review.md +329 -0
  68. package/.claude/skills/code-review/references/file-review-template.md +326 -0
  69. package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
  70. package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
  71. package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
  72. package/.claude/skills/code-review/references/frontend-review.md +783 -0
  73. package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
  74. package/.claude/skills/code-review/references/fullstack-review.md +477 -0
  75. package/.claude/skills/code-review/references/functional-completeness.md +386 -0
  76. package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
  77. package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
  78. package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
  79. package/.claude/skills/code-review/references/iteration-review.md +264 -0
  80. package/.claude/skills/code-review/references/job-review.md +335 -0
  81. package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
  82. package/.claude/skills/code-review/references/logic-completeness.md +535 -0
  83. package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
  84. package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
  85. package/.claude/skills/code-review/references/new-project-review.md +226 -0
  86. package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
  87. package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
  88. package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
  89. package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
  90. package/.claude/skills/code-review/references/python-patterns.md +494 -0
  91. package/.claude/skills/code-review/references/rca-techniques.md +362 -0
  92. package/.claude/skills/code-review/references/report-template.md +430 -0
  93. package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
  94. package/.claude/skills/code-review/references/review-dimensions.md +311 -0
  95. package/.claude/skills/code-review/references/review-guide.md +202 -0
  96. package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
  97. package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
  98. package/.claude/skills/code-review/references/review-record-template.md +195 -0
  99. package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
  100. package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
  101. package/.claude/skills/containerization/SKILL.md +313 -0
  102. package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
  103. package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
  104. package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
  105. package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
  106. package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
  107. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  108. package/.claude/skills/frontend-design/SKILL.md +587 -0
  109. package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
  110. package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
  111. package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
  112. package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
  113. package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
  114. package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
  115. package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
  116. package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
  117. package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
  118. package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
  119. package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
  120. package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
  121. package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
  122. package/.claude/skills/fullstack-developer/SKILL.md +512 -0
  123. package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
  124. package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
  125. package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
  126. package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
  127. package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
  128. package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
  129. package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
  130. package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
  131. package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
  132. package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
  133. package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
  134. package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
  135. package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
  136. package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
  137. package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
  138. package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
  139. package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
  140. package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
  141. package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
  142. package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
  143. package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
  144. package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
  145. package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
  146. package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
  147. package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
  148. package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
  149. package/.claude/skills/performance-optimization/SKILL.md +250 -0
  150. package/.claude/skills/product-requirements/SKILL.md +357 -0
  151. package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
  152. package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
  153. package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
  154. package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
  155. package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
  156. package/.claude/skills/product-requirements/references/external-standards.md +62 -0
  157. package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
  158. package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
  159. package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
  160. package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
  161. package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
  162. package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
  163. package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
  164. package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
  165. package/.claude/skills/react-best-practices/SKILL.md +198 -0
  166. package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
  167. package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
  168. package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
  169. package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
  170. package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
  171. package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
  172. package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
  173. package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
  174. package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
  175. package/.claude/skills/security-audit/SKILL.md +226 -0
  176. package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
  177. package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
  178. package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
  179. package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
  180. package/.claude/skills/shared-references/skill-call-graph.md +230 -0
  181. package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
  182. package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
  183. package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
  184. package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
  185. package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
  186. package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
  187. package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
  188. package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
  189. package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
  190. package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
  191. package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
  192. package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
  193. package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
  194. package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
  195. package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
  196. package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
  197. package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
  198. package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
  199. package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
  200. package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
  201. package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
  202. package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
  203. package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
  204. package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
  205. package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
  206. package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
  207. package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
  208. package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
  209. package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
  210. package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
  211. package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
  212. package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
  213. package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
  214. package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
  215. package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
  216. package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
  217. package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
  218. package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
  219. package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
  220. package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
  221. package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
  222. package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
  223. package/.claude/skills/test-driven-development/SKILL.md +246 -0
  224. package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
  225. package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
  226. package/.claude/skills/using-skillstack/SKILL.md +127 -0
  227. package/.claude/skills/vercel-deploy/SKILL.md +166 -0
  228. package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
  229. package/.claude/skills/verification-before-completion/SKILL.md +305 -0
  230. package/.claude/skills/writing-plans/SKILL.md +259 -0
  231. package/README.md +69 -0
  232. package/bin/cli.js +468 -0
  233. package/lib/init.js +333 -0
  234. package/package.json +29 -0
@@ -0,0 +1,408 @@
1
+ ---
2
+ description: Migration monitoring, CDC, and observability infrastructure
3
+ version: "1.0.0"
4
+ tags: [database, cdc, debezium, kafka, prometheus, grafana, monitoring]
5
+ tool_access: [Read, Write, Edit, Bash, WebFetch]
6
+ ---
7
+
8
+ # Migration Observability and Real-time Monitoring
9
+
10
+ You are a database observability expert specializing in Change Data Capture, real-time migration monitoring, and enterprise-grade observability infrastructure. Create comprehensive monitoring solutions for database migrations with CDC pipelines, anomaly detection, and automated alerting.
11
+
12
+ ## Context
13
+ The user needs observability infrastructure for database migrations, including real-time data synchronization via CDC, comprehensive metrics collection, alerting systems, and visual dashboards.
14
+
15
+ ## Requirements
16
+ $ARGUMENTS
17
+
18
+ ## Instructions
19
+
20
+ ### 1. Observable MongoDB Migrations
21
+
22
+ ```javascript
23
+ const { MongoClient } = require('mongodb');
24
+ const { createLogger, transports } = require('winston');
25
+ const prometheus = require('prom-client');
26
+
27
+ class ObservableAtlasMigration {
28
+ constructor(connectionString) {
29
+ this.client = new MongoClient(connectionString);
30
+ this.logger = createLogger({
31
+ transports: [
32
+ new transports.File({ filename: 'migrations.log' }),
33
+ new transports.Console()
34
+ ]
35
+ });
36
+ this.metrics = this.setupMetrics();
37
+ }
38
+
39
+ setupMetrics() {
40
+ const register = new prometheus.Registry();
41
+
42
+ return {
43
+ migrationDuration: new prometheus.Histogram({
44
+ name: 'mongodb_migration_duration_seconds',
45
+ help: 'Duration of MongoDB migrations',
46
+ labelNames: ['version', 'status'],
47
+ buckets: [1, 5, 15, 30, 60, 300],
48
+ registers: [register]
49
+ }),
50
+ documentsProcessed: new prometheus.Counter({
51
+ name: 'mongodb_migration_documents_total',
52
+ help: 'Total documents processed',
53
+ labelNames: ['version', 'collection'],
54
+ registers: [register]
55
+ }),
56
+ migrationErrors: new prometheus.Counter({
57
+ name: 'mongodb_migration_errors_total',
58
+ help: 'Total migration errors',
59
+ labelNames: ['version', 'error_type'],
60
+ registers: [register]
61
+ }),
62
+ register
63
+ };
64
+ }
65
+
66
+ async migrate() {
67
+ await this.client.connect();
68
+ const db = this.client.db();
69
+
70
+ for (const [version, migration] of this.migrations) {
71
+ await this.executeMigrationWithObservability(db, version, migration);
72
+ }
73
+ }
74
+
75
+ async executeMigrationWithObservability(db, version, migration) {
76
+ const timer = this.metrics.migrationDuration.startTimer({ version });
77
+ const session = this.client.startSession();
78
+
79
+ try {
80
+ this.logger.info(`Starting migration ${version}`);
81
+
82
+ await session.withTransaction(async () => {
83
+ await migration.up(db, session, (collection, count) => {
84
+ this.metrics.documentsProcessed.inc({
85
+ version,
86
+ collection
87
+ }, count);
88
+ });
89
+ });
90
+
91
+ timer({ status: 'success' });
92
+ this.logger.info(`Migration ${version} completed`);
93
+
94
+ } catch (error) {
95
+ this.metrics.migrationErrors.inc({
96
+ version,
97
+ error_type: error.name
98
+ });
99
+ timer({ status: 'failed' });
100
+ throw error;
101
+ } finally {
102
+ await session.endSession();
103
+ }
104
+ }
105
+ }
106
+ ```
107
+
108
+ ### 2. Change Data Capture with Debezium
109
+
110
+ ```python
111
+ import asyncio
112
+ import json
113
+ from kafka import KafkaConsumer, KafkaProducer
114
+ from prometheus_client import Counter, Histogram, Gauge
115
+ from datetime import datetime
116
+
117
+ class CDCObservabilityManager:
118
+ def __init__(self, config):
119
+ self.config = config
120
+ self.metrics = self.setup_metrics()
121
+
122
+ def setup_metrics(self):
123
+ return {
124
+ 'events_processed': Counter(
125
+ 'cdc_events_processed_total',
126
+ 'Total CDC events processed',
127
+ ['source', 'table', 'operation']
128
+ ),
129
+ 'consumer_lag': Gauge(
130
+ 'cdc_consumer_lag_messages',
131
+ 'Consumer lag in messages',
132
+ ['topic', 'partition']
133
+ ),
134
+ 'replication_lag': Gauge(
135
+ 'cdc_replication_lag_seconds',
136
+ 'Replication lag',
137
+ ['source_table', 'target_table']
138
+ )
139
+ }
140
+
141
+ async def setup_cdc_pipeline(self):
142
+ self.consumer = KafkaConsumer(
143
+ 'database.changes',
144
+ bootstrap_servers=self.config['kafka_brokers'],
145
+ group_id='migration-consumer',
146
+ value_deserializer=lambda m: json.loads(m.decode('utf-8'))
147
+ )
148
+
149
+ self.producer = KafkaProducer(
150
+ bootstrap_servers=self.config['kafka_brokers'],
151
+ value_serializer=lambda v: json.dumps(v).encode('utf-8')
152
+ )
153
+
154
+ async def process_cdc_events(self):
155
+ for message in self.consumer:
156
+ event = self.parse_cdc_event(message.value)
157
+
158
+ self.metrics['events_processed'].labels(
159
+ source=event.source_db,
160
+ table=event.table,
161
+ operation=event.operation
162
+ ).inc()
163
+
164
+ await self.apply_to_target(
165
+ event.table,
166
+ event.operation,
167
+ event.data,
168
+ event.timestamp
169
+ )
170
+
171
+ async def setup_debezium_connector(self, source_config):
172
+ connector_config = {
173
+ "name": f"migration-connector-{source_config['name']}",
174
+ "config": {
175
+ "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
176
+ "database.hostname": source_config['host'],
177
+ "database.port": source_config['port'],
178
+ "database.dbname": source_config['database'],
179
+ "plugin.name": "pgoutput",
180
+ "heartbeat.interval.ms": "10000"
181
+ }
182
+ }
183
+
184
+ response = requests.post(
185
+ f"{self.config['kafka_connect_url']}/connectors",
186
+ json=connector_config
187
+ )
188
+ ```
189
+
190
+ ### 3. Enterprise Monitoring and Alerting
191
+
192
+ ```python
193
+ from prometheus_client import Counter, Gauge, Histogram, Summary
194
+ import numpy as np
195
+
196
+ class EnterpriseMigrationMonitor:
197
+ def __init__(self, config):
198
+ self.config = config
199
+ self.registry = prometheus.CollectorRegistry()
200
+ self.metrics = self.setup_metrics()
201
+ self.alerting = AlertingSystem(config.get('alerts', {}))
202
+
203
+ def setup_metrics(self):
204
+ return {
205
+ 'migration_duration': Histogram(
206
+ 'migration_duration_seconds',
207
+ 'Migration duration',
208
+ ['migration_id'],
209
+ buckets=[60, 300, 600, 1800, 3600],
210
+ registry=self.registry
211
+ ),
212
+ 'rows_migrated': Counter(
213
+ 'migration_rows_total',
214
+ 'Total rows migrated',
215
+ ['migration_id', 'table_name'],
216
+ registry=self.registry
217
+ ),
218
+ 'data_lag': Gauge(
219
+ 'migration_data_lag_seconds',
220
+ 'Data lag',
221
+ ['migration_id'],
222
+ registry=self.registry
223
+ )
224
+ }
225
+
226
+ async def track_migration_progress(self, migration_id):
227
+ while migration.status == 'running':
228
+ stats = await self.calculate_progress_stats(migration)
229
+
230
+ self.metrics['rows_migrated'].labels(
231
+ migration_id=migration_id,
232
+ table_name=migration.table
233
+ ).inc(stats.rows_processed)
234
+
235
+ anomalies = await self.detect_anomalies(migration_id, stats)
236
+ if anomalies:
237
+ await self.handle_anomalies(migration_id, anomalies)
238
+
239
+ await asyncio.sleep(30)
240
+
241
+ async def detect_anomalies(self, migration_id, stats):
242
+ anomalies = []
243
+
244
+ if stats.rows_per_second < stats.expected_rows_per_second * 0.5:
245
+ anomalies.append({
246
+ 'type': 'low_throughput',
247
+ 'severity': 'warning',
248
+ 'message': f'Throughput below expected'
249
+ })
250
+
251
+ if stats.error_rate > 0.01:
252
+ anomalies.append({
253
+ 'type': 'high_error_rate',
254
+ 'severity': 'critical',
255
+ 'message': f'Error rate exceeds threshold'
256
+ })
257
+
258
+ return anomalies
259
+
260
+ async def setup_migration_dashboard(self):
261
+ dashboard_config = {
262
+ "dashboard": {
263
+ "title": "Database Migration Monitoring",
264
+ "panels": [
265
+ {
266
+ "title": "Migration Progress",
267
+ "targets": [{
268
+ "expr": "rate(migration_rows_total[5m])"
269
+ }]
270
+ },
271
+ {
272
+ "title": "Data Lag",
273
+ "targets": [{
274
+ "expr": "migration_data_lag_seconds"
275
+ }]
276
+ }
277
+ ]
278
+ }
279
+ }
280
+
281
+ response = requests.post(
282
+ f"{self.config['grafana_url']}/api/dashboards/db",
283
+ json=dashboard_config,
284
+ headers={'Authorization': f"Bearer {self.config['grafana_token']}"}
285
+ )
286
+
287
+ class AlertingSystem:
288
+ def __init__(self, config):
289
+ self.config = config
290
+
291
+ async def send_alert(self, title, message, severity, **kwargs):
292
+ if 'slack' in self.config:
293
+ await self.send_slack_alert(title, message, severity)
294
+
295
+ if 'email' in self.config:
296
+ await self.send_email_alert(title, message, severity)
297
+
298
+ async def send_slack_alert(self, title, message, severity):
299
+ color = {
300
+ 'critical': 'danger',
301
+ 'warning': 'warning',
302
+ 'info': 'good'
303
+ }.get(severity, 'warning')
304
+
305
+ payload = {
306
+ 'text': title,
307
+ 'attachments': [{
308
+ 'color': color,
309
+ 'text': message
310
+ }]
311
+ }
312
+
313
+ requests.post(self.config['slack']['webhook_url'], json=payload)
314
+ ```
315
+
316
+ ### 4. Grafana Dashboard Configuration
317
+
318
+ ```python
319
+ dashboard_panels = [
320
+ {
321
+ "id": 1,
322
+ "title": "Migration Progress",
323
+ "type": "graph",
324
+ "targets": [{
325
+ "expr": "rate(migration_rows_total[5m])",
326
+ "legendFormat": "{{migration_id}} - {{table_name}}"
327
+ }]
328
+ },
329
+ {
330
+ "id": 2,
331
+ "title": "Data Lag",
332
+ "type": "stat",
333
+ "targets": [{
334
+ "expr": "migration_data_lag_seconds"
335
+ }],
336
+ "fieldConfig": {
337
+ "thresholds": {
338
+ "steps": [
339
+ {"value": 0, "color": "green"},
340
+ {"value": 60, "color": "yellow"},
341
+ {"value": 300, "color": "red"}
342
+ ]
343
+ }
344
+ }
345
+ },
346
+ {
347
+ "id": 3,
348
+ "title": "Error Rate",
349
+ "type": "graph",
350
+ "targets": [{
351
+ "expr": "rate(migration_errors_total[5m])"
352
+ }]
353
+ }
354
+ ]
355
+ ```
356
+
357
+ ### 5. CI/CD Integration
358
+
359
+ ```yaml
360
+ name: Migration Monitoring
361
+
362
+ on:
363
+ push:
364
+ branches: [main]
365
+
366
+ jobs:
367
+ monitor-migration:
368
+ runs-on: ubuntu-latest
369
+
370
+ steps:
371
+ - uses: actions/checkout@v4
372
+
373
+ - name: Start Monitoring
374
+ run: |
375
+ python migration_monitor.py start \
376
+ --migration-id ${{ github.sha }} \
377
+ --prometheus-url ${{ secrets.PROMETHEUS_URL }}
378
+
379
+ - name: Run Migration
380
+ run: |
381
+ python migrate.py --environment production
382
+
383
+ - name: Check Migration Health
384
+ run: |
385
+ python migration_monitor.py check \
386
+ --migration-id ${{ github.sha }} \
387
+ --max-lag 300
388
+ ```
389
+
390
+ ## Output Format
391
+
392
+ 1. **Observable MongoDB Migrations**: Atlas framework with metrics and validation
393
+ 2. **CDC Pipeline with Monitoring**: Debezium integration with Kafka
394
+ 3. **Enterprise Metrics Collection**: Prometheus instrumentation
395
+ 4. **Anomaly Detection**: Statistical analysis
396
+ 5. **Multi-channel Alerting**: Email, Slack, PagerDuty integrations
397
+ 6. **Grafana Dashboard Automation**: Programmatic dashboard creation
398
+ 7. **Replication Lag Tracking**: Source-to-target lag monitoring
399
+ 8. **Health Check Systems**: Continuous pipeline monitoring
400
+
401
+ Focus on real-time visibility, proactive alerting, and comprehensive observability for zero-downtime migrations.
402
+
403
+ ## Cross-Plugin Integration
404
+
405
+ This plugin integrates with:
406
+ - **sql-migrations**: Provides observability for SQL migrations
407
+ - **nosql-migrations**: Monitors NoSQL transformations
408
+ - **migration-integration**: Coordinates monitoring across workflows