Compartir a través de


Seguimiento de eventos

En este artículo se describe cómo usar el seguimiento de eventos en Microsoft Dynamics 365 Fraud Protection.

La funcionalidad seguimiento de eventos en Microsoft Dynamics 365 Fraud Protection le permite establecer una plataforma de telemetría en tiempo real que es ampliable y operativa fuera del portal. Cada evento está programado o activado por una acción en el nivel de usuario o de sistema. Puede suscribirse a eventos que le interesen y reenviar las cargas de eventos a Azure Event Hubs o Azure Blob Storage. También puede solicitar eventos de varias sesiones de seguimiento de eventos al mismo tiempo. A continuación, el sistema entrega los eventos en orden cronológico.

Los eventos se pueden agregar y usar para definir métricas que puede usar para supervisar y administrar los costos y el uso del servicio. Los eventos también se pueden usar para desarrollar informes personalizados que usan datos transaccionales o para mantener los registros del sistema para las acciones realizadas en el portal de Protección contra fraudes (por ejemplo, "usuario A editada lista B en la fecha C"). Al usar los conectores de Azure Event Hubs que están disponibles en Microsoft Power Automate y Azure Logic Apps, también puede usar los datos que se envían a Azure Event Hubs para alertas o flujos de trabajo altamente personalizados. De forma similar, con Azure Blob Storage puede crear una nueva suscripción que copie todos los datos históricos en la cuenta de almacenamiento en frío para su análisis posterior.

Si la instancia de Protección contra fraudes tiene varios entornos, puede encontrar el seguimiento de eventos para cada entorno mediante el modificador de entorno. Si el entorno tiene entornos secundarios, el seguimiento de eventos al que se suscribe para el entorno primario incluye automáticamente los mismos eventos para todos los entornos secundarios.

Nota:

Los clientes de seguimiento de eventos deben tener una suscripción a servicios adicionales de Azure, como Event Hub o Blob Storage. Póngase en contacto con el ejecutivo de su cuenta microsoft para obtener más información. Si tiene credenciales de administrador global de Azure, inicie sesión en Azure Portal para determinar las suscripciones disponibles.

Introducción

Para empezar a usar la funcionalidad de seguimiento de eventos, siga estos pasos.

  1. En el portal de Fraud Protection, seleccione Datos y luego seleccione Seguimiento de eventos.

  2. Seleccione Nueva suscripción.

  3. Especifique un nombre para mostrar de la suscripción.

  4. Seleccione una ubicación para el almacenamiento:

    1. Para Event Hubs: especifique la cadena de conexión para la instancia de Event Hubs en Azure Key Vault. Azure Key Vault debe residir en el mismo inquilino que su suscripción de Fraud Protection. Otorgue Obtener acceso secreto a la aplicación Fraud Protection en Azure Key Vault. Introduzca la URL del identificador secreto de su Azure Key Vault en el portal de Fraud Protection. Para más información, vea Obtener una cadena de conexión de Event Hubs.
    2. Para Blob Storage: especifique la cadena de conexión para su cuenta de Azure Blob Storage en Azure Key Vault. Azure Key Vault debe residir en el mismo inquilino que su suscripción de Fraud Protection. Otorgue Obtener acceso secreto a la aplicación Fraud Protection en Azure Key Vault. En el portal de Protección contra fraudes, escriba la dirección URL del identificador de secreto de Azure Key Vault y un nombre de contenedor donde residen los datos de seguimiento de eventos. Para obtener más información, consulte Ver claves de acceso de la cuenta.
  5. Seleccione Prueba de conexión. Una vez que la conexión se haya probado correctamente, se muestra la información relacionada con la cuenta extraída de la cadena de conexión en Azure Key Vault. Para Azure Event Hubs, esta información de solo lectura incluye el espacio de nombres del centro de eventos y el nombre del centro de eventos. Para Azure Blob Storage, se muestra el nombre de la cuenta de Storage. Verifique que esta información coincida con la cuenta de almacenamiento que pretende usar. Sin una prueba de conexión correcta, el botón Crear no está habilitado.

  6. Seleccione un evento y revise la descripción y la muestra de la carga útil de JSON. Luego guarde la suscripción seleccionando Crear. Los eventos se envían instantáneamente a su instancia de Event Hubs desde un momento determinado. Si seleccionó Blob Storage, el proceso de copia para escribir todos los datos históricos comienza y todos los eventos se publican en el contenedor cada 30 minutos.

  7. Vuelva al portal de Fraud Protection para ver el recuento de la métrica Eventos/hora y asegúrese de que los datos se envíen a Event Hubs y Blob Storage. Las métricas Eventos/Hora y Errores/Hora muestran un promedio en las últimas 24 horas.

    Sugerencia

    Para una supervisión adicional de Event Hubs, vaya al portal de Azure y configure las métricas. Para más información, vea Métricas de Azure Event Hubs en Azure Monitor.

  8. Opcional: configure su propio canal de entradas desde Event Hubs a Power BI. Para obtener información sobre cómo empezar a desarrollar informes personalizados, consulte Trabajar con Power BI.

  9. Opcional: conéctese a Event Hubs desde Power Automate para definir flujos de trabajo personalizados. Para más información, vea Trabajar con Logic Apps o Power Automate.

Esquemas de eventos

Actualmente hay cinco clasificaciones compatibles de eventos disponibles en el seguimiento de eventos: eventos de transacciones, eventos de seguimiento, eventos de evaluación, eventos de auditoría y eventos de supervisión.

Eventos de transacciones

Use eventos transaccionales para crear cuadros de mandos personalizados y flujos de trabajo automatizados mediante los datos disponibles en la evaluación y las llamadas API nonassessment. Con el almacenamiento de blobs, también puede copiar los datos de las llamadas API históricas para crear un almacenamiento de datos para su empresa. La carga útil de este evento incluye la solicitud y la respuesta completas para cada llamada API.

Espacio de nombres: FraudProtection.Observe.<Nombre de la API> o FraudProtection.Assessment.<Nombre de la API>
{
    "uniqueId": "unique event id and used to deduplicate events",
    "request": {
        //API request payload
    },
    "response": {
        //API response payload
    },
    "name": "FraudProtection.Observe.AccountLabel",
    "version": "1.0",
    "metadata": {
        "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
        "timestamp": "2020-09-25T03:46:53.3716978Z"
    }
}

Eventos de seguimiento

Puede utilizar eventos de seguimiento para notificar y supervisar el rendimiento de todas las reglas que incluyen el tipo de devolución Trace(). La carga útil de este evento incluye campos estandarizados como el nombre de la regla que desencadenó el evento, el tipo de evento que se correlaciona con el tipo de evaluación para esa regla, el id. de correlación, etc. Puede enviar atributos personalizados mediante pares clave:valor en el tipo de devolución Trace() para incluir variables de la carga útil de ejemplo, la puntuación de riesgo y los campos personalizados. Para obtener más información sobre cómo utilizar Trace() en sus reglas para desencadenar estos eventos, vea funciones de observación en la Guía de lenguaje de reglas.

Espacio de nombres: FraudProtection.Trace.Rule.
{
    "name": "FraudProtection.Trace.Rule",
    "version": "1.0",
    "metadata":
{
    "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
    "timestamp": "2020-06-10T23:43:33.4526859Z" 
}
    "ruleName": "Risk Score Policy",
    "eventType": "Purchase",
    "correlationId": "e49319e6-0bea-4567-9f3e-c9f873fc958a",
    "eventId": "e75e703c-1e54-4d41-af4b-a4c1b8866f02",
    "attributes":
{
      "example": "ManualReview” //key:value pairs defined in the Trace() return type
} 

    }

Eventos de evaluación

La evaluación y los eventos de observación y etiqueta asociados se pueden rastrear hasta centros de eventos y blobs.

Espacio de nombres: FraudProtection.Assesments.
{
    "request": "",
    "response": "",
    "eventId": "uniqueId",
    "assessmentApiName": "<your assessment api name>",
    "assessmentName": "<your assessment name>"
}
Espacio de nombres: FraudProtection.CaseManagement.Events.

Estado de decisión de administración de casos y etiquetas realizadas en Administración de casos.

{
	"name": "FraudProtection.CaseManagement.Events",
	"version": "1.0",
	"metadata": {
		"tenantId": "<your tenantID>",
		"timestamp": "2020-09-25T03:46:53.3716978Z"
	},
	"assessmentId": "<your assessment uniqueId>",
	"assessmentName": "<your assessment name>",
	"caseId": "uniqueId of the case record",
	"queueId": "uniqueId of the queue the case was routed to",
	"queueName": "name of the queue the case was routed to",
	"eventType": "<your assessment uniqueId>",
	"eventId": "<your assessment transaction uniqueId>",
	"creationDate": "creation datetime",
	"reviewStartDate": "review start datetime",
	"reviewedDate": "reviewed datetime",
	"decision": "decision of the review agent",
	"reason": "decision reason",
	"reasonNote": "decision note",
	"agentId": "uniqueId of the review agent",
	"agentName": "name of the review agent",
	"status": "status of the decision",
	"fraudFlag": "fraud flag (label) of the decision"
}
Espacio de nombres: FraudProtection.Observations.
{
    "request": "",
    "primaryEventId": "<assessment event id>",
    "observationApiName": "<your observation api name>",
    "observationName": "<your observation name>",
    "observationEventId": "<your observation event id>",
    "assessmentApiName": "<your assessment api name>",
    "assessmentName": "<your assessment name>"
}
Espacio de nombres: FraudProtection.Labels.
{
    "request": "",
    "labelEventId": "",
    "assessmentApiName": "<your assessment api name>",
    "assessmentName": "<your assessment name>"
}

Eventos de auditoría

Use eventos de auditoría para realizar un seguimiento de las acciones del portal y desarrollar un registro de auditoría. Los eventos de auditoría actualmente admiten operaciones nuevas / de edición / eliminación en reglas, listas, velocidades y llamadas externas.

Espacio de nombres: FraudProtection.Audit.
"audit": {
    "entityId": "cde1518f-305e-42e8-8d05-9b955efe3f46",
    "entityName": "Manual Review Rule",
    "entityType": "Rule",
    "operationName": "NewRule",
    "userId": "user@contoso.com"
},
"name": "FraudProtection.Audit",
"version": "1.0",
"metadata": {
    "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
    "timestamp": "2020-06-10T23:43:33.4526859Z"
}

Acceso al registro de auditoría

Hay dos formas de acceder a los registros de auditoría. Puede configurar el seguimiento de eventos o puede solicitar que se envíe un registro de auditoría generado automáticamente mediante la creación de una incidencia de soporte técnico al cliente. Si decide no utilizar el seguimiento de eventos y, en su lugar, envía un ticket de soporte, el ticket de soporte se envía al equipo de ingeniería de Fraud Protection. El equipo extrae los registros y se los devuelve. Los registros de auditoría se capturan y almacenan en la misma ubicación geográfica en la que se aprovisiona un entorno. Los registros no se pueden editar después de capturarlos y el período de retención del registro es de 365 días. Los registros de más de 365 días se eliminan automáticamente.

Hay cinco eventos generados que se pueden rastrear mediante los registros de auditoría. Esos eventos son:

  • Se asigna un usuario a una función de Fraud Protection por primera vez.
  • Se actualiza el rol de un usuario existente.
  • Todas las asignaciones de roles se eliminan para un usuario específico.
  • Un usuario acepta el consentimiento de FCRA.
  • Un suuario actualiza la configuración del impulsor de aceptación de transacciones (TAB). Cualquier cambio en esta configuración se considera una actualización.

Eventos de registros de actividad

Use eventos de registros de actividad para obtener registros detallados de quién hizo lo que, cuándo y dónde, para algunas acciones de Protección contra fraudes. Por ejemplo, puede ver quién realizó el último cambio en una regla. Los resultados coinciden con los resultados de búsqueda de registros de actividad.

Espacio de nombres: FraudProtection.ActivityLog.
{
"eventId": "0c6e1948-75a9-4513-bb4c-4828c9a8ab05",
"operationType": "Create",
"resourceType": "Decision rule",
"resourceId": "b1053216-2fc4-4ef6-94e8-c4da706d87fa",
"resourceName": "Rule Test",
"userId": "fb88ba00-58e0-421c-8742-10ae04dddb86"
}

El "userID" va seguido de los campos de operación y tipo de recurso específico.

Supervisión de eventos

Puede usar eventos de supervisión para informes personalizados y alertas en la API y el rendimiento de las llamadas externas con los informes disponibles en el portal de Protección contra fraudes. Cada uno de los eventos siguientes proporciona información sobre la latencia y los errores de cada servicio.

Espacio de nombres: FraudProtection.Monitoring.RequestLatencyMsDistribution.

Para llamadas de API, se envían recuentos de solicitudes y distribuciones de latencia cada 20 segundos en este evento. Estos eventos incluyen los campos hora de inicio y hora de finalización que determinan el período de agregación y los nombres y valores de las dimensiones que se pueden usar para filtrar las métricas según sea necesario.


{
"Index": [
             1
],
"BucketSamples": [
             2
],
"NumberOfBuckets": 10000,
"BucketSize": 10,
"MinimumValue": 0,
"CounterName": "RequestLatencyMsDistribution",
"DimensionNames": [
   "EnvironmentId",
   "TenantId",
   "ApiName",
   "ExperienceType",
   "IsTestRequest",
   "RequestType",
   "HttpRequestStatus",
   "HttpStatusCode"
],
"DimensionValues": [
   "63f55d63-9653-4ed9-be77-294da21202ae",
   "63f55d63-9653-4ed9-be77-294da21202ae",
   "v1.0/Observe/Create",
   "N/A",
   "False",
   "REALTIME",
   "Success",
   "200"
],
"StartTime": "2020-06-22T23:43:20",
"EndTime": "2020-06-22T23:43:40",
"Samples": 2,
"Min": 3,
"Max": 7,
"name": "FraudProtection.Monitoring.RequestLatencyMsDistribution",
"version": "1.0",
"metadata": {
   "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
   "timestamp": "2020-06-22T23:43:20.0947542Z"
}
}

El campo Muestras representa el recuento de solicitudes por API.

Espacio de nombres: FraudProtection.Monitoring.ExternalCalls

Este evento incluye la latencia (en ms) y el código de estado HTTP de cada llamada externa <link to external call doc> que se activa a partir de una regla. También se proporcionan dimensiones adicionales para la regla y la cláusula que activa la llamada.

Para las llamadas externas, la latencia (en ms) y las métricas del código de estado http se envían con cada solicitud en este evento. También se proporcionan dimensiones adicionales para la regla que activa la llamada para mejorar la experiencia de resolución de problemas si estaba interesado en investigar el rendimiento de una llamada individual.


{
    "name": "FraudProtection.Monitoring.ExternalCalls",
    "version": "1.0",
    "metadata": {
        "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
        "timestamp": "2020-06-10T23:43:33.4526859Z"
    },
    "externalCallName": "SampleExternalCall",
    "requestStatus": "Success",
    "httpStatusCode": 200,
    "correlationId": "50BFA0D6-1E3D-4700-A2B3-1DD01162C08A",
    "latencyMs": 123,
    "assessment": "PURCHASE",
    "rule": "SampleRule",
    "clause": "SampleClause"
}

Espacio de nombres: FraudProtection.Errors.ExternalCalls

Este evento registra errores para cada llamada externa fallida y puede ser útil para depurar cualquier problema que pueda ver con el rendimiento de su llamada externa. La solicitud y respuesta completas de la llamada se registran, así como la latencia y la regla y la cláusula desde la que se desencadenó la llamada.


{
    "name": "FraudProtection.Errors.ExternalCalls",
    "version": "1.0",
    "metadata": {
        "tenantId": "63f55d63-9653-4ed9-be77-294da21202ae",
        "timestamp": "2020-06-10T23:43:33.4526859Z"
    },
    "externalCallName": "SampleExternalCall",
    "requestStatus": "ResponseFailure",
    "httpStatusCode": 404,
    "correlationId": "50BFA0D6-1E3D-4700-A2B3-1DD01162C08A",
    "latencyMs": 123,
    "assessment": "PURCHASE",
    "rule": "SampleRule",
    "clause": "SampleClause",
    "response": "{}",
    "requestUri": "https://samplewebsite/sample",
    "requestBody": "{}"
}