Suivez la santé de vos applications Laravel à travers le prisme d'Eloquent.
Découvrez comment en un coup d'oeil, controller les métriques de vos applications laravel assemblées en un seul tableau de bord.
En tant que développeur indépendant, ma préoccupation principale est de garantir le bon fonctionnement de tous les projets sous ma responsabilité, pour le compte de mes clients comme pour mes projets personnels.
Je me pose des questions telles que : la boutique d'un client a-t-elle réalisé un chiffre d'affaires cohérent pour un mardi ? De nouveaux utilisateurs se sont-ils inscrits sur certains de mes projets annexes ? Le montant moyen des réservations effectuées sur un autre service est-il satisfaisant ?
Je pourrais me connecter à chaque tableau de bord des différentes applications pour vérifier, mais soyons honnêtes, je ne le fais pas tous les jours (et certainement pas plusieurs fois par jour), et je pourrais passer à côté de quelque chose d'important.
Il me fallait donc une solution simple et rapide à déployer sur chacun des projets que je gère.
L'idée initiale de ce projet est de tirer parti du fait que tout projet Laravel (entre autres) partage certaines caractéristiques communes, telles que les horodatages sur les tables.
La seconde idée est la suivante : peut-on supposer que le nombre d'entités (modèle Eloquent) générées par une application est suffisant pour savoir si une application fonctionne correctement ?
Supposons que oui (ce qui est évidemment discutable, mais faisons abstraction) : si la boutique en ligne de mon client X génère entre 10 et 20 commandes par jour, cela signifie que j'ai bien entre 10 et 20 modèles Bill créés dans ma base de données. Je peux donc me contenter de compter le nombre de Bills générées heure par heure et de verser ces informations dans mon tableau de bord. Si cette valeur varie fortement de manière soudaine, je pourrai m'en apercevoir instantanément et réagir en conséquence.
Cela fonctionne avec toutes les entités d'un projet, telles que User, ActivityLog, etc.
À partir de là, j'ai créé un tableau de bord unique dans lequel sont versées ces données de comptage par projet. Pour identifier un projet (que j'appelle une source), on se base sur l'URL, env('APP_URL') et son environnement env('APP_ENV').
La source du projet de mon client est donc https://urlsiteclient.com en environnement de production.
Assez rapidement, je me suis rendu compte que dans certains cas, le nombre d'entités créées ne suffisait pas, par exemple, je voudrais pouvoir faire la somme ou la moyenne de la propriété "montant global". Et bien sûr, les modèles ont souvent des types ou des statuts et il fallait pouvoir filtrer les modèles, j'ai donc ajouté le support des scopes.
Pour rendre tout cela facile à configurer, j'ai créé une bibliothèque PHP nommée eloquentize/laravel-eloquentize-client (une version pour Symfony verra le jour prochainement).
Pour utiliser Eloquentize et contrôler les données clés de plusieurs applications Laravel (quel que soit leur version, à partir de la 5.6), vous devez :
- Créer un compte sur eloquentize.com.
- Générer une clé d’API.
- Copier la clé d’API dans le .env de votre application : ELOQUENTIZE_API_TOKEN=your_api_key_here.
- Installer avec : composer require eloquentize/laravel-eloquentize-client.
- Exécuter : php artisan eloquentize:models-count.
- Utiliser eloquentize:property-aggregate pour vos données spécifiques.
- Éventuellement, lancer eloquentize:models-count-legacy et property-aggregate-legacy pour récupérer les données depuis le lancement de votre application.
- Retourer sur eloquentize.com/app et choisissez les widgets de représentations des données adequate pour visualiser au mieux vos data
Enfin, pour ceux qui sont intéressés par cette solution mais souhaitent l'essayer avant de s'engager, sachez qu'Eloquentize propose une période d'essai de 5 jours, sans nécessité de fournir les informations de carte bancaire. Cette opportunité vous permet de tester pleinement les fonctionnalités et l'efficacité d'Eloquentize sur vos projets Laravel, et ce, sans aucun risque financier. C'est l'occasion idéale pour découvrir comment cette bibliothèque peut simplifier la surveillance et l'analyse de vos données d'application.
ça se passe ici :