Pular para o conteúdo
Skillpedia
Bancos de dados48 mil · #2719

database-migrations-migration-observability

Ajuda seu agente a monitorar as mudanças nos bancos de dados. Isso é útil para acompanhar o fluxo de dados e garantir que tudo esteja funcionando corretamente.

O que ela faz

Esta ferramenta ajuda a monitorar e observar migrações de banco de dados em tempo real. Ela garante que os dados sejam sincronizados corretamente e detecta problemas durante o processo.

Quando usar

  • ✓Ao mover um banco de dados para um novo sistema.
  • ✓Quando você precisa saber se a cópia dos dados está funcionando bem.
  • ✓Para configurar alertas se algo der errado na migração.

Exemplo do que pedir para a IA

“Como posso monitorar a migração do meu banco de dados?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/database-migrations-migration-observability/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/database-migrations-migration-observability/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela usa ferramentas para registrar o tempo que leva para mover os dados, contar quantos itens foram copiados e registrar quaisquer erros. Também acompanha a sincronização de dados em tempo real.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill database-migrations-migration-observability

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/database-migrations-migration-observability/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Observabilidade de Migração e Monitoramento em Tempo Real

Você é um especialista em observabilidade de banco de dados, especializado em Captura de Dados de Alteração (CDC), monitoramento de migração em tempo real e infraestrutura de observabilidade de nível empresarial. Crie soluções abrangentes de monitoramento para migrações de banco de dados com pipelines de CDC, detecção de anomalias e alertas automatizados.

Use esta habilidade quando

  • Trabalhar em tarefas ou fluxos de trabalho de observabilidade de migração e monitoramento em tempo real
  • Precisar de orientação, melhores práticas ou checklists para observabilidade de migração e monitoramento em tempo real

Não use esta habilidade quando

  • A tarefa não estiver relacionada à observabilidade de migração e monitoramento em tempo real
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Contexto

O usuário precisa de infraestrutura de observabilidade para migrações de banco de dados, incluindo sincronização de dados em tempo real via CDC, coleta abrangente de métricas, sistemas de alerta e painéis visuais.

Requisitos

$ARGUMENTS

Instruções

1. Migrações Observáveis do MongoDB

const { MongoClient } = require('mongodb');
const { createLogger, transports } = require('winston');
const prometheus = require('prom-client');

class ObservableAtlasMigration {
    constructor(connectionString) {
        this.client = new MongoClient(connectionString);
        this.logger = createLogger({
            transports: [
                new transports.File({ filename: 'migrations.log' }),
                new transports.Console()
            ]
        });
        this.metrics = this.setupMetrics();
    }

    setupMetrics() {
        const register = new prometheus.Registry();

        return {
            migrationDuration: new prometheus.Histogram({
                name: 'mongodb_migration_duration_seconds',
                help: 'Duration of MongoDB migrations',
                labelNames: ['version', 'status'],
                buckets: [1, 5, 15, 30, 60, 300],
                registers: [register]
            }),
            documentsProcessed: new prometheus.Counter({
                name: 'mongodb_migration_documents_total',
                help: 'Total documents processed',
                labelNames: ['version', 'collection'],
                registers: [register]
            }),
            migrationErrors: new prometheus.Counter({
                name: 'mongodb_migration_errors_total',
                help: 'Total migration errors',
                labelNames: ['version', 'error_type'],
                registers: [register]
            }),
            register
        };
    }

    async migrate() {
        await this.client.connect();
        const db = this.client.db();

        for (const [version, migration] of this.migrations) {
            await this.executeMigrationWithObservability(db, version, migration);
        }
    }

    async executeMigrationWithObservability(db, version, migration) {
        const timer = this.metrics.migrationDuration.startTimer({ version });
        const session = this.client.startSession();

        try {
            this.logger.info(`Starting migration ${version}`);

            await session.withTransaction(async () => {
                await migration.up(db, session, (collection, count) => {
                    this.metrics.documentsProcessed.inc({
                        version,
                        collection
                    }, count);
                });
            });

            timer({ status: 'success' });
            this.logger.info(`Migration ${version} completed`);

        } catch (error) {
            this.metrics.migrationErrors.inc({
                version,
                error_type: error.name
            });
            timer({ status: 'failed' });
            throw error;
        } finally {
            await session.endSession();
        }
    }
}

2. Captura de Dados de Alteração com Debezium

import asyncio
import json
from kafka import KafkaConsumer, KafkaProducer
from prometheus_client import Counter, Histogram, Gauge
from datetime import datetime

class CDCObservabilityManager:
    def __init__(self, config):
        self.config = config
        self.metrics = self.setup_metrics()

    def setup_metrics(self):
        return {
            'events_processed': Counter(
                'cdc_events_processed_total',
                'Total de eventos CDC processados',
                ['source', 'table', 'operation']
            ),
            'consumer_lag': Gauge(
                'cdc_consumer_lag_messages',

…
Perguntas frequentes

O que é 'observabilidade' neste contexto?

Observabilidade significa ter visibilidade total sobre o que está acontecendo com a migração do banco de dados, permitindo entender e diagnosticar problemas rapidamente.

O que é CDC?

CDC significa 'Change Data Capture' (Captura de Dados de Mudança). É uma técnica para rastrear e enviar as mudanças feitas nos dados de um banco de dados para outro sistema em tempo real.

Quais tipos de banco de dados ela suporta?

O exemplo mostra como monitorar migrações do MongoDB e usar CDC com Debezium, que geralmente se conecta a bancos de dados como PostgreSQL, MySQL e SQL Server.

Detalhes

Descrição original do autor

Migration monitoring, CDC, and observability infrastructure

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2719
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas