Integrando monitoramento com CI/CD

Integrando com CI/CD e Deploys

Integre a SuperPing no seu pipeline de deploy para pausar monitoramento automaticamente e evitar alertas falsos.

Por que integrar?

API da SuperPing

Use nossa API REST para controlar monitores:

Autenticação


Headers:
Authorization: Bearer SEU_TOKEN_API
Content-Type: application/json
      

Pausar monitor


POST /api/monitors/{id}/pause
{
  "reason": "Deploy em andamento",
  "duration": 300  // segundos
}
      

Retomar monitor


POST /api/monitors/{id}/resume
      

Integração com GitHub Actions


name: Deploy with monitoring
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      
      - name: Pause monitoring
        run: |
          curl -X POST \
            -H "Authorization: Bearer [SUPERPING_TOKEN]" \
            -H "Content-Type: application/json" \
            -d '{"reason": "Deploy from GitHub", "duration": 600}' \
            https://api.superping.app/monitors/[MONITOR_ID]/pause
      
      - name: Deploy application
        run: |
          # Seus comandos de deploy aqui
          ./deploy.sh
      
      - name: Resume monitoring
        run: |
          curl -X POST \
            -H "Authorization: Bearer [SUPERPING_TOKEN]" \
            https://api.superping.app/monitors/[MONITOR_ID]/resume
        if: always()  # Executa mesmo se deploy falhar
      

Integração com GitLab CI


stages:
  - pause-monitoring
  - deploy
  - resume-monitoring

pause_monitoring:
  stage: pause-monitoring
  script:
    - |
      curl -X POST \
        -H "Authorization: Bearer $SUPERPING_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{"reason": "Deploy from GitLab", "duration": 900}' \
        https://api.superping.app/monitors/$MONITOR_ID/pause

deploy_app:
  stage: deploy
  script:
    - echo "Deploying application..."
    - ./deploy.sh

resume_monitoring:
  stage: resume-monitoring
  script:
    - |
      curl -X POST \
        -H "Authorization: Bearer $SUPERPING_TOKEN" \
        https://api.superping.app/monitors/$MONITOR_ID/resume
  when: always
      

Integração com Jenkins


pipeline {
    agent any
    stages {
        stage('Pause Monitoring') {
            steps {
                script {
                    sh '''
                        curl -X POST \
                          -H "Authorization: Bearer [SUPERPING_TOKEN]" \
                          -H "Content-Type: application/json" \
                          -d '{"reason": "Deploy from Jenkins", "duration": 1200}' \
                          https://api.superping.app/monitors/[MONITOR_ID]/pause
                    '''
                }
            }
        }
        
        stage('Deploy') {
            steps {
                sh './deploy.sh'
            }
        }
    }
    
    post {
        always {
            script {
                sh '''
                    curl -X POST \
                      -H "Authorization: Bearer [SUPERPING_TOKEN]" \
                      https://api.superping.app/monitors/[MONITOR_ID]/resume
                '''
            }
        }
    }
}
      

Script bash para deploys manuais


#!/bin/bash

SUPERPING_TOKEN="seu_token_aqui"
MONITOR_ID="seu_monitor_id"
DEPLOY_REASON="Deploy manual"
DEPLOY_DURATION=600  # 10 minutos

echo "Pausando monitoramento..."
curl -X POST \
  -H "Authorization: Bearer $SUPERPING_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{"reason": "$DEPLOY_REASON", "duration": $DEPLOY_DURATION}" \
  https://api.superping.app/monitors/$MONITOR_ID/pause

echo "Executando deploy..."
# Seus comandos de deploy aqui
./seus_comandos_deploy.sh

echo "Retomando monitoramento..."
curl -X POST \
  -H "Authorization: Bearer $SUPERPING_TOKEN" \
  https://api.superping.app/monitors/$MONITOR_ID/resume

echo "Deploy concluído!"
      

Webhook para notificar deploys

Configure um webhook para receber notificações de deploy:


POST /webhook/deploy
{
  "event": "deployment.started",
  "monitor_id": "abc123",
  "reason": "Deploy from CI/CD",
  "estimated_duration": 300,
  "deploy_id": "deploy-456",
  "branch": "main",
  "commit": "a1b2c3d4"
}
      

Melhores práticas

Tempo de pausa

Múltiplos ambientes

Rollback

Se deploy falhar:

  1. Execute rollback
  2. Retome monitoramento
  3. Verifique se tudo voltou ao normal
  4. Investigue causa da falha

💡 Dica avançada

Use diferentes durações de pausa baseadas no tipo de deploy: hotfix (5min), feature (15min), major release (30min).

Monitorando o próprio deploy

Crie monitores específicos para: