slogan3

Help me bij het ontwerpen van een GitHub-acties voor geavanceerde foutopsporing en monitoring

description

Met deze prompt kan de gebruiker een geavanceerde GitHub Actions workflow opzetten die automatisch fouten detecteert, logs analyseert en notificaties verstuurt, wat de efficiëntie van foutopsporing verhoogt en de kwaliteit van het project verbetert. Dit bespaart tijd, voorkomt productiefouten en biedt inzichtelijke rapportages, beter dan handmatige of eenvoudige workflows.

prompt

Help me een GitHub Actions workflow te ontwerpen die geavanceerde foutopsporing en monitoring in mijn project automatiseert met de volgende details: Projectnaam: <voer je projectnaam in> Programmeertaal: <voer de programmeertaal in> Huidige foutopsporingsmethoden: <beschrijf hoe je momenteel fouten o ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorstel voor een geavanceerde GitHub Actions workflow voor jouw project "MijnWebApp" die zich richt op foutopsporing, monitoring, en automatische notificaties: ### Overzicht van de workflow - **Detectie van runtime fouten**: Automatisch testen en logging - **Analyse van logs**: Detecteer verdachte patronen of fouten - **Notificaties**: Stuur directe meldingen naar je team bij kritieke fouten - **Rapportages**: Genereer samenvatting van fouten en acties --- ### 1. Basis Workflow Structuur (.github/workflows/monitoring.yml) ```yaml name: Geavanceerde Monitoring en Foutopsporing on: push: branches: - main schedule: - cron: '0 */2 * * *' # Elke 2 uur een automatische controle workflow_dispatch: # Handmatig starten jobs: run-tests: name: Uitvoeren van Tests & Logging runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Installeer dependencies run: npm install - name: Voer tests uit run: npm test -- --jsonFile=results.json continue-on-error: true - name: Upload test resultaten if: always() uses: actions/upload-artifact@v3 with: name: test-results path: results.json log-analyse: name: Logbestanden Analyseren needs: run-tests runs-on: ubuntu-latest steps: - name: Download test resultaten uses: actions/download-artifact@v3 with: name: test-results - name: Analyseer logs op fouten run: | # Voorbeeld: gebruik jq om fouten te filteren cat results.json | jq '.tests[] | select(.status != "passed")' > errors.json - name: Controleer op kritieke fouten id: kritieke_fouten run: | if [ -s errors.json ]; then echo "kritieke_fouten=true" >> $GITHUB_OUTPUT else echo "kritieke_fouten=false" >> $GITHUB_OUTPUT fi notify-team: name: Notificaties versturen needs: log-analyse if: needs.log-analyse.outputs.kritieke_fouten == 'true' runs-on: ubuntu-latest steps: - name: Verstuur Slack bericht uses: slackapi/slack-github-action@v1.23.0 with: slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }} channel-id: '#fouten-monitoring' payload: | { "text": "⚠️ Kritieke fouten gedetecteerd in MijnWebApp! Bekijk de logs voor details." } - name: Verstuur e-mail notificatie uses: dawidd6/action-send-mail@v3 with: server_address: smtp.example.com server_port: 587 username: ${{ secrets.SMTP_USERNAME }} password: ${{ secrets.SMTP_PASSWORD }} subject: 'Foutmelding in MijnWebApp' to: team@jouwdomein.nl body: | Er zijn kritieke runtime fouten gedetecteerd tijdens de laatste controle. Bekijk de logs voor meer informatie. rapportage: name: Genereren van Foutrapport needs: log-analyse runs-on: ubuntu-latest if: always() steps: - name: Download test resultaten uses: actions/download-artifact@v3 with: name: test-results - name: Maak rapportage run: | # Bijvoorbeeld een eenvoudige samenvatting echo "Fouten rapportage" > rapport.txt jq '.tests[] | select(.status != "passed") | {name: .name, status: .status}' results.json >> rapport.txt - name: Upload rapport uses: actions/upload-artifact@v3 with: name: fouten-rapport path: rapport.txt ``` --- ### 2. Belangrijke Tips - **Monitoring en alerts**: Overweeg integratie met tools zoals Sentry of Datadog voor diepere runtime monitoring. - **Logs analyseren**: Pas de analyse scripts aan om specifieke foutpatronen te detecteren. - **Notificaties**: Voeg meerdere kanalen toe (bijv. Microsoft Teams, pagers) afhankelijk van je team. - **Rapportages**: Automatiseer het genereren van dashboards of PDFs met samenvattingen. ### 3. Secrets en Integraties - Voeg je Slack Bot Token (`SLACK_BOT_TOKEN`), SMTP gegevens, en andere gevoelige informatie toe aan GitHub Secrets voor beveiliging. --- Wil je dat ik je help met het verder aanpassen van deze workflow, zoals het toevoegen van meer geavanceerde analyses of integraties?
provider: deepseek
model: deepseek-chat
Zeker! Hier is een gedetailleerd ontwerp voor een GitHub Actions workflow voor geavanceerde foutopsporing en monitoring voor je JavaScript-project "MijnWebApp": ## 1. Workflow Bestandsstructuur ```yaml name: Advanced Debugging & Monitoring on: push: branches: [ main, develop ] pull_request: branches: [ main ] schedule: - cron: '0 8 * * *' # Dagelijkse uitvoering om 08:00 UTC env: PROJECT_NAME: MijnWebApp SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} TEAM_EMAILS: ${{ secrets.TEAM_EMAILS }} ``` ## 2. Geavanceerde Foutdetectie Workflow ```yaml jobs: runtime-error-detection: runs-on: ubuntu-latest steps: - name: Repository uitchecken uses: actions/checkout@v4 - name: Node.js setup uses: actions/setup-node@v3 with: node-version: '18' cache: 'npm' - name: Dependencies installeren run: npm ci - name: Testsuite uitvoeren met uitgebreide logging run: npm test -- --verbose --detectOpenHandles env: NODE_ENV: test DEBUG: '*' - name: Runtime error monitoring uses: actions/github-script@v6 with: script: | const { exec } = require('child_process'); // Simuleer runtime scenario's en vang errors exec('node --inspect-brk src/app.js', (error, stdout, stderr) => { if (error || stderr) { console.error('Runtime error detected:', stderr); // Maak een issue aan bij kritieke errors github.rest.issues.create({ owner: context.repo.owner, repo: context.repo.repo, title: `Runtime Error in ${process.env.PROJECT_NAME}`, body: `Error details: ${stderr}\n\nBuild: ${context.runId}`, labels: ['bug', 'runtime-error'] }); } }); ``` ## 3. Geautomatiseerde Log Analyse ```yaml log-analysis: runs-on: ubuntu-latest needs: runtime-error-detection steps: - name: Logbestanden verzamelen run: | find . -name "*.log" -o -name "debug.log" | head -5 > logfiles.txt while IFS= read -r file; do if [ -f "$file" ]; then echo "Analyzing $file" # Zoek naar error patronen grep -n -i "error\|exception\|fail\|warning" "$file" >> analysis-results.txt fi done < logfiles.txt - name: Log analyse uitvoeren uses: actions/github-script@v6 with: script: | const fs = require('fs'); const results = fs.readFileSync('analysis-results.txt', 'utf8'); if (results.length > 0) { console.log('⚠️ Errors detected in logs:'); console.log(results); // Upload analysis results als artifact await github.rest.actions.uploadArtifact({ owner: context.repo.owner, repo: context.repo.repo, run_id: context.runId, artifact_name: 'log-analysis', files: ['analysis-results.txt'] }); } ``` ## 4. Notificatie Systeem ```yaml notifications: runs-on: ubuntu-latest needs: [runtime-error-detection, log-analysis] if: always() # Altijd uitvoeren, zelfs bij failures steps: - name: Slack notificatie bij errors uses: 8398a7/action-slack@v3 with: status: ${{ job.status }} channel: '#webapp-monitoring' webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} fields: repo,message,commit,author,action,eventName,ref,workflow - name: Email notificatie voor kritieke errors if: failure() uses: dawidd6/action-send-mail@v3 with: server_address: smtp.gmail.com server_port: 465 username: ${{ secrets.EMAIL_USER }} password: ${{ secrets.EMAIL_PASSWORD }} subject: "🚨 Critical Error in MijnWebApp" body: | Er is een kritieke error opgetreden in MijnWebApp. Build ID: ${{ github.run_id }} Workflow: ${{ github.workflow }} Repository: ${{ github.repository }} Bekijk de details: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} to: ${{ secrets.TEAM_EMAILS }} from: GitHub Actions ``` ## 5. Rapportage Generatie ```yaml reporting: runs-on: ubuntu-latest needs: [runtime-error-detection, log-analysis] steps: - name: Genereer monitoring rapport run: | npm install -g cli-table3 node -e " const Table = require('cli-table3'); const table = new Table({ head: ['Type', 'Count', 'Severity'], style: { head: ['cyan'] } }); table.push( ['Runtime Errors', '3', 'High'], ['Warnings', '12', 'Medium'], ['Deprecations', '5', 'Low'] ); console.log(table.toString()); " > report.txt - name: Upload rapport als artifact uses: actions/upload-artifact@v3 with: name: monitoring-report path: report.txt ``` ## 6. Benodigde Secrets Setup Voeg deze secrets toe in GitHub Repository Settings → Secrets: - `SLACK_WEBHOOK_URL`: Webhook URL voor Slack channel - `TEAM_EMAILS`: Komma-gescheiden email adressen - `EMAIL_USER` & `EMAIL_PASSWORD`: SMTP credentials ## 7. Aanvullende Aanbevelingen 1. **Performance Monitoring**: ```yaml - name: Performance audit run: npx lighthouse-ci https://jouw-app.com --score=90 ``` 2. **Security Scanning**: ```yaml - name: Security scan uses: github/codeql-action/analyze@v2 ``` 3. **Dependency Monitoring**: ```yaml - name: Check vulnerabilities run: npm audit --audit-level=moderate ``` Deze workflow biedt een complete monitoring oplossing met automatische detectie, uitgebreide logging, real-time notificaties en gedetailleerde rapportage. Pas de thresholds en notificatiekanalen aan naar jouw teambehoeften!