Skip to content

cp12r/cMonitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

🚀 cMonitor

Système de monitoring moderne et élégant pour vos services web

License: MIT Node.js Version TypeScript PostgreSQL

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.

✨ Caractéristiques

  • 🎯 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

🏗️ Architecture

cMonitor/
├── apps/
│   ├── api/          # Backend Fastify + PostgreSQL
│   └── web/          # Frontend SvelteKit
├── shared/            # Utilitaires partagés
└── packages/          # Types et configurations

Stack Technique

  • Backend: Node.js, Fastify, TypeScript, PostgreSQL, Drizzle ORM
  • Frontend: SvelteKit, TypeScript, TailwindCSS
  • Monitoring: WebSocket, Cron jobs, Fetch API
  • Infrastructure: Docker, npm workspaces

🚀 Démarrage Rapide

Prérequis

  • Node.js 20+
  • PostgreSQL 15+
  • npm ou yarn

Installation

# 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 dev

L'application sera disponible sur :

Configuration

# apps/api/.env
PORT=3000
DATABASE_URL=postgresql://postgres:password@localhost:5432/cmonitor
REDIS_URL=redis://localhost:6379
NODE_ENV=development

📖 Utilisation

Ajouter un endpoint à monitorer

curl -X POST http://localhost:3000/api/endpoints \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Mon Service",
    "url": "https://mon-service.com",
    "interval": 30
  }'

Récupérer les statistiques

# Statistiques d'un endpoint
curl http://localhost:3000/api/endpoints/:id/status

# Historique des vérifications
curl http://localhost:3000/api/endpoints/:id/checks

🎯 Concepts Clés

Endpoints

Services web que vous souhaitez monitorer. Chaque endpoint est vérifié à intervalles réguliers.

Checks

Vérifications individuelles de la disponibilité et de la performance d'un endpoint.

Incidents

Périodes de downtime détectées automatiquement lorsque plusieurs checks échouent consécutivement.

Uptime

Pourcentage de disponibilité calculé sur différentes périodes (24h, 7j, 30j).

🔧 Développement

Structure du Projet

// 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);
  });
}

Bonnes Pratiques

  • 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

🤝 Contribution

Nous croyons en l'open source et en la collaboration. Voici comment contribuer :

  1. Fork le repository
  2. Créez une branche (git checkout -b feature/amazing-feature)
  3. Commitez vos changements (git commit -m 'Add amazing feature')
  4. Pushez (git push origin feature/amazing-feature)
  5. Ouvrez une Pull Request

Guidelines de Contribution

  • 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"

📊 Roadmap

  • 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

🏆 Pourquoi cMonitor ?

🎨 Design Penseur

  • Interface utilisateur moderne et intuitive
  • Code source lisible et maintenable
  • Architecture évolutive et robuste

⚡ Performance

  • Monitoring asynchrone non-bloquant
  • Base de données optimisée avec PostgreSQL
  • WebSocket pour les mises à jour en temps réel

🔒 Fiabilité

  • Gestion des erreurs élégante
  • Reconnexion automatique
  • Logs structurés et observabilité

📄 License

Ce projet est sous license MIT - n'hésitez pas à l'utiliser, le modifier et le distribuer.

🙏 Remerciements

  • À 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

GitHub stars GitHub forks GitHub issues

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors