add go bench client
This commit is contained in:
208
docs/FEATURE_SCORE_THRESHOLDS.md
Normal file
208
docs/FEATURE_SCORE_THRESHOLDS.md
Normal file
@@ -0,0 +1,208 @@
|
||||
# 📊 Échelle de couleurs des scores de benchmark
|
||||
|
||||
## Vue d'ensemble
|
||||
|
||||
Le système d'échelle de couleurs permet de personnaliser les seuils qui déterminent la couleur des badges de score dans l'application. Par défaut, les scores sont colorés en :
|
||||
- 🔴 **Rouge** (Faible) : scores < 51
|
||||
- 🟠 **Orange** (Moyen) : scores entre 51 et 75
|
||||
- 🟢 **Vert** (Élevé) : scores ≥ 76
|
||||
|
||||
Cette fonctionnalité permet d'ajuster ces seuils en fonction de vos données réelles.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
### 1. Configuration manuelle des seuils
|
||||
|
||||
Vous pouvez ajuster manuellement les deux seuils principaux :
|
||||
- **Seuil Moyen/Élevé** : Score minimum pour qu'un badge soit vert
|
||||
- **Seuil Faible/Moyen** : Score minimum pour qu'un badge soit orange
|
||||
|
||||
### 2. Statistiques en temps réel
|
||||
|
||||
L'interface affiche automatiquement les statistiques de vos benchmarks actuels :
|
||||
- **Minimum** : Le score le plus bas
|
||||
- **Médiane** : Score au milieu de la distribution
|
||||
- **Moyenne** : Score moyen de tous les benchmarks
|
||||
- **Maximum** : Le score le plus élevé
|
||||
|
||||
### 3. Calcul automatique
|
||||
|
||||
Le bouton **"Calculer automatiquement"** analyse vos données et définit les seuils de manière intelligente :
|
||||
- **Seuil Moyen** : Percentile 33% (⅓ des scores sont en dessous)
|
||||
- **Seuil Élevé** : Percentile 66% (⅔ des scores sont en dessous)
|
||||
|
||||
Cela garantit une répartition équilibrée :
|
||||
- ⅓ des scores seront rouges (faibles)
|
||||
- ⅓ des scores seront oranges (moyens)
|
||||
- ⅓ des scores seront verts (élevés)
|
||||
|
||||
## Utilisation
|
||||
|
||||
### Configuration manuelle
|
||||
|
||||
1. Ouvrez [Settings](http://localhost:8087/settings.html)
|
||||
2. Allez à la section **"Échelle de couleurs des scores"**
|
||||
3. Ajustez les curseurs pour les deux seuils
|
||||
4. Cliquez sur **"Enregistrer les seuils"**
|
||||
5. La page se recharge automatiquement
|
||||
|
||||
### Calcul automatique
|
||||
|
||||
1. Ouvrez [Settings](http://localhost:8087/settings.html)
|
||||
2. Allez à la section **"Échelle de couleurs des scores"**
|
||||
3. Consultez les statistiques pour comprendre vos données
|
||||
4. Cliquez sur **"Calculer automatiquement"**
|
||||
5. Vérifiez les seuils proposés
|
||||
6. Cliquez sur **"Enregistrer les seuils"**
|
||||
|
||||
### Réinitialisation
|
||||
|
||||
Pour revenir aux valeurs par défaut (51 et 76) :
|
||||
1. Cliquez sur **"Réinitialiser"**
|
||||
2. Les curseurs reviennent aux valeurs d'origine
|
||||
|
||||
## Exemple d'utilisation
|
||||
|
||||
### Cas 1 : Serveurs haute performance
|
||||
|
||||
Si vous benchmarkez uniquement des serveurs performants, vos scores peuvent être très élevés (ex: 3000-9000). Les seuils par défaut (51, 76) ne sont pas pertinents.
|
||||
|
||||
**Solution** : Utilisez le calcul automatique
|
||||
```
|
||||
Statistiques actuelles :
|
||||
- Min: 3300
|
||||
- Médiane: 5400
|
||||
- Moyenne: 5800
|
||||
- Max: 9100
|
||||
|
||||
Seuils calculés automatiquement :
|
||||
- Seuil Moyen: 4200 (percentile 33%)
|
||||
- Seuil Élevé: 6800 (percentile 66%)
|
||||
```
|
||||
|
||||
Résultat : Distribution équilibrée des couleurs adaptée à vos données.
|
||||
|
||||
### Cas 2 : Mix de machines (Raspberry Pi, serveurs, PC)
|
||||
|
||||
Avec un large éventail de performances :
|
||||
```
|
||||
Statistiques actuelles :
|
||||
- Min: 330
|
||||
- Médiane: 1900
|
||||
- Moyenne: 3450
|
||||
- Max: 9100
|
||||
|
||||
Seuils calculés automatiquement :
|
||||
- Seuil Moyen: 1812
|
||||
- Seuil Élevé: 4647
|
||||
```
|
||||
|
||||
### Cas 3 : Configuration personnalisée
|
||||
|
||||
Vous pouvez définir vos propres critères :
|
||||
- Machines < 1000 : Faibles (rouge)
|
||||
- Machines 1000-5000 : Moyennes (orange)
|
||||
- Machines ≥ 5000 : Élevées (vert)
|
||||
|
||||
## Architecture technique
|
||||
|
||||
### Stockage
|
||||
|
||||
Les seuils sont stockés dans `localStorage` :
|
||||
```javascript
|
||||
localStorage.getItem('scoreThreshold_high') // ex: "76"
|
||||
localStorage.getItem('scoreThreshold_medium') // ex: "51"
|
||||
```
|
||||
|
||||
### Application des seuils
|
||||
|
||||
La fonction `getScoreBadgeClass()` dans [utils.js](../frontend/js/utils.js) lit automatiquement les seuils depuis localStorage :
|
||||
|
||||
```javascript
|
||||
function getScoreBadgeClass(score) {
|
||||
const highThreshold = parseInt(localStorage.getItem('scoreThreshold_high') || '76');
|
||||
const mediumThreshold = parseInt(localStorage.getItem('scoreThreshold_medium') || '51');
|
||||
|
||||
if (score >= highThreshold) return 'score-badge score-high';
|
||||
if (score >= mediumThreshold) return 'score-badge score-medium';
|
||||
return 'score-badge score-low';
|
||||
}
|
||||
```
|
||||
|
||||
### Calcul des statistiques
|
||||
|
||||
Les statistiques sont calculées en temps réel depuis l'API `/api/devices` :
|
||||
|
||||
```javascript
|
||||
async function loadScoreStatistics() {
|
||||
const response = await fetch(`${backendApiUrl}/devices`);
|
||||
const data = await response.json();
|
||||
|
||||
// Extraction de tous les global_score
|
||||
const scores = data.items
|
||||
.map(d => d.last_benchmark?.global_score)
|
||||
.filter(s => s !== null && s !== undefined);
|
||||
|
||||
// Calcul des percentiles
|
||||
scores.sort((a, b) => a - b);
|
||||
const p33 = scores[Math.floor(scores.length / 3)];
|
||||
const p66 = scores[Math.floor(scores.length * 2 / 3)];
|
||||
}
|
||||
```
|
||||
|
||||
## Validation
|
||||
|
||||
Le système valide que :
|
||||
- Le seuil moyen est inférieur au seuil élevé
|
||||
- Les valeurs sont des nombres entiers positifs
|
||||
|
||||
Si la validation échoue, un message d'erreur s'affiche.
|
||||
|
||||
## Impact
|
||||
|
||||
Les seuils personnalisés affectent :
|
||||
- ✅ La page Dashboard (tableau des devices)
|
||||
- ✅ La page Devices (liste des devices)
|
||||
- ✅ La page Device Detail (score global et historique)
|
||||
- ✅ Tous les badges de score dans l'application
|
||||
|
||||
## Limites et considérations
|
||||
|
||||
1. **Rechargement nécessaire** : Après modification des seuils, la page doit être rechargée pour appliquer les changements partout.
|
||||
|
||||
2. **Stockage local** : Les seuils sont stockés dans le navigateur (localStorage). Si vous utilisez plusieurs navigateurs ou machines, les seuils doivent être configurés séparément.
|
||||
|
||||
3. **Pas de stockage backend** : Les seuils ne sont pas synchronisés avec le serveur. C'est une préférence purement côté client.
|
||||
|
||||
4. **Données minimales** : Le calcul automatique nécessite au moins quelques benchmarks. Avec moins de 3 devices, les percentiles peuvent ne pas être représentatifs.
|
||||
|
||||
## FAQ
|
||||
|
||||
**Q: Que se passe-t-il si je ne configure pas de seuils personnalisés ?**
|
||||
R: Les valeurs par défaut (51 et 76) sont utilisées. Ces valeurs historiques correspondent aux anciens seuils du système.
|
||||
|
||||
**Q: Puis-je avoir plus de 3 niveaux de couleur ?**
|
||||
R: Non, le système actuel supporte uniquement 3 niveaux (faible/moyen/élevé). Pour plus de granularité, il faudrait modifier le code.
|
||||
|
||||
**Q: Les seuils s'appliquent-ils à tous les types de scores ?**
|
||||
R: Oui, les mêmes seuils sont utilisés pour le score global, CPU, mémoire, disque, réseau et GPU.
|
||||
|
||||
**Q: Que faire si j'ai très peu de données ?**
|
||||
R: Avec peu de benchmarks, le calcul automatique peut donner des résultats peu représentatifs. Dans ce cas, utilisez la configuration manuelle ou conservez les valeurs par défaut.
|
||||
|
||||
## Améliorations futures possibles
|
||||
|
||||
- Sauvegarder les seuils dans le backend pour synchronisation multi-navigateur
|
||||
- Seuils différents par type de score (CPU, RAM, disque, etc.)
|
||||
- Plus de 3 niveaux de couleur (excellent, bon, moyen, faible, très faible)
|
||||
- Graphique de distribution des scores
|
||||
- Suggestions de seuils basées sur des benchmarks publics
|
||||
|
||||
---
|
||||
|
||||
**Fichiers modifiés** :
|
||||
- [frontend/settings.html](../frontend/settings.html) - Interface utilisateur
|
||||
- [frontend/js/settings.js](../frontend/js/settings.js) - Logique de gestion
|
||||
- [frontend/js/utils.js](../frontend/js/utils.js) - Application des seuils
|
||||
|
||||
**Créé le** : 2026-01-11
|
||||
Reference in New Issue
Block a user