Soluciona problemas de configuración de Observability Analytics

Las Estadísticas de observabilidad te permiten ejecutar consultas en SQL para analizar tus registros, crear vistas de análisis, vincular buckets de registros a conjuntos de datos de BigQuery y supervisar los resultados de las consultas con políticas de alertas. Si encuentras errores cuando configuras o consultas las Estadísticas de observabilidad, puedes usar la orientación de este documento para identificarlos y resolverlos. Si tienes problemas para actualizar un bucket de registros, consulta Soluciona problemas de actualización de un bucket para usar Estadísticas de observabilidad.

Mensajes de error

En esta sección, se describen los mensajes de error que podrías ver y cómo resolver las condiciones de error correspondientes.

Mensaje de error de No completion signal within allotted timeframe

Ingresa una consulta en SQL y selecciona Ejecutar consulta. La consulta no se completa y ves el siguiente mensaje de error:

The query failed to execute and return results due to error: No completion signal within allotted timeframe.

Para resolver este error, haz lo siguiente:

  • Acorta el intervalo en el que se consultan los registros y, luego, vuelve a intentar la consulta. Por ejemplo, si un intervalo de consulta es de 14 días, acórtalo a 7 días y, luego, ejecuta la consulta.

  • Crea un conjunto de datos de BigQuery vinculado y, luego, ejecuta la consulta desde la interfaz de BigQuery. La interfaz de BigQuery admite consultas que requieren un tiempo de ejecución más largo que la interfaz de Cloud Logging. Para obtener más información, consulta Crea un conjunto de datos de BigQuery vinculado.

Mensaje de error de consultas en buckets con claves CMEK distintas

Ingresa una consulta en SQL que consulte varios buckets de registros y selecciona Ejecutar consulta. La consulta no se completa y ves el siguiente mensaje de error:

Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.

Para resolver esta situación, realiza una de las siguientes acciones:

  • Configura tus buckets de registros para que usen la misma clave de Cloud Key Management Service (Cloud KMS).
  • Cuando los buckets de registros están en la misma ubicación, puedes configurar una carpeta o una organización que sea un recurso superior para los buckets de registros con una clave de Cloud KMS predeterminada. La clave predeterminada del recurso superior debe estar en la misma ubicación que los buckets de registros. Con esta configuración, la clave predeterminada del recurso superior encripta los datos temporales que genera la consulta de Estadísticas de observabilidad. Para obtener más información, consulta Restricciones de las Estadísticas de observabilidad.

Mensaje de error de FROM clause must contain exactly one log view

Ingresas una consulta en SQL en el panel de consultas de la página Estadísticas de observabilidad en la consola de Google Cloud , pero el analizador de SQL muestra el siguiente error:

FROM clause must contain exactly one log view

El error anterior se informa cuando la tabla especificada en la sentencia FROM no se puede resolver en una vista de registro específica.

Para resolver este error, asegúrate de que el nombre de la tabla tenga la sintaxis correcta:

  • Asegúrate de que el nombre de la tabla siga la sintaxis que requiere el esquema de nombres de Estadísticas de observabilidad. BigQuery y las Estadísticas de observabilidad tienen requisitos diferentes para el nombre de la tabla. Puedes encontrar la sintaxis requerida para el nombre de la tabla viendo la consulta predeterminada.

  • Si el ID del proyecto, la región, el ID de bucket o el ID de la vista de un bucket de registros de Google Cloud contienen caracteres de punto, (.), asegúrate de que cada uno de estos campos esté entre comillas simples, (`).

    Por ejemplo, si el ID del proyecto de Google Cloud es example.com:bluebird, para consultar la vista _AllLogs del bucket de registros _Default, usa la siguiente sintaxis para especificar la tabla:

    
    SELECT *
    FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
    

    En la consulta anterior, se supone que el bucket _Default está en la región global.

No se puede guardar una consulta

Quieres guardar tu consulta actual, por lo que la ejecutas y, luego, haces clic en Guardar, pero la opción Guardar consulta está inhabilitada o no puedes completar los pasos del diálogo.

La causa de este error es un conflicto entre una política de la organización y la configuración predeterminada de los recursos para Cloud Logging. En el caso de una organización o carpeta, puedes establecer la configuración predeterminada de los recursos para Cloud Logging que especifique una ubicación. En esta ubicación, se almacenan tus consultas guardadas. Sin embargo, si la ubicación entra en conflicto con una política de la organización, tus consultas no se podrán guardar.

Para resolver este error, pídele al administrador de tu organización que actualice la configuración de recursos predeterminada de Cloud Logging para que la política de la organización permita el parámetro de configuración de ubicación. Para obtener más información, consulta Establece la configuración predeterminada de los recursos para Cloud Logging.

Si la opción Guardar consulta está habilitada, pero no puedes completar el diálogo y guardar la consulta, haz lo siguiente:

  1. Asegúrate de que la consulta no contenga errores de sintaxis. Solo puedes guardar consultas válidas.
  2. Opcional: Copia la consulta en el portapapeles.
  3. Vuelve a cargar la página.
  4. Si copiaste la consulta en el portapapeles, pégala en el panel Consulta, ejecútala y, luego, realiza la operación de guardado.

No se puede crear una vista de análisis

Quieres crear una vista de análisis, por lo que ingresas y ejecutas una consulta en SQL y, luego, haces clic en Guardar, pero la opción Guardar como vista de análisis está inhabilitada.

Para resolver esta situación, asegúrate de que tus roles de IAM incluyan los siguientes permisos:

  • observability.analyticsViews.{get, list, create, update, delete}

Estos permisos no se incluyen en ningún rol predefinido de Cloud Logging. Para obtener información sobre los roles necesarios, consulta Crea y consulta vistas de análisis: Antes de comenzar.

No se puede consultar una vista de análisis

Quieres consultar una vista de análisis, pero el panel Vistas de la página Estadísticas de observabilidad no muestra ninguna vista de análisis.

Para resolver este error, intenta lo siguiente:

  • Asegúrate de que tus roles de IAM incluyan los siguientes permisos:

    • observability.analyticsViews.{get, list}

    Estos permisos no se incluyen en ningún rol predefinido de Cloud Logging. Para obtener información sobre los roles necesarios, consulta Crea y consulta vistas de Analytics: Antes de comenzar.

  • Asegúrate de que existan vistas de análisis en tu proyecto de Google Cloud .

Se denegó el acceso a la página Estadísticas de observabilidad

Abres la página Estadísticas de observabilidad en la consola de Google Cloud y se muestra un mensaje de error de permiso denegado.

Para obtener los permisos que necesitas para cargar la página Estadísticas de observabilidad, ejecutar consultas y ver registros, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

También puedes obtener los permisos necesarios a través de roles personalizados o roles predefinidos de Logging.

Los permisos que necesitas para ver las entradas de registro y ejecutar consultas en la página Estadísticas de observabilidad son los mismos que necesitas para ver los registros en la página Explorador de registros. Para obtener información sobre los roles adicionales que necesitas para consultar vistas en buckets definidos por el usuario o para consultar la vista _AllLogs del bucket de registros _Default, consulta Roles de Cloud Logging.

No se puede crear un bucket de registros debido a una restricción de ubicación

Intentas crear un bucket de registros, pero la acción falla con un mensaje similar al siguiente:

Constraint `constraints/gcp.resourceLocations` violated for `<CONTAINER>` attempting to change `<BUCKET_NAME>` with location `<LOCATION>`. The location must be in the allowed location list configured by the organization policy administrator.

El mensaje de error anterior indica que tu organización no admite la ubicación que seleccionaste para el bucket de registros nuevo.

Para resolver esta falla, selecciona una ubicación que sea compatible con tu organización.

No se puede crear un conjunto de datos de BigQuery vinculado

Editas un bucket de registros para crear un conjunto de datos de BigQuery vinculado o creas un bucket de registros nuevo y seleccionas la opción para crear un conjunto de datos de BigQuery vinculado. Sin embargo, no se crea el conjunto de datos de BigQuery vinculado.

Para resolver este error, pídele al administrador del sistema del proyecto de Google Cloud que te otorgue un rol de IAM que incluya el siguiente permiso:

  • logging.links.create

El permiso anterior se incluye en los roles de administrador de Logging (roles/logging.admin) y de escritor de configuración de registros (roles/logging.configWriter).

Para obtener información sobre los roles y los permisos, consulta Control de acceso con IAM.

No se puede borrar un conjunto de datos de BigQuery vinculado

Ya no quieres el conjunto de datos de BigQuery vinculado, pero la opción para borrarlo está inhabilitada.

Para resolver este error, pídele al administrador del sistema del proyecto de Google Cloud que te otorgue un rol de IAM que incluya el siguiente permiso:

  • logging.links.delete

El permiso anterior se incluye en los roles de administrador de Logging (roles/logging.admin) y de escritor de configuración de registros (roles/logging.configWriter).

Este permiso te permite borrar el conjunto de datos de BigQuery vinculado de la página Almacenamiento de registros de la consola de Google Cloud . Para obtener más información sobre los roles y los permisos, consulta Control de acceso con IAM.

Las Estadísticas de observabilidad muestran una advertencia sobre los metadatos sensibles

En la página Estadísticas de observabilidad, se muestra un mensaje similar al siguiente:

This SQL query is configured to run on the BigQuery engine using [PROJECT_ID],
and references resources from [RESOURCE, ...]. Sensitive metadata,
including table contents, may be written to [PROJECT_ID].

El mensaje de advertencia indica que la consulta cruza los límites de propiedad y te brinda la oportunidad de verificarla antes de que se ejecute. Los límites de propiedad se determinan por varios factores, uno de los cuales es la jerarquía de los recursos que usa la consulta.

No puedes evitar este tipo de advertencias.

Si en la página Estadísticas de observabilidad se muestra un diálogo de advertencia, puedes realizar cualquiera de las siguientes acciones:

  • Si sabes que la consulta es segura para ejecutar y quieres ver los resultados, haz clic en Confirmar y ejecutar.

  • Analiza la consulta y, si es necesario, descártala. Por ejemplo, puedes hacer lo siguiente:

    1. Inspecciona la consulta. En tu inspección, considera qué datos se consultan, el tamaño potencial del conjunto de datos consultado y el motor de consultas. Las consultas que se ejecutan en el servicio de BigQuery pueden generar cargos.
    2. Si te enviaron un vínculo a la página Estadísticas de observabilidad, verifica que el remitente sea una fuente de confianza.

Google Cloud proporciona algunas funciones que pueden ayudar a evitar el robo de datos a través de phishing, ataques de usuarios con información privilegiada o entidades externas. Para obtener más información, consulta Seguridad de los datos con Estadísticas de observabilidad.

La consulta de un conjunto de datos de BigQuery vinculado falla porque no se encuentra el conjunto de datos

Envías una consulta a un conjunto de datos de BigQuery vinculado y el comando falla con un mensaje de error similar a "No se encontró el conjunto de datos".

Para resolver este problema, realiza las siguientes acciones:

  • Asegúrate de que la ruta de acceso al nombre del conjunto de datos sea correcta.
  • Ejecuta el siguiente comando gcloud logging links list y verifica que la respuesta incluya tu conjunto de datos de BigQuery vinculado.

    Si tu conjunto de datos de BigQuery vinculado no aparece en la lista, significa que el conjunto de datos está huérfano. Para resolver esta situación, borra el conjunto de datos de BigQuery vinculado.

    Un proyecto puede tener un conjunto de datos de BigQuery vinculado huérfano si revocas los otorgamientos de roles de IAM de una cuenta de servicio que Google Cloud Observability usa para administrar datos y, luego, borras el vínculo en el bucket de registros. En ese caso, Google Cloud Observability no puede borrar el conjunto de datos de BigQuery vinculado.

No se puede establecer el motor de consultas en BigQuery

El menú Configuración de tiene inhabilitada la opción BigQuery.

Para habilitar esta opción, asegúrate de tener un conjunto de datos de BigQuery vinculado en el bucket de registros que se consulta.

El botón Ejecutar en BigQuery está inhabilitado

Si se muestra el botón Ejecutar en BigQuery, pero está inhabilitado, significa que una vista de registro a la que hace referencia tu consulta no tiene un conjunto de datos de BigQuery vinculado. Para ejecutar tu consulta en el motor de BigQuery, crea un conjunto de datos de BigQuery vinculado en tu bucket de registros.

No hay una cuenta de servicio de Monitoring

Quieres crear una política de alertas para supervisar los resultados de una consulta en SQL. En los pasos de configuración, se requiere que otorgues roles de IAM a la cuenta de servicio de Monitoring, pero esa cuenta no existe.

La cuenta de servicio de Monitoring se denomina agente de servicio porque la crea y administra Google Cloud. La cuenta se crea automáticamente cuando configuras un recurso o servicio que la requiere. Por ejemplo, si creas un canal de notificaciones de Pub/Sub, esa acción podría provocar que se cree la cuenta de servicio de Monitoring.

Para crear la cuenta de servicio de Monitoring y otorgarle los permisos necesarios para las políticas de alertas basadas en SQL, haz lo siguiente:

  1. Crea la cuenta de servicio de Monitoring. Para obtener más información, consulta Crea y otorga roles a los agentes de servicio.

  2. Otorga los siguientes roles a la cuenta de servicio de Monitoring:

Error de permiso denegado de la cuenta de servicio de Monitoring

Quieres crear una política de alertas para supervisar los resultados de una consulta en SQL. Sin embargo, ves un error PermissionDenied con un mensaje que comienza con Error authenticating service account.

Para resolver esta falla, otorga los siguientes roles a la cuenta de servicio de Monitoring:

Hay entradas de registro duplicadas en mis resultados de Estadísticas de observabilidad

Ejecutas una consulta que cuenta o informa entradas duplicadas. Debido a que el Explorador de registros quita las entradas duplicadas según el nombre del registro, la marca de tiempo y el ID de inserción, se espera que las Estadísticas de observabilidad anulen la duplicación de las entradas de registro antes de que se ejecute una consulta.

Las Estadísticas de observabilidad no realizan el mismo tipo de anulación de duplicación que realiza el Explorador de registros.

Para resolver las entradas de registro duplicadas, prueba lo siguiente:

  1. Determina si las entradas de registro duplicadas tienen valores de marca de tiempo de recepción diferentes. Cuando las marcas de tiempo difieren, indica que los mismos datos se escribieron en Logging varias veces.

    Para resolver las escrituras duplicadas, investiga tu integración de registros en busca de mensajes de error o parámetros de configuración incorrectos.

  2. Si tu bucket está configurado para usar claves de Cloud Key Management Service, asegúrate de que estés dentro de la cuota y de que tu clave sea accesible de forma coherente. Si se supera la cuota o se pierde el acceso a la clave, se pueden generar entradas de registro duplicadas.

    Para resolver estas fallas, asegúrate de no exceder tu cuota y de que se pueda acceder a tu clave.

  3. Modifica tu consulta para quitar las entradas de registro duplicadas.

    Por ejemplo, supongamos que la carga útil de JSON contiene fieldA y fieldB, en la que el primero es una cadena y el segundo es numérico. Además, supongamos que la carga útil de JSON contiene un campo etiquetado como server, que incluye una cadena. A continuación, considera la siguiente consulta:

    SELECT
      JSON_VALUE(json_payload.fieldA) AS fieldA,
      SUM(IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0)) AS sum_fieldB
    FROM
      `VIEW`
    WHERE
      JSON_VALUE(json_payload.server) = "test"
    GROUP BY
      fieldA;
    

    Puedes modificar la consulta para quitar las entradas de registro duplicadas, en las que se examinan el nombre del registro, la marca de tiempo y el ID de inserción para determinar si una entrada de registro está duplicada:

    WITH
      deduplicated AS (
      SELECT
        JSON_VALUE(json_payload.fieldA) AS fieldA,
        IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0) AS fieldB
      FROM
        `VIEW` a
      WHERE
        JSON_VALUE(json_payload.server) = "test"
      QUALIFY
        ROW_NUMBER() OVER (PARTITION BY a.log_name, a.timestamp, a.insert_id ) = 1 )
    
    SELECT
      fieldA,
      SUM(fieldB) AS sum_fieldB
    FROM
      deduplicated
    GROUP BY
      fieldA;