Rapports
Babel Licensing fournit un framework de rapports complet qui vous permet de collecter, d’analyser et de surveiller les informations essentielles sur vos applications sous licence. L’envoi automatisé de rapports vous renseigne sur l’état des applications, les habitudes d’utilisation des licences, les événements de sécurité et vos propres indicateurs métier.
Pourquoi les rapports sont importants
Les rapports sont indispensables pour comprendre comment vos logiciels sont utilisés dans les environnements de production :
- Résolution proactive des problèmes : identifiez et corrigez les plantages de l’application avant qu’ils ne nuisent à l’expérience utilisateur
- Conformité des licences : surveillez l’utilisation des fonctionnalités et vérifiez que les licences sont utilisées comme prévu
- Surveillance de la sécurité : détectez les menaces de sécurité potentielles ou les tentatives d’accès non autorisé et réagissez-y
- Analyses d’utilisation : fondez sur des données vos décisions concernant le développement des fonctionnalités et la stratégie de licence
- Assistance aux clients : accédez à des informations de diagnostic détaillées pour résoudre rapidement les problèmes des clients
Types de rapports
Babel Licensing propose trois types de rapports, chacun conçu pour des besoins précis de surveillance et d’analyse :
Rapports d’exception
Les rapports d’exception capturent des informations détaillées sur les plantages et les erreurs de l’application, et fournissent le contexte nécessaire pour reproduire et corriger efficacement les bogues.
Fonctionnalités principales :
- Capture automatique des exceptions avec les traces de pile complètes
- Informations d’environnement (assemblies chargés, processus, variables d’environnement)
- Informations système (matériel, système d’exploitation, configuration réseau)
- Propriétés personnalisées pour ajouter du contexte
- Collecte de données configurable pour réduire la taille des rapports
Cas d’utilisation courants :
- Surveillance et analyse des plantages en production
- Reproduction des bogues et débogage
- Assurance qualité et tests
- Diagnostics pour l’assistance aux clients
Rapports d’utilisation de licence
Les rapports d’utilisation de licence montrent en détail comment vos applications accèdent aux composants de licence et les utilisent.
Fonctionnalités principales :
- Suivi automatique des accès aux fonctionnalités, aux champs et aux restrictions
- Statistiques d’utilisation (nombre d’accès, horodatages, durée)
- Métadonnées de la licence et état de validation
- Fusion intelligente côté serveur pour l’analyse historique
- Périmètre de suivi configurable
Cas d’utilisation courants :
- Analyse de l’adoption des fonctionnalités
- Surveillance de la conformité des licences
- Identification des fonctionnalités inutilisées
- Suivi des habitudes d’utilisation
- Stratégie de licence fondée sur les données
Rapports personnalisés
Les rapports personnalisés vous permettent d’envoyer à votre Babel Licensing Service n’importe quelles données structurées, adaptées aux besoins propres à votre application.
Fonctionnalités principales :
- Structure de rapport souple, fondée sur la classe de base
Report - Prise en charge de toutes les propriétés et données personnalisées
- Intégration des informations d’environnement et des informations système
- Chiffrement des rapports pour les données sensibles
- Personnalisation par événements avant l’envoi
Cas d’utilisation courants :
- Signalement des événements de sécurité (détection de piratage, tentatives d’intrusion)
- Indicateurs de performances de l’application
- Suivi des événements métier
- Données de diagnostic personnalisées
- Création de pistes d’audit
Fonctionnement des rapports
Le système de rapports de Babel Licensing suit un flux de travail simple mais efficace :
- Activer le suivi (pour les rapports d’utilisation de licence) : activez le suivi de l’utilisation avant de valider les licences
- Utiliser l’application : l’utilisation normale de l’application collecte automatiquement les données
- Créer le rapport : construisez une instance de rapport avec les données à envoyer
- Personnaliser : ajoutez des propriétés personnalisées ou modifiez le contenu du rapport au moyen d’événements
- Envoyer le rapport : transmettez le rapport à votre Babel Licensing Service
- Analyser : consultez et analysez les rapports au moyen de l’API du service ou de l’interface de gestion
Architecture des rapports
Le framework de rapports repose sur plusieurs composants clés :
Composants côté client
- Classes de rapport : classes de base des rapports d’exception, des rapports d’utilisation de licence et des rapports personnalisés
- Service BabelReporting : bibliothèque cliente qui envoie les rapports au serveur
- Suivi de l’utilisation : surveillance automatique des accès aux composants de licence
- Collecteurs de données : collecteurs spécialisés pour les informations d’environnement et les informations système
Traitement côté serveur
- Validation des rapports : vérifie que les rapports sont correctement formatés et autorisés
- Déchiffrement : traite le contenu chiffré des rapports
- Analyse des rapports : extrait les propriétés pour l’indexation et la recherche
- Fusion intelligente : combine les rapports d’utilisation de licence pour une analyse historique complète
- Intégration des webhooks : distribue des événements pour l’intégration de systèmes externes
Configuration et personnalisation
Tous les types de rapports se configurent en détail, pour trouver l’équilibre entre la richesse des données, la confidentialité et les performances :
Options de collecte de données
Déterminez précisément les informations incluses dans les rapports :
reporting.Configuration.ExceptionReportOptions = new ExceptionReportOptions
{
CollectApplicationInformation = true,
CollectEnvironmentVariables = false, // Privacy-sensitive
CollectSystemInformation = true,
CollectProcessorInformation = true,
CollectMemoryInformation = true
};Chiffrement des rapports
Protégez les données sensibles pendant la transmission :
reporting.Configuration.EncryptionKey = "your-secret-key";Propriétés personnalisées
Ajoutez à n’importe quel rapport un contexte propre à l’application :
reporting.BeforeSendReport += (s, e) =>
{
e.Report.Properties.Add("environment", "production");
e.Report.Properties.Add("deployment_id", deploymentId);
e.Report.Properties.Add("user_tier", "enterprise");
};Gestion des erreurs
Gérez proprement les échecs d’envoi des rapports :
reporting.AfterSendReport += (s, e) =>
{
if (e.Error != null)
{
Logger.Error($"Failed to send report: {e.Error.Message}");
StoreForRetry(e.Report);
}
};Premiers pas avec les rapports
Initialiser le service de rapports
using Babel.Licensing.Services;
var reporting = new BabelReporting();
reporting.Configuration.ServiceUrl = "https://licensing.example.com";
reporting.Configuration.ClientId = "MyApplication v1.0";Envoyer des rapports d’exception
try
{
// Your application code
}
catch (Exception ex)
{
await reporting.SendExceptionReportAsync(userKey, ex);
}Activer le suivi des licences
using Babel.Licensing.Reports;
// Enable before validation
LicenseUsageTracking.Enable();
// Validate license
var license = licenseManager.Validate(userKey, keyType);
// Use licensed features (automatically tracked)
var data = license.Features["Reporting"].Data;
// Send tracking report
await reporting.SendLicenseReportAsync(userKey);Créer des rapports personnalisés
public class SecurityEventReport : Report
{
public string EventType { get; set; }
public string Severity { get; set; }
public SecurityEventReport() : base("SecurityEvent") { }
public override void Build()
{
Properties.Add("event_type", EventType);
Properties.Add("severity", Severity);
base.Build();
}
}
// Send custom report
var report = new SecurityEventReport
{
EventType = "UnauthorizedAccess",
Severity = "High"
};
await reporting.SendAsync(userKey, report);Bonnes pratiques
Réduire la collecte de données
Ne collectez que les données dont vous avez réellement besoin, afin de réduire la taille des rapports et de protéger la confidentialité :
reporting.Configuration.ExceptionReportOptions = new ExceptionReportOptions
{
CollectSystemInformation = true, // Essential
CollectDisplayInformation = false, // Usually not needed
CollectProcessInformation = false // Privacy-sensitive
};Envoyer les rapports périodiquement
Envoyez les rapports d’utilisation de licence à intervalles réguliers plutôt qu’en continu :
var timer = new Timer(async _ =>
{
await reporting.SendLicenseReportAsync(userKey);
LicenseUsageTracking.Clear(); // Reset for next period
}, null, TimeSpan.FromHours(24), TimeSpan.FromHours(24));Gérer les situations hors ligne
Stockez les rapports en local lorsque le serveur est injoignable :
var result = await reporting.SendLicenseReportAsync(userKey);
if (!result.Success)
{
SaveReportForLater(result.Report);
}Nettoyer les données sensibles
N’incluez jamais de mots de passe, de clés API ni d’informations personnelles identifiables :
reporting.BeforeSendReport += (s, e) =>
{
// Remove or hash sensitive data
e.Report.Properties["username"] = HashUsername(username);
// Don't include passwords, credit cards, etc.
};Chiffrer les rapports sensibles
Activez le chiffrement pour les rapports qui contiennent des informations sensibles :
reporting.Configuration.EncryptionKey = Configuration["Reporting:EncryptionKey"];Analyse et surveillance des rapports
Une fois les rapports parvenus à votre Babel Licensing Service, vous pouvez :
- Interroger les rapports : rechercher et filtrer les rapports au moyen de l’API du service
- Afficher les détails : examiner le contenu complet et les métadonnées des rapports
- Suivre les tendances : surveiller l’évolution du taux de plantages, des habitudes d’utilisation ou des événements de sécurité
- Exporter les données : extraire les données des rapports pour les analyser dans des outils externes
- Définir des alertes : configurer des webhooks qui notifient les événements critiques aux systèmes externes
Intégration avec les modes de licence
Les rapports fonctionnent avec tous les modes de licence de Babel Licensing :
- Fichier de licence : utilisez les données de la licence pour autoriser les rapports
- Activation de licence : suivez les licences fondées sur l’activation
- Licence flottante : surveillez les habitudes d’utilisation simultanée
Les clés utilisateur générées par les flux de travail d’activation ou de licence flottante servent d’identifiants d’autorisation pour l’envoi des rapports.
Considérations sur les performances
Le système de rapports est conçu pour avoir un impact minimal sur les performances :
- Opérations asynchrones : aucun envoi de rapport n’est bloquant
- Collecte configurable : désactivez les collecteurs coûteux dont vous n’avez pas besoin
- Suivi efficace : le suivi de l’utilisation s’appuie sur le patron de conception Observateur, avec un surcoût minimal
- Mise en cache intelligente : les données d’environnement et les données système sont mises en cache pour éviter les collectes répétées
- Compression : les rapports sont compressés pendant la transmission
Structure de la documentation
Cette section documente en détail chaque type de rapport :
- Rapports d’exception : guide complet des rapports de plantage et d’erreur
- Rapports d’utilisation de licence : documentation complète du suivi de l’utilisation des licences
- Rapports personnalisés : création et envoi de types de rapports personnalisés
Chaque page comprend des exemples pratiques, des options de configuration, des bonnes pratiques et des cas d’utilisation réels pour vous aider à mettre en place des rapports efficaces dans vos applications.