Solucionar problemas

En esta página, se muestra cómo resolver problemas con Cloud Profiler.

Errores con la configuración de tu Google Cloud proyecto

En esta sección, se enumeran los errores de configuración que puedes encontrar y se proporcionan sugerencias para solucionarlos.

La API de Cloud Profiler está inhabilitada

El siguiente error ocurre cuando la API de Profiler no está habilitada para tu Google Cloud proyecto:

failed to create a profile, will retry: rpc error: code = PermissionDenied
desc = Cloud Profiler API has not been used in project 012345 before or it is disabled.

Para resolver este problema, tu Google Cloud proyecto debe tener habilitada la API de Profiler:

  1. Habilita la API de Cloud Profiler.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar la API

  2. Si se muestra API habilitada, la API ya está habilitada. De lo contrario, haz clic en el botón Habilitar.

El emisor no tiene permisos

El siguiente error ocurre cuando no tienes el permiso para escribir datos de creación de perfiles en un Google Cloud proyecto:

failed to create a profile, will retry: rpc error: code = PermissionDenied
desc = The caller does not have permission.

Para resolver este problema, pídele a tu administrador que te otorgue permisos adicionales en ese proyecto. Para obtener una lista detallada de los permisos y funciones necesarios, consulta la sección sobre control de acceso.

Errores con Node.js

En esta sección, se enumeran los problemas que puedes encontrar cuando usas el agente de creación de perfiles de Node.js y se brindan sugerencias para solucionar cada uno de ellos.

La aplicación no sale con normalidad con Node.js

El agente de creación de perfiles para Node.js interfiere en la salida normal del programa. El programa puede tardar hasta una hora en salir después de completar todas las tareas.

Para resolver este problema, emite una señal SIGINT, por ejemplo, mediante Ctrl-C. Cuando emites una señal SIGINT, el proceso finaliza de forma correcta.

Errores con Python

En esta sección, se enumeran los problemas que puedes encontrar cuando usas el agente de creación de perfiles de Python y se proporcionan sugerencias sobre cómo corregir cada uno de ellos.

Excepción NotImplementedError con Python

La siguiente excepción se muestra durante la ejecución de la función start cuando la aplicación se ejecuta en un entorno que no es de Linux:

NotImplementedError

Para resolver este problema, ejecuta tu aplicación en un entorno de Linux.

Excepción ValueError con Python

La siguiente excepción se muestra durante start cuando los argumentos de la función no son válidos, cuando la información necesaria no se puede determinar a partir de las variables de entorno y los argumentos, o cuando el tiempo de CPU y la creación de perfiles del tiempo inhabilitadas:

ValueError

Para solucionar este problema, verifica todo lo siguiente:

  • Asegúrate de que el nombre y la versión del servicio cumplan con los requisitos definidos en la sección sobre argumentos de la versión y del nombre del servicio.
  • Si la creación de perfiles de tiempo está habilitada, asegúrate de que se llame a start desde el subproceso principal.
  • Asegúrate de usar una versión de Python compatible y de que la creación de perfiles de tiempo de CPU o tiempo esté habilitada. Para obtener más información, consulta la función start.
  • Verifica que hayas especificado el project_id parámetro en start si ejecutas fuera de Google Cloud. Para obtener más información, consulta la start función.

Recurso no disponible temporalmente con Python

El registro de errores contiene las siguientes entradas después de habilitar el generador de perfiles:

BlockingIOError: [Errno 11] Resource temporarily unavailable
Exception ignored when trying to write to the signal wakeup fd

Estos mensajes ocurren cuando una aplicación se registra con el descriptor de archivo de activación de señal, signal.set_wakeup_fd. De forma predeterminada, si se llena el búfer del descriptor de archivo, entonces se registra una advertencia en stderr.