Skip to Content
Nouvelle version 12 disponible 🎉
LicensingRapports

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 :

  1. Activer le suivi (pour les rapports d’utilisation de licence) : activez le suivi de l’utilisation avant de valider les licences
  2. Utiliser l’application : l’utilisation normale de l’application collecte automatiquement les données
  3. Créer le rapport : construisez une instance de rapport avec les données à envoyer
  4. Personnaliser : ajoutez des propriétés personnalisées ou modifiez le contenu du rapport au moyen d’événements
  5. Envoyer le rapport : transmettez le rapport à votre Babel Licensing Service
  6. 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 :

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 :

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.

Last updated on