Solución de problemas con registros de recursos

Esta guía paso a paso proporciona información general sobre los registros de recursos de Azure Web PubSub y algunas sugerencias de uso de los registros para solucionar determinados problemas. Los registros se pueden usar para la identificación de problemas, el seguimiento de conexiones, mensajes y solicitudes HTTP, y análisis.

¿Qué son los registros de recursos?

Hay tres tipos de registros de recursos: conectividad, mensajería y solicitudes HTTP.

  • Los registros de conectividad proporcionan información detallada para las conexiones del centro de conectividad de Azure Web PubSub. Por ejemplo, información básica (id. de usuario, id. de conexión, etc.) e información de eventos (conexión, desconexión, etc.).
  • Los registros de mensajería proporcionan información de seguimiento de los mensajes del centro de conectividad de Azure Web PubSub recibidos y enviados a través de este servicio. Por ejemplo, el identificador de seguimiento y el tipo de mensaje del mensaje.
  • Los registros de solicitudes HTTP proporcionan información de seguimiento de las solicitudes HTTP enviadas al servicio Azure Web PubSub. Por ejemplo, el método HTTP y el código de estado. Por lo general, una solicitud HTTP se registra cuando llega al servicio o cuando sale de este.

Captura de registros de recursos con la herramienta de seguimiento activo

La herramienta de seguimiento activo del servicio Azure Web PubSub tiene la capacidad de recopilar registros de recursos en tiempo real, lo que resulta muy útil para la solución de problemas en el entorno de desarrollo. La herramienta de seguimiento activo puede capturar registros de conectividad, mensajería y solicitudes HTTP.

Nota:

A la hora de usar la herramienta de seguimiento activo, debe tenerse en cuenta lo siguiente:

  • Los registros de recursos en tiempo real que captura la herramienta de seguimiento activo se facturarán como mensajes (tráfico saliente).
  • La herramienta de seguimiento activo no admite actualmente la autorización de Microsoft Entra. Debe habilitar claves de acceso para usar el seguimiento activo. En Configuración, seleccione Claves y habilite la opción Clave de acceso.
  • La instancia del nivel Gratis del servicio Azure Web PubSub tiene un límite diario de 20 000 mensajes (tráfico de salida). El seguimiento activo puede hacer que alcance inesperadamente el límite diario.

Inicio de la herramienta de seguimiento activo

Nota:

Al habilitar la clave de acceso, usará el token de acceso para autenticar la herramienta de seguimiento activo. De lo contrario, usará el identificador de Entra de Microsoft para autenticar la herramienta de seguimiento en directo. Puede comprobar si habilita o no la clave de acceso en la página Claves de SignalR Service en Azure Portal.

Pasos para la clave de acceso habilitada

  1. Vaya a la Azure Portal y a la página de SignalR Service.

  2. En el menú de la izquierda, en Supervisión, seleccione Configuración de seguimiento activo.

  3. Seleccione Habilitar seguimiento activo.

  4. Seleccione el botón Guardar. Pasará un rato hasta que los cambios surtan efecto.

  5. Cuando se complete la actualización, seleccione Abrir herramienta de seguimiento activo.

    Screenshot of launching the live trace tool.

Pasos para la clave de acceso deshabilitada

Asignación de permisos de API de la herramienta de seguimiento activo a sí mismo

  1. Vaya a la Azure Portal y a la página de SignalR Service.
  2. Seleccione Access Control (IAM) .
  3. En la nueva página, haga clic en +Agregar y, a continuación, haga clic en Asignación de roles.
  4. En la nueva página, céntrese en la pestaña Roles de función de trabajo, Seleccione el rol Propietario de SignalR Service y, a continuación, haga clic en Siguiente.
  5. En la página Miembros , haga clic en +Seleccionar miembros.
  6. En el nuevo panel, busque y seleccione miembros y, a continuación, haga clic en Seleccionar.
  7. Haga clic en Revisar y asignar y espere a la notificación de finalización.

Visite la herramienta de seguimiento en directo.

  1. Vaya a la Azure Portal y a la página de SignalR Service.

  2. En el menú de la izquierda, en Supervisión, seleccione Configuración de seguimiento activo.

  3. Seleccione Habilitar seguimiento activo.

  4. Seleccione el botón Guardar. Pasará un rato hasta que los cambios surtan efecto.

  5. Cuando se complete la actualización, seleccione Abrir herramienta de seguimiento activo.

    Screenshot of launching the live trace tool.

Inicio de sesión con una cuenta Microsoft

  1. La herramienta de seguimiento activo mostrará una ventana de inicio de sesión de Microsoft. Si no aparece ninguna ventana, compruebe y permita ventanas emergentes en el explorador.
  2. Espere a que esté listo en la barra de estado.

Captura de registros de recursos

La herramienta de seguimiento activo proporciona algunas características que le ayudarán a capturar los registros de recursos para la solución de problemas.

  • Capturar: inicia la captura de los registros de recursos en tiempo real de Azure Web PubSub.
  • Clear (Borrar): borre los registros de recursos capturados en tiempo real.
  • Filtro de registros: la herramienta de seguimiento activo permite filtrar los registros de recursos capturados en tiempo real con una palabra clave específica. El separador común (por ejemplo, espacio, coma, punto y coma, etc.) se considera parte de la palabra clave.
  • Status (Estado): el estado muestra si la herramienta de seguimiento activo está conectada o desconectada de la instancia específica.

Screenshot of capturing resource logs with live trace tool.

Los registros de recursos en tiempo real que captura la herramienta de seguimiento activo contienen información detallada para la solución de problemas.

Nombre Descripción
Time Hora del evento de registro
Nivel de registro Nivel del evento de registro, que puede ser [Seguimiento | Depuración | Informativo | Advertencia | Error]
Nombre del evento Nombre de operación del evento
Mensaje Mensaje detallado del evento
Excepción Excepción en tiempo de ejecución del servicio Azure Web PubSub
Hub Nombre del centro de conectividad definido por el usuario
id. de Conectar ion Identidad de la conexión
Id. de usuario Identidad del usuario
IP Dirección IP de cliente
Plantilla de ruta La plantilla de ruta de la API
Método HTTP Método HTTP (POST/GET/PUT/DELETE)
URL El localizador uniforme de recursos
Identificación de seguimiento Identificador único de la invocación
Código de estado Código de respuesta HTTP
Duration Duración entre la recepción de la solicitud y su procesamiento
Encabezados La información adicional pasada por el cliente y el servidor con una solicitud o respuesta HTTP

Captura de registros de recursos con Azure Monitor

Habilitación de los registros de recursos

Actualmente, Azure Web PubSub admite la integración con Azure Storage.

  1. Vaya a Azure Portal.

  2. En la página Configuración de diagnóstico de la instancia del servicio Azure Web PubSub, seleccione + Agregar configuración de diagnóstico. Screenshot of viewing diagnostic settings and create a new one

  3. En Nombre de configuración de diagnóstico, introduzca el nombre de la configuración.

  4. En Detalles de la categoría, seleccione cualquier categoría de registro que necesite.

  5. En Detalles del destino, seleccione la casilla Archivar en una cuenta de almacenamiento.

    Screenshot of configuring diagnostic setting detail

  6. Seleccione Guardar para guardar la configuración de diagnóstico.

    Nota:

    La cuenta de almacenamiento debe estar en la misma región que el servicio Azure Web PubSub.

Archivo en una cuenta de almacenamiento de Azure

Los registros se almacenan en la cuenta de almacenamiento configurada en el panel Configuración de diagnóstico. Se crea automáticamente un contenedor denominado insights-logs-<CATEGORY_NAME> para almacenar los registros de recursos. Dentro del contenedor, los registros se almacenan en el archivo resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json. La ruta de acceso se combina por resource ID y Date Time. Los archivos de registro se dividen por hour. El valor de minutos siempre es m=00.

Todos los registros se almacenan en el formato de notación de objetos JavaScript (JSON). Cada entrada tiene campos de cadena que usan el formato descrito en las secciones siguientes.

Las cadenas JSON de registros de archivo incluyen elementos enumerados en las tablas siguientes:

Formato

Nombre Descripción
time Hora del evento de registro
Nivel Nivel del evento de registro
resourceId Identificador de recurso de Azure SignalR Service
ubicación Ubicación de Azure SignalR Service
category Categoría del evento de registro
operationName Nombre de operación del evento
callerIpAddress Dirección IP del servidor o cliente
properties Propiedades detalladas relacionadas con este evento de registro. Para más información, consulte la siguiente tabla de propiedades.

Propiedades de tabla

Nombre Descripción
colección Colección del evento de registro. Los valores permitidos son: Connection, Authorization y Throttling
connectionId Identidad de la conexión
userId Identidad del usuario
message Mensaje detallado del evento de registro
centro Nombre del centro de conectividad definido por el usuario
routeTemplate La plantilla de ruta de la API
httpMethod Método HTTP (POST/GET/PUT/DELETE)
url El localizador uniforme de recursos
traceId Identificador único de la invocación
statusCode Código de respuesta HTTP
duración Duración entre la recepción y el procesamiento de la solicitud
headers La información adicional pasada por el cliente y el servidor con una solicitud o respuesta HTTP

El código siguiente es un ejemplo de una cadena JSON de registro de archivo:

{
  "properties": {
    "message": "Connection started",
    "collection": "Connection",
    "connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
    "userId": null
  },
  "operationName": "ConnectionStarted",
  "category": "ConnectivityLogs",
  "level": "Informational",
  "callerIpAddress": "167.220.255.79",
  "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
  "time": "2021-09-17T05:25:05Z",
  "location": "westus"
}

Archivo en Azure Log Analytics

Para enviar registros a un área de trabajo de Log Analytics:

  1. En la página Configuración de diagnóstico, en Detalles del destino, seleccione **Enviar al área de trabajo de Log Analytics.
  2. Seleccione la Suscripción que quiere usar.
  3. Seleccione el área de trabajo de Log Analytics que se usará como destino para los registros.

Para ver los registros de recursos, siga estos pasos:

  1. Seleccione Logs en la instancia de Log Analytics de destino.

    Log Analytics menu item

  2. Escriba WebPubSubConnectivity, WebPubSubMessaging o WebPubSubHttpRequesty, a continuación, seleccione el intervalo de tiempo para consultar el registro. Para consultas avanzadas, vea Tutorial de Log Analytics.

    Query log in Log Analytics

Para usar una consulta de ejemplo para SignalR Service, siga estos pasos:

  1. Seleccione Logs en la instancia de Log Analytics de destino.
  2. Seleccione Queries para abrir el explorador de consultas.
  3. Seleccione Resource type para agrupar consultas de ejemplo en el tipo de recurso.
  4. Seleccione Run esta opción para ejecutar el script. Sample query in Log Analytics

Las columnas de los registros de archivo incluyen los elementos que se enumeran en la siguiente tabla.

Nombre Descripción
TimeGenerated Hora del evento de registro
Collection Colección del evento de registro. Los valores permitidos son: Connection, Authorization y Throttling
OperationName Nombre de operación del evento
Location Ubicación de Azure SignalR Service
Nivel Nivel del evento de registro
CallerIpAddress Dirección IP del servidor o cliente
Mensaje Mensaje detallado del evento de registro
UserId Identidad del usuario
ConnectionId Identidad de la conexión
ConnectionType Tipo de la conexión. Los valores permitidos son: Server | Client. Server: conexión desde el lado servidor; Client: conexión desde el lado cliente.
TransportType Tipo de transporte de la conexión. Los valores permitidos son: Websockets | ServerSentEvents | LongPolling

Solución de problemas con los registros de recursos

Si encuentra cambios inesperados en el número de conexiones, ya sea un aumento o una disminución, puede aprovechar los registros de recursos para solucionar el problema. Los problemas habituales suelen ser cambios inesperados en el número de conexiones, conexiones que alcanzan los límites de conexiones y errores de autorización.

Cambios inesperados en el número de conexiones

Interrupción inesperada de la conexión

Si se interrumpe una conexión, los registros de recursos registran ese evento de desconexión con ConnectionAborted o ConnectionEnded en operationName.

La diferencia entre ConnectionAborted y ConnectionEnded es que ConnectionEnded es una desconexión prevista desencadenada por el lado cliente o servidor. Aunque ConnectionAborted suele ser un evento de interrupción inesperada de la conexión, se proporciona el motivo de la desconexión en message.

Las opciones de la anulación se muestran en la siguiente tabla:

Motivo Descripción
El número de conexiones llega al límite El número de conexiones llega al límite del nivel de precios actual. Considere la posibilidad de escalar la unidad de servicio.
Recarga de servicios, reconexión El servicio Azure Web PubSub se está recargando. Debe implementar su propio mecanismo de reconexión o volver a conectarse manualmente al servicio Azure Web PubSub.
Error transitorio del servidor interno Se produce un error transitorio en el servicio Azure Web PubSub, se debería recuperar automáticamente.

Aumento inesperado de las conexiones

Cuando el número de conexiones de cliente aumenta inesperadamente, lo primero que debe hacer es filtrar las conexiones superfluas. Agregue un id. de usuario de prueba único a la conexión del cliente de prueba. A continuación, compruebe los registros de recursos. Si ve que más de una conexión de cliente tiene el mismo id. de usuario o dirección IP de prueba, es probable que el cliente esté creando más conexiones de las previstas. Compruebe el código del cliente para buscar el origen de las conexiones adicionales.

Error de autorización

Si recibe un mensaje 401 No autorizado para las solicitudes de cliente, compruebe los registros de recursos. Si encuentra Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>, significa que no hay ninguna audiencia válida en el token de acceso. Intente usar las audiencias válidas sugeridas en el registro.

Limitaciones

Si ve que no puede establecer conexiones de cliente con el servicio Azure Web PubSub, compruebe los registros de recursos. Si encuentra Connection count reaches limit en el registro de recursos, es porque ha establecido demasiadas conexiones con el servicio Azure Web PubSub y ha alcanzado el límite de conexiones. Considere la posibilidad de escalar verticalmente la instancia del servicio Azure Web PubSub. Si ve Message count reaches limit en el registro de recursos y está usando el nivel Gratis, significa que ha agotado la cuota de mensajes. Si desea enviar más mensajes, debe cambiar la instancia del servicio Azure Web PubSub al nivel Estándar. Para más información, consulte Precios de Azure Web PubSub.