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:
- Activar el seguimiento (para los informes de uso de licencia): active el seguimiento de uso antes de validar las licencias
- Usar la aplicación: el uso normal de la aplicación recopila los datos automáticamente
- Crear el informe: cree una instancia de informe con los datos que quiera enviar
- Personalizar: añada propiedades personalizadas o modifique el contenido del informe mediante eventos
- Enviar el informe: transmita el informe a su Babel Licensing Service
- 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:
- Archivo de licencia: use los datos de la licencia para autorizar los informes
- Activación de licencia: haga el seguimiento de las licencias basadas en activación
- Licencia flotante: supervise los patrones de uso simultáneo
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:
- Informes de excepción: guía completa de los informes de cierres inesperados y de errores
- Informes de uso de licencia: documentación completa del seguimiento del uso de las licencias
- Informes personalizados: creación y envío de tipos de informe personalizados
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.