Système de monitoring moderne et élégant pour vos services web
cMonitor est une solution de monitoring open-source construite avec passion et expertise. Conçue pour les développeurs qui apprécient le code propre, les performances et l'expérience utilisateur.
- 🎯 Monitoring en temps réel - Suivez l'état de vos services avec des mises à jour instantanées
- 📊 Analytics avancés - Statistiques détaillées de disponibilité et de latence
- 🔧 Configuration flexible - Adaptez les intervalles de vérification et les en-têtes HTTP
- 🚀 Architecture moderne - TypeScript, Fastify, PostgreSQL, SvelteKit
- 📱 Interface responsive - Une expérience utilisateur impeccable sur tous les appareils
- ⚡ Performances optimales - Monitoring asynchrone et gestion intelligente des ressources
cMonitor/
├── apps/
│ ├── api/ # Backend Fastify + PostgreSQL
│ └── web/ # Frontend SvelteKit
├── shared/ # Utilitaires partagés
└── packages/ # Types et configurations
- Backend: Node.js, Fastify, TypeScript, PostgreSQL, Drizzle ORM
- Frontend: SvelteKit, TypeScript, TailwindCSS
- Monitoring: WebSocket, Cron jobs, Fetch API
- Infrastructure: Docker, npm workspaces
- Node.js 20+
- PostgreSQL 15+
- npm ou yarn
# Clonez le repository
git clone https://github.com/votre-username/cmonitor.git
cd cmonitor
# Installez les dépendances
npm install
# Configurez votre base de données
cp apps/api/.env.example apps/api/.env
# Éditez apps/api/.env avec vos credentials PostgreSQL
# Lancez l'application
npm run devL'application sera disponible sur :
- 🌐 Frontend: http://localhost:5173
- 🔌 API: http://localhost:3000
# apps/api/.env
PORT=3000
DATABASE_URL=postgresql://postgres:password@localhost:5432/cmonitor
REDIS_URL=redis://localhost:6379
NODE_ENV=developmentcurl -X POST http://localhost:3000/api/endpoints \
-H "Content-Type: application/json" \
-d '{
"name": "Mon Service",
"url": "https://mon-service.com",
"interval": 30
}'# Statistiques d'un endpoint
curl http://localhost:3000/api/endpoints/:id/status
# Historique des vérifications
curl http://localhost:3000/api/endpoints/:id/checksServices web que vous souhaitez monitorer. Chaque endpoint est vérifié à intervalles réguliers.
Vérifications individuelles de la disponibilité et de la performance d'un endpoint.
Périodes de downtime détectées automatiquement lorsque plusieurs checks échouent consécutivement.
Pourcentage de disponibilité calculé sur différentes périodes (24h, 7j, 30j).
// Architecture modulaire et typée
export class MonitorService {
async checkEndpoint(endpoint: Endpoint): Promise<Check> {
// Logique de monitoring avec timeout et error handling
}
}
// Routes API optimisées avec Fastify
export async function endpointsRoutes(app: FastifyInstance) {
app.get('/endpoints', async () => {
return db.select().from(endpoints);
});
}- Code typé - TypeScript strict pour la sécurité du typage
- Async/await - Gestion moderne des opérations asynchrones
- Error boundaries - Gestion robuste des erreurs
- Performance first - Optimisation des requêtes et monitoring efficace
Nous croyons en l'open source et en la collaboration. Voici comment contribuer :
- Fork le repository
- Créez une branche (
git checkout -b feature/amazing-feature) - Commitez vos changements (
git commit -m 'Add amazing feature') - Pushez (
git push origin feature/amazing-feature) - Ouvrez une Pull Request
- Suivez les standards de code existants
- Ajoutez des tests pour les nouvelles fonctionnalités
- Documentez les changements dans le CHANGELOG
- Respectez la philosophie "code propre, code maintenable"
- Notifications - Slack, Discord, Email alerts
- Dashboard avancé - Graphiques et analytics détaillés
- Multi-régions - Monitoring depuis différentes localisations
- API Public - Partage de statistiques avec le monde
- Mobile App - Application iOS/Android native
- Intégrations - Prometheus, Grafana, Datadog
- Interface utilisateur moderne et intuitive
- Code source lisible et maintenable
- Architecture évolutive et robuste
- Monitoring asynchrone non-bloquant
- Base de données optimisée avec PostgreSQL
- WebSocket pour les mises à jour en temps réel
- Gestion des erreurs élégante
- Reconnexion automatique
- Logs structurés et observabilité
Ce projet est sous license MIT - n'hésitez pas à l'utiliser, le modifier et le distribuer.
- À la communauté open source pour l'inspiration et les outils
- Aux contributeurs qui améliorent cMonitor chaque jour
- À vous, d'utiliser et soutenir ce projet
Built with ❤️ by developers, for developers