Skip to Content
Neue Version 12 verfügbar 🎉
LicensingReporting

Reporting

Babel Licensing stellt ein umfassendes Reporting-Framework bereit, mit dem Sie wichtige Informationen über Ihre lizenzierten Anwendungen sammeln, auswerten und überwachen. Die automatisierten Reporting-Funktionen geben Ihnen Einblick in den Zustand der Anwendung, in Muster der Lizenznutzung, in Sicherheitsereignisse und in eigene Geschäftskennzahlen.

Warum Reporting wichtig ist

Reporting ist unverzichtbar, um zu verstehen, wie Ihre Software in Produktionsumgebungen verwendet wird:

  • Proaktive Problembehebung: Abstürze der Anwendung erkennen und beheben, bevor sie die Benutzererfahrung beeinträchtigen
  • Lizenzkonformität: die Nutzung der Funktionen überwachen und prüfen, ob Lizenzen wie vorgesehen verwendet werden
  • Sicherheitsüberwachung: mögliche Sicherheitsbedrohungen oder unbefugte Zugriffsversuche erkennen und darauf reagieren
  • Nutzungsanalyse: datengestützte Entscheidungen über die Entwicklung von Funktionen und die Lizenzierungsstrategie treffen
  • Kundensupport: auf ausführliche Diagnoseinformationen zugreifen, um Probleme von Kunden schnell zu lösen

Berichtstypen

Babel Licensing bietet drei Berichtstypen, die jeweils für bestimmte Anforderungen an Überwachung und Analyse ausgelegt sind:

Fehlerberichte

Fehlerberichte halten ausführliche Informationen über Abstürze und Fehler der Anwendung fest und liefern den Kontext, der nötig ist, um Fehler effizient zu reproduzieren und zu beheben.

Hauptfunktionen:

  • Automatische Erfassung von Ausnahmen mit vollständigen Stacktraces
  • Umgebungsinformationen (geladene Assemblys, Prozesse, Umgebungsvariablen)
  • Systeminformationen (Hardware, Betriebssystem, Netzwerkkonfiguration)
  • Benutzerdefinierte Eigenschaften für zusätzlichen Kontext
  • Konfigurierbare Datensammlung, um die Größe der Berichte gering zu halten

Typische Anwendungsfälle:

  • Überwachung und Analyse von Abstürzen in der Produktion
  • Reproduktion von Fehlern und Debugging
  • Qualitätssicherung und Tests
  • Diagnose im Kundensupport

Lizenznutzungsberichte

Lizenznutzungsberichte zeigen im Einzelnen, wie Ihre Anwendungen auf die Komponenten einer Lizenz zugreifen und sie verwenden.

Hauptfunktionen:

  • Automatische Erfassung der Zugriffe auf Funktionen, Felder und Einschränkungen
  • Nutzungsstatistiken (Anzahl der Zugriffe, Zeitstempel, Dauer)
  • Metadaten der Lizenz und Validierungsstatus
  • Intelligente serverseitige Zusammenführung für die historische Analyse
  • Konfigurierbarer Erfassungsumfang

Typische Anwendungsfälle:

  • Analyse der Akzeptanz von Funktionen
  • Überwachung der Lizenzkonformität
  • Erkennung ungenutzter Funktionen
  • Erfassung von Nutzungsmustern
  • Datengestützte Lizenzierungsstrategie

Benutzerdefinierte Berichte

Benutzerdefinierte Berichte ermöglichen es Ihnen, beliebige strukturierte Daten an Ihren Babel Licensing Service zu senden, zugeschnitten auf die Anforderungen Ihrer Anwendung.

Hauptfunktionen:

  • Flexible Berichtsstruktur auf der Grundlage der Basisklasse Report
  • Unterstützung beliebiger benutzerdefinierter Eigenschaften und Daten
  • Einbindung von Umgebungs- und Systeminformationen
  • Berichtsverschlüsselung für sensible Daten
  • Ereignisbasierte Anpassung vor dem Senden

Typische Anwendungsfälle:

  • Meldung von Sicherheitsereignissen (Erkennung von Angriffen, Eindringversuche)
  • Leistungskennzahlen der Anwendung
  • Erfassung von Geschäftsereignissen
  • Benutzerdefinierte Diagnosedaten
  • Erstellung von Audit-Trails

Funktionsweise des Reportings

Das Reporting-System von Babel Licensing folgt einem einfachen, aber leistungsfähigen Ablauf:

  1. Erfassung einschalten (für Lizenznutzungsberichte): Schalten Sie die Nutzungserfassung ein, bevor Sie Lizenzen validieren
  2. Anwendung verwenden: Bei der normalen Verwendung der Anwendung werden die Daten automatisch gesammelt
  3. Bericht erstellen: Erstellen Sie eine Berichtsinstanz mit den Daten, die Sie senden möchten
  4. Anpassen: Fügen Sie benutzerdefinierte Eigenschaften hinzu oder ändern Sie den Inhalt des Berichts über Ereignisse
  5. Bericht senden: Übertragen Sie den Bericht an Ihren Babel Licensing Service
  6. Auswerten: Sehen Sie die Berichte über die API des Dienstes oder in der Verwaltungsoberfläche ein und werten Sie sie aus

Architektur des Reportings

Das Reporting-Framework besteht aus mehreren zentralen Komponenten:

Clientseitige Komponenten

  • Berichtsklassen: Basisklassen für Fehlerberichte, Lizenznutzungsberichte und benutzerdefinierte Berichte
  • BabelReporting-Dienst: Clientbibliothek, die Berichte an den Server sendet
  • Nutzungserfassung: automatische Überwachung der Zugriffe auf Lizenzkomponenten
  • Datensammler: spezialisierte Sammler für Umgebungs- und Systeminformationen

Serverseitige Verarbeitung

  • Berichtsvalidierung: stellt sicher, dass Berichte korrekt formatiert und autorisiert sind
  • Entschlüsselung: verarbeitet verschlüsselte Berichtsinhalte
  • Parsen der Berichte: extrahiert Eigenschaften für die Indizierung und die Suche
  • Intelligente Zusammenführung: fasst Lizenznutzungsberichte für eine umfassende historische Analyse zusammen
  • Webhook-Integration: sendet Ereignisse zur Integration externer Systeme

Konfiguration und Anpassung

Alle Berichtstypen lassen sich umfassend konfigurieren, um Datenumfang, Datenschutz und Leistung gegeneinander abzuwägen:

Optionen der Datensammlung

Legen Sie genau fest, welche Informationen in die Berichte aufgenommen werden:

reporting.Configuration.ExceptionReportOptions = new ExceptionReportOptions { CollectApplicationInformation = true, CollectEnvironmentVariables = false, // Privacy-sensitive CollectSystemInformation = true, CollectProcessorInformation = true, CollectMemoryInformation = true };

Berichtsverschlüsselung

Schützen Sie sensible Daten bei der Übertragung:

reporting.Configuration.EncryptionKey = "your-secret-key";

Benutzerdefinierte Eigenschaften

Ergänzen Sie jeden Bericht um anwendungsspezifischen Kontext:

reporting.BeforeSendReport += (s, e) => { e.Report.Properties.Add("environment", "production"); e.Report.Properties.Add("deployment_id", deploymentId); e.Report.Properties.Add("user_tier", "enterprise"); };

Fehlerbehandlung

Fangen Sie Fehler beim Senden von Berichten sauber ab:

reporting.AfterSendReport += (s, e) => { if (e.Error != null) { Logger.Error($"Failed to send report: {e.Error.Message}"); StoreForRetry(e.Report); } };

Erste Schritte mit dem Reporting

Reporting-Dienst initialisieren

using Babel.Licensing.Services; var reporting = new BabelReporting(); reporting.Configuration.ServiceUrl = "https://licensing.example.com"; reporting.Configuration.ClientId = "MyApplication v1.0";

Fehlerberichte senden

try { // Your application code } catch (Exception ex) { await reporting.SendExceptionReportAsync(userKey, ex); }

Erfassung der Lizenznutzung einschalten

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);

Benutzerdefinierte Berichte erstellen

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);

Bewährte Vorgehensweisen

Datensammlung minimieren

Sammeln Sie nur die Daten, die Sie tatsächlich benötigen. So bleiben die Berichte klein und die Privatsphäre geschützt:

reporting.Configuration.ExceptionReportOptions = new ExceptionReportOptions { CollectSystemInformation = true, // Essential CollectDisplayInformation = false, // Usually not needed CollectProcessInformation = false // Privacy-sensitive };

Berichte regelmäßig senden

Senden Sie Lizenznutzungsberichte in regelmäßigen Abständen statt fortlaufend:

var timer = new Timer(async _ => { await reporting.SendLicenseReportAsync(userKey); LicenseUsageTracking.Clear(); // Reset for next period }, null, TimeSpan.FromHours(24), TimeSpan.FromHours(24));

Offline-Szenarien berücksichtigen

Speichern Sie Berichte lokal, wenn der Server nicht erreichbar ist:

var result = await reporting.SendLicenseReportAsync(userKey); if (!result.Success) { SaveReportForLater(result.Report); }

Sensible Daten bereinigen

Nehmen Sie niemals Passwörter, API-Schlüssel oder personenbezogene Daten auf:

reporting.BeforeSendReport += (s, e) => { // Remove or hash sensitive data e.Report.Properties["username"] = HashUsername(username); // Don't include passwords, credit cards, etc. };

Sensible Berichte verschlüsseln

Schalten Sie die Verschlüsselung für Berichte ein, die sensible Informationen enthalten:

reporting.Configuration.EncryptionKey = Configuration["Reporting:EncryptionKey"];

Analyse und Überwachung der Berichte

Sobald die Berichte bei Ihrem Babel Licensing Service eingegangen sind, können Sie:

  • Berichte abfragen: Berichte über die API des Dienstes suchen und filtern
  • Details ansehen: den vollständigen Inhalt und die Metadaten eines Berichts prüfen
  • Trends verfolgen: Veränderungen bei Absturzraten, Nutzungsmustern oder Sicherheitsereignissen beobachten
  • Daten exportieren: Berichtsdaten für die Auswertung in externen Tools entnehmen
  • Warnmeldungen einrichten: Webhooks konfigurieren, die externe Systeme über kritische Ereignisse benachrichtigen

Integration mit den Lizenzierungsarten

Das Reporting arbeitet nahtlos mit allen Lizenzierungsarten von Babel Licensing zusammen:

Benutzerschlüssel, die bei der Aktivierung oder im Ablauf einer Floating-Lizenz erzeugt werden, dienen als Autorisierungsnachweis für das Senden von Berichten.

Hinweise zur Leistung

Das Reporting-System ist darauf ausgelegt, die Leistung möglichst wenig zu beeinträchtigen:

  • Asynchrone Vorgänge: Das Senden von Berichten blockiert nie
  • Konfigurierbare Sammlung: Schalten Sie aufwendige Sammler aus, die Sie nicht benötigen
  • Effiziente Erfassung: Die Nutzungserfassung verwendet das Beobachtermuster und verursacht nur minimalen Mehraufwand
  • Intelligentes Caching: Umgebungs- und Systemdaten werden zwischengespeichert, damit sie nicht wiederholt gesammelt werden
  • Komprimierung: Berichte werden bei der Übertragung komprimiert

Aufbau der Dokumentation

Dieser Abschnitt enthält die ausführliche Dokumentation zu jedem Berichtstyp:

Jede Seite enthält praktische Beispiele, Konfigurationsoptionen, bewährte Vorgehensweisen und Anwendungsfälle aus der Praxis, die Ihnen helfen, ein wirksames Reporting in Ihren Anwendungen umzusetzen.

Last updated on