Skip to Content
Nueva versión 12 disponible 🎉
LicensingInformes

Informes

Babel Licensing ofrece un framework de informes completo que permite recopilar, analizar y supervisar la información crítica de sus aplicaciones con licencia. Gracias al envío automático de informes, obtiene información valiosa sobre el estado de la aplicación, los patrones de uso de las licencias, los eventos de seguridad y las métricas de negocio personalizadas.

Por qué son importantes los informes

Los informes son esenciales para entender cómo se usa su software en los entornos de producción:

  • Resolución proactiva de problemas: identifique y resuelva los cierres inesperados de la aplicación antes de que afecten a la experiencia del usuario
  • Cumplimiento de las licencias: supervise el uso de las funciones y compruebe que las licencias se usan según lo previsto
  • Supervisión de la seguridad: detecte posibles amenazas de seguridad o intentos de acceso no autorizado y responda a ellos
  • Análisis de uso: tome decisiones basadas en datos sobre el desarrollo de funciones y la estrategia de licencias
  • Soporte al cliente: acceda a información de diagnóstico detallada para resolver con rapidez los problemas de los clientes

Tipos de informe

Babel Licensing ofrece tres tipos de informe, cada uno pensado para necesidades concretas de supervisión y análisis:

Informes de excepción

Los informes de excepción recogen información detallada sobre los cierres inesperados y los errores de la aplicación, y aportan el contexto necesario para reproducir y corregir los errores de forma eficiente.

Capacidades principales:

  • Captura automática de excepciones con trazas de pila completas
  • Información del entorno (ensamblados cargados, procesos, variables de entorno)
  • Información del sistema (hardware, sistema operativo, configuración de red)
  • Propiedades personalizadas para aportar más contexto
  • Recopilación de datos configurable para reducir al mínimo el tamaño del informe

Casos de uso habituales:

  • Supervisión y análisis de cierres inesperados en producción
  • Reproducción de errores y depuración
  • Control de calidad y pruebas
  • Diagnóstico para el soporte al cliente

Informes de uso de licencia

Los informes de uso de licencia muestran con detalle cómo se accede a los componentes de la licencia y cómo se usan en sus aplicaciones.

Capacidades principales:

  • Seguimiento automático del acceso a funciones, campos y restricciones
  • Estadísticas de uso (número de accesos, marcas de tiempo, duración)
  • Metadatos de la licencia y estado de validación
  • Combinación inteligente en el servidor para el análisis histórico
  • Ámbito de seguimiento configurable

Casos de uso habituales:

  • Análisis de la adopción de funciones
  • Supervisión del cumplimiento de las licencias
  • Identificación de funciones no utilizadas
  • Seguimiento de los patrones de uso
  • Estrategia de licencias basada en datos

Informes personalizados

Los informes personalizados permiten enviar a su Babel Licensing Service cualquier dato estructurado, adaptado a las necesidades concretas de su aplicación.

Capacidades principales:

  • Estructura de informe flexible a partir de la clase base Report
  • Compatibilidad con propiedades y datos personalizados de cualquier tipo
  • Integración de la información del entorno y del sistema
  • Cifrado de informes para los datos confidenciales
  • Personalización mediante eventos antes del envío

Casos de uso habituales:

  • Informes de eventos de seguridad (detección de ataques, intentos de intrusión)
  • Métricas de rendimiento de la aplicación
  • Seguimiento de eventos de negocio
  • Datos de diagnóstico personalizados
  • Creación de pistas de auditoría

Cómo funcionan los informes

El sistema de informes de Babel Licensing sigue un flujo de trabajo sencillo pero eficaz:

  1. Activar el seguimiento (para los informes de uso de licencia): active el seguimiento de uso antes de validar las licencias
  2. Usar la aplicación: el uso normal de la aplicación recopila los datos automáticamente
  3. Crear el informe: cree una instancia de informe con los datos que quiera enviar
  4. Personalizar: añada propiedades personalizadas o modifique el contenido del informe mediante eventos
  5. Enviar el informe: transmita el informe a su Babel Licensing Service
  6. Analizar: consulte y analice los informes mediante la API del servicio o la interfaz de administración

Arquitectura de los informes

El framework de informes se basa en varios componentes clave:

Componentes del lado del cliente

  • Clases de informe: clases base para los informes de excepción, de uso de licencia y personalizados
  • Servicio BabelReporting: biblioteca cliente para enviar informes al servidor
  • Seguimiento de uso: supervisión automática del acceso a los componentes de la licencia
  • Recopiladores de datos: recopiladores especializados para la información del entorno y del sistema

Procesamiento en el servidor

  • Validación de informes: comprueba que los informes tienen el formato correcto y están autorizados
  • Descifrado: procesa el contenido cifrado de los informes
  • Análisis sintáctico de informes: extrae las propiedades para indexarlas y poder buscarlas
  • Combinación inteligente: combina los informes de uso de licencia para obtener un análisis histórico completo
  • Integración con webhooks: envía eventos para la integración con sistemas externos

Configuración y personalización

Todos los tipos de informe admiten una configuración amplia para equilibrar la riqueza de los datos con la privacidad y el rendimiento:

Opciones de recopilación de datos

Controle exactamente qué información se incluye en los informes:

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

Cifrado de informes

Proteja los datos confidenciales durante la transmisión:

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

Propiedades personalizadas

Añada a cualquier informe contexto propio de la aplicación:

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

Control de errores

Gestione de forma controlada los fallos en el envío de informes:

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

Primeros pasos con los informes

Inicializar el servicio de informes

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

Enviar informes de excepción

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

Activar el seguimiento de licencias

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

Crear informes personalizados

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

Prácticas recomendadas

Reducir al mínimo la recopilación de datos

Recopile solo los datos que realmente necesite para reducir el tamaño del informe y proteger la privacidad:

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

Enviar los informes periódicamente

Envíe los informes de uso de licencia a intervalos regulares, no de forma continua:

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

Prever los escenarios sin conexión

Guarde los informes localmente cuando no se pueda acceder al servidor:

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

Sanear los datos confidenciales

No incluya nunca contraseñas, claves API ni información de identificación personal:

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

Usar el cifrado en los informes confidenciales

Active el cifrado en los informes que contengan información confidencial:

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

Análisis y supervisión de los informes

Una vez que los informes llegan a su Babel Licensing Service, puede:

  • Consultar informes: busque y filtre los informes mediante la API del servicio
  • Ver los detalles: examine el contenido completo y los metadatos de cada informe
  • Seguir las tendencias: supervise los cambios en la frecuencia de los cierres inesperados, los patrones de uso o los eventos de seguridad
  • Exportar datos: extraiga los datos de los informes para analizarlos con herramientas externas
  • Definir alertas: configure webhooks para notificar los eventos críticos a sistemas externos

Integración con las modalidades de licencia

Los informes funcionan sin problemas con todas las modalidades de licencia de Babel Licensing:

Las claves de usuario generadas en los flujos de trabajo de activación o de licencia flotante sirven como credenciales de autorización para enviar informes.

Consideraciones de rendimiento

El sistema de informes está diseñado para que su efecto en el rendimiento sea mínimo:

  • Operaciones asíncronas: el envío de informes nunca bloquea la aplicación
  • Recopilación configurable: desactive los recopiladores costosos que no necesite
  • Seguimiento eficiente: el seguimiento de uso emplea el patrón observador, con un coste adicional mínimo
  • Caché inteligente: los datos del entorno y del sistema se guardan en caché para no recopilarlos varias veces
  • Compresión: los informes se comprimen durante la transmisión

Estructura de la documentación

Esta sección contiene la documentación detallada de cada tipo de informe:

Cada página incluye ejemplos prácticos, opciones de configuración, prácticas recomendadas y casos de uso reales que le ayudarán a implementar un sistema de informes eficaz en sus aplicaciones.

Last updated on