Help me een GitHub Actions workflow implementeren voor prestatiebewaking en waarschuwingen
description
Door deze workflow te implementeren, kun je proactief de prestaties van je applicatie monitoren, tijdige waarschuwingen ontvangen en je reactie op potentiële problemen verbeteren, wat uiteindelijk de gebruikerservaring en stabiliteit van de applicatie verbetert.
prompt
try_prompt
Ik wil een GitHub Actions workflow opzetten die de prestaties van mijn applicatie bewaakt en waarschuwingen verzendt op basis van specifieke metrics. De details zijn als volgt: Projectnaam: {{project_naam}}. Belangrijke prestatie-indicatoren om te monit ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een overzicht en advies voor het opzetten van een GitHub Actions workflow voor het bewaken van de prestaties van je E-Commerce Platform, inclusief integratie van monitoringtools en meldingen:
1. Workflow opzetten in GitHub Actions:
- Maak een nieuw workflowbestand aan in `.github/workflows/monitoring.yml`.
- Definieer de triggers, bijvoorbeeld bij elke code push, dagelijks of bij bepaalde events.
2. Monitoring van Prestatie-Indicators:
- Responsetijd en geheugen gebruik kunnen niet direct via Google Analytics gemeten worden, omdat GA vooral webverkeersgegevens verzamelt.
- Voor server-side metrics zoals responsetijd en geheugengebruik kun je tools als Prometheus, Grafana, of custom scripts gebruiken.
3. Integratie van Monitoringtools:
- Gebruik bijvoorbeeld `curl` of `ab` (ApacheBench) om responsetijden te testen.
- Gebruik `top`, `free`, of `ps` voor geheugengebruik.
- Een voorbeeld van een eenvoudige testworkflow:
```yaml
name: Prestatie Monitoring
on:
schedule:
- cron: '0 0 * * *' # dagelijks om middernacht
push:
branches:
- main
jobs:
monitor:
runs-on: ubuntu-latest
steps:
- name: Responsetijd testen
run: |
RESPONSE_TIME=$(curl -s -w %{time_total} -o /dev/null https://jouw-website.com)
echo "Responsetijd: $RESPONSE_TIME seconden"
if (( $(echo "$RESPONSE_TIME > 2" |bc -l) )); then
echo "Waarschuwing: Responsetijd is hoger dan 2 seconden!"
# Hier kun je een meldingsstap toevoegen
fi
- name: Geheugengebruik controleren
run: |
MEM_USAGE=$(free -m | awk '/Mem:/ {print $3/$2 * 100.0}')
echo "Huidig geheugengebruik: $MEM_USAGE%"
if (( $(echo "$MEM_USAGE > 80" |bc -l) )); then
echo "Waarschuwing: Geheugengebruik boven 80%!"
# Melding toevoegen
fi
```
4. Alerts en meldingen:
- Gebruik bijvoorbeeld Slack, e-mail of Microsoft Teams voor waarschuwingen.
- Voeg een stap toe die een bericht verstuurt via een webhook wanneer de drempel wordt overschreden.
Voor Slack:
```yaml
- name: Verstuur Slack melding
if: failure() || steps.<step_name>.outputs.<output_name>
run: |
curl -X POST -H 'Content-type: application/json' --data '{"text":"Prestatiewaarschuwing: Responsetijd > 2s"}' https://hooks.slack.com/services/your/webhook/url
```
5. Overweeg gebruik van bestaande monitoringplatforms:
- Integraties met tools zoals Datadog, New Relic, of Grafana kunnen je helpen om metrics continu te bewaken en geavanceerdere waarschuwingen te configureren.
Kort samengevat:
- Automatiser prestatie-tests met GitHub Actions.
- Gebruik scripts of tools voor het verzamelen van responsetijden en geheugengebruik.
- Stel waarschuwingen in via webhooks of e-mail.
- Overweeg een dedicated monitoringplatform voor meer uitgebreide analyses en meldingen.
Wil je een specifiek voorbeeld of hulp bij het opzetten van een integratie met een bepaald monitoringplatform?
provider: deepseek
model: deepseek-chat
Hier is een gedetailleerd advies voor het opzetten van een GitHub Actions workflow voor prestatiemonitoring van je E-Commerce Platform:
## 1. Workflow Structuur
```yaml
name: Performance Monitoring
on:
schedule:
- cron: '*/15 * * * *' # Elke 15 minuten
workflow_dispatch: # Handmatige trigger
jobs:
performance-check:
runs-on: ubuntu-latest
steps:
- name: Uitvoeren prestatiemetingen
run: |
# Script voor het meten van responsetijd en geheugengebruik
# Integreer met je bestaande monitoring tools
```
## 2. Monitoring Tools Integratie
### Aanvullende Tools naast Google Analytics:
- **Lighthouse CI** - Voor uitgebreide prestatiemetingen
- **WebPageTest** - Voor real-user monitoring
- **Custom scripts** - Voor geheugengebruik meting
### Voorbeeld integratie:
```yaml
- name: Lighthouse CI
uses: foo-software/lighthouse-ci-action@v10
with:
urls: |
https://jouw-ecommerce-platform.nl
budgetPath: ./budget.json
```
## 3. Waarschuwingssysteem
### Configuratie voor responsetijd > 2s:
```yaml
- name: Check responsetijd
id: response_check
run: |
RESPONSE_TIME=$(curl -o /dev/null -s -w '%{time_total}' https://jouw-platform.nl)
if (( $(echo "$RESPONSE_TIME > 2" | bc -l) )); then
echo "alert=true" >> $GITHUB_OUTPUT
echo "Response time: $RESPONSE_TIME" >> $GITHUB_STEP_SUMMARY
fi
- name: Stuur waarschuwing
if: steps.response_check.outputs.alert == 'true'
uses: actions/github-script@v6
with:
script: |
github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: '🚨 Prestatie Waarschuwing: Hoge responsetijd',
body: 'De responsetijd overschrijdt 2 seconden. Huidige waarde: ${{ steps.response_check.outputs.response_time }}s'
})
```
## 4. Notificatie Channels
### Slack Integratie:
```yaml
- name: Slack Notificatie
uses: 8398a7/action-slack@v3
with:
status: custom
custom_payload: |
{
"text": "🚨 Prestatie waarschuwing voor E-Commerce Platform",
"attachments": [{
"color": "#FF0000",
"fields": [{
"title": "Responsetijd",
"value": "${{ steps.response_check.outputs.response_time }}s",
"short": true
}]
}]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
```
## 5. Geheugengebruik Monitoring
```yaml
- name: Monitor geheugengebruik
run: |
# Voor Node.js applicatie bijvoorbeeld
MEMORY_USAGE=$(node -e "console.log(process.memoryUsage().heapUsed / 1024 / 1024)")
echo "Geheugengebruik: ${MEMORY_USAGE} MB"
if (( $(echo "$MEMORY_USAGE > 500" | bc -l) )); then
echo "memory_alert=true" >> $GITHUB_OUTPUT
fi
```
## 6. Best Practices
### A. Security:
```yaml
env:
NODE_ENV: production
MONITORING_API_KEY: ${{ secrets.MONITORING_API_KEY }}
```
### B. Performance Budget:
Maak een `budget.json` bestand:
```json
{
"performance": 90,
"accessibility": 90,
"best-practices": 90,
"seo": 90,
"pwa": 50
}
```
### C. Escalatie Matrix:
- **Responsetijd > 2s**: Creëer GitHub Issue
- **Responsetijd > 3s**: Stuur Slack notificatie
- **Geheugengebruik > 500MB**: Stuur email alert
## 7. Monitoring Dashboard
Overweeg ook een dashboard te maken met:
- **Grafana** voor visualisatie
- **Prometheus** voor metrics verzameling
- **DataDog** voor enterprise monitoring
## 8. Continue Optimalisatie
```yaml
- name: Prestatie Trend Analyse
run: |
# Vergelijk met vorige metingen
# Genereer trend rapporten
# Stel automatisch PR's voor optimalisaties voor
```
Dit systeem zorgt voor proactieve monitoring en stelt je team in staat om prestatieproblemen snel te identificeren en op te lossen, wat essentieel is voor een E-Commerce Platform.

