Créer et déployer un tableau de bord de mesures en temps réel avec Node.js, Redis et MongoDB
Crée un tableau de bord de mesures en temps réel qui suit les clics, conserve les tendances historiques et diffuse les événements vers le navigateur via WebSockets.
La stack
- Node.js avec Express et Socket.io
- MongoDB pour des événements historiques
- Redis pour les compteurs actifs et le pub/sub
- Environnement d’exécution Adios avec un processus Node persistant
Pourquoi ce workload nécessite un processus persistant
Les applications WebSocket ont besoin d’un processus qui reste actif. Les fonctions serverless peuvent être peu adaptées aux connexions de longue durée, car elles sont conçues pour des requêtes courtes. Sur Adios, le serveur Node.js s’exécute de façon persistante, tandis que la plateforme gère le routage, TLS, les journaux et les connexions aux services gérés.
1. Créer l’application
Demandez à l’agent IA Adios :
Build an Express and Socket.io analytics dashboard. Track click events, store
them in MongoDB, publish live counts through Redis, and show a realtime chart in
the browser. Add /healthz.
2. Ajouter adios.yaml
name: realtime-analytics
region: de
replicas: 1
routable: true
build_cmd: npm ci
start_cmd: node server.js
runtime:
name: node@24
port: 3000
health_path: /healthz
memory_mb: 1024
env:
MONGODB_URI: secret://MONGODB_URI
REDIS_URL: secret://REDIS_URL
requires:
- mongo
- cache
Créez une ressource MongoDB nommée mongo et une ressource Redis nommée cache, ou définissez les deux URL comme secrets si vous disposez déjà de services gérés.
3. Déployer
adios up
adios logs --runtime
4. Tester
Ouvrez le tableau de bord sur un ordinateur portable et un téléphone, cliquez sur différents éléments et observez les deux clients recevoir le même flux en direct. Inspectez ensuite les journaux d’exécution et les enregistrements MongoDB pour confirmer le traitement des données en direct et historiques.
Consultez la Parcours de déploiement Node.js, le Vérifications de déploiement Redis, et le Vérifications de déploiement MongoDB avant d’adapter cette stack aux mesures en production.