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