Acerca de las vistas de Analytics

En este documento, se describen las vistas de Analytics y cuándo te convendría crearlas. También se describen las diferencias entre las vistas y los conceptos de Analytics con los que tal vez ya estés familiarizado, como las vistas de registros y las consultas guardadas.

Para obtener información sobre cómo crear, consultar y administrar tus vistas de Analytics, consulta Crea y consulta vistas de Analytics.

Descripción general

Una vista de Analytics es un recurso que se puede consultar. Este recurso contiene una consulta en SQL que consulta una o más vistas de registros.

Una vista de registro en un bucket de registros controla qué entradas de registro del bucket de registros puedes ver. Puedes consultar la vista de registros con el Explorador de registros y las páginas de Análisis de registros. En ambos casos, el formato de los datos que se consultan está determinado por la estructura de datos LogEntry.

La consulta en SQL que contiene una vista de Analytics te permite transformar los datos de registro en una o más vistas de registro a un formato personalizado. Es decir, puedes filtrar qué entradas de registro en la vista de registro contribuyen al resultado de la consulta y definir las columnas del resultado. Por ejemplo, puedes descartar columnas, mover datos de un campo JSON anidado a una columna o agregar columnas.

Las vistas de Analytics no son vistas materializadas. Una vista de Analytics no es una vista precalculada que almacena en caché periódicamente los resultados de las consultas. Por lo tanto, consultar una vista de Analytics equivale a consultar las vistas de registros que consulta la vista de Analytics.

Tanto una vista de Analytics como una consulta guardada contienen una consulta en SQL. Sin embargo, una vista de Analytics es un recurso que se puede consultar. Puedes volver a ejecutar una consulta guardada, pero no puedes consultar el resultado de una consulta guardada.

Tipos de vistas de Analytics

Existen dos tipos de vistas de Analytics: definidas por el usuario y definidas por el sistema:

  • Las vistas de Analytics definidas por el usuario son todas las vistas de Analytics que creas. Puedes consultar, editar y borrar vistas de Analytics definidas por el usuario.

  • Las vistas de Analytics definidas por el sistema son vistas de Analytics creadas por losGoogle Cloud servicios. Puedes consultar vistas de análisis definidas por el sistema. Sin embargo, no puedes editarlos ni borrarlos.

Para obtener información sobre cómo enumerar las vistas de Analytics en tu proyecto deGoogle Cloud , consulta Enumera las vistas de Analytics.

Ubicación de las vistas de Analytics

La ubicación de una vista de Analytics se determina según la ubicación de los recursos que consulta. Por ejemplo, si una vista de Analytics consulta una vista de registros que se encuentra en la ubicación global, la ubicación de la vista de Analytics también debe ser global. Cuando usas la consola de Google Cloud para crear una vista de Analytics, la ubicación se establece automáticamente.

Beneficios de las vistas de Analytics

El principal beneficio de las vistas de Analytics es que puedes transformar tus datos de registro y crear un esquema coherente para otras consultas. Sin embargo, también es posible que descubras que, si creas una vista de Analytics, puedes reducir el esfuerzo que dedicas a escribir consultas o mejorar su estructura. Dado que las vistas de Analytics no son vistas materializadas, su uso no necesariamente reduce el tiempo de consulta.

Ejemplo: Transformación de datos

Supongamos que analizas el rendimiento de la red con los registros de flujo de VPC. Debes analizar el rendimiento general de la red y también poder identificar redes, direcciones IP o hosts específicos. Lamentablemente, la información que necesitas se encuentra dentro de campos anidados en el campo json_payload de una entrada de registro.

Para extraer esta información de las entradas de registro, escribe la siguiente consulta y, luego, guárdala como una vista de Analytics llamada network_details:

SELECT
  JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
  JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
  JSON_VALUE(json_payload.connection.src_ip) as src_ip,
  JSON_VALUE(json_payload.connection.src_port) as src_port,
  JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
  JSON_VALUE(json_payload.connection.dest_port) as dest_port,
  CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
  CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM `TABLE_NAME_OF_LOG_VIEW`
WHERE
    log_id = "compute.googleapis.com/vpc_flows"
    AND SEARCH(json_payload.reporter, "SRC")

Cuando quieras analizar el rendimiento de la red, ahora puedes consultar tu vista de Analytics. Por ejemplo, si solo te interesa el nombre de la instancia y la cantidad de datos enviados, puedes escribir la siguiente consulta:

SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100

Ejemplo: Consulta base para el análisis de latencia de la API

Supongamos que se te asignó la tarea de evaluar y resumir la latencia de las solicitudes en intervalos de una semana. Otros equipos usarán los datos del análisis de rendimiento semanal como base para otros análisis.

La vista de Analytics que creas y que pueden consultar otros equipos informa la latencia mínima, máxima y promedio de las solicitudes completadas, según se registran en las entradas de registro de una vista de registro específica:

SELECT week,MIN(took_ms) as min , MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
  SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
  CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
  FROM `TABLE_NAME_OF_LOG_VIEW`
  WHERE json_payload IS NOT NULL
    AND SEARCH(labels,"frontend")
    AND JSON_VALUE(json_payload.message) = "request complete"
  ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week

Roles y permisos de IAM obligatorios

Dado que las vistas de Analytics consultan vistas de registros, para crear y consultar vistas de Analytics, tus roles de IAM también deben permitirte consultar vistas de registros y usar el Análisis de registros. En esta sección, se enumeran los roles de IAM necesarios para crear vistas de Analytics y los que se requieren para consultar vistas de registros y usar el Análisis de registros:

  • Para obtener los permisos que necesitas para crear, administrar y usar vistas de Analytics, pídele a tu administrador que te otorgue el rol de IAM de Usuario de Observability Analytics (roles/observability.analyticsUser) en tu proyecto.

    Este rol predefinido contiene los permisos necesarios para crear, administrar y usar vistas de Analytics. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para crear, administrar y usar vistas de Analytics:

    • observability.analyticsViews.get
    • observability.analyticsViews.list
    • observability.analyticsViews.create
    • observability.analyticsViews.update
    • observability.analyticsViews.delete
  • Para obtener los permisos que necesitas para consultar una vista de registros y usar Log Analytics, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

    Puedes restringir un principal a una vista de registros específica agregando una condición de IAM al otorgamiento del rol de Acceso a la vista de registros que se realiza a nivel del proyecto o agregando una vinculación de IAM al archivo de política de la vista de registros. Para obtener más información, consulta Controla el acceso a una vista 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.

Limitaciones

Se aplican las siguientes limitaciones a las vistas de Analytics:

  • Una vista de Analytics no puede consultar otra vista de Analytics.
  • Una vista de Analytics puede consultar varias vistas de registros. Sin embargo, los buckets de registros que alojan las vistas de registros consultadas deben estar en una sola ubicación. Por ejemplo, supongamos que tienes dos buckets de registros, uno en us-east1 y el otro en asia-east1. No puedes crear una vista de Analytics que consulte vistas de registros en esos buckets de registros.
  • El recurso principal de una vista de Analytics debe ser un proyecto de Google Cloud . No puedes crear una vista de Analytics en carpetas ni organizaciones.
  • Los conjuntos de datos vinculados no son compatibles con las vistas de Analytics. Por lo tanto, solo puedes consultar las vistas de Analytics en la página Análisis de registros. Además, debes ejecutar esas consultas en el servicio predeterminado de Cloud Logging.
  • No hay compatibilidad con la API para crear ni administrar vistas de Analytics.
  • Se aplican los siguientes límites a las vistas de Analytics:

    • Cantidad máxima de vistas de Analytics por proyecto Google Cloud : 100
    • Por Google Cloud proyecto, la cantidad máxima de vistas de Analytics por región es de 50.
    • Por proyecto Google Cloud , la cantidad máxima de regiones que pueden almacenar vistas de Analytics es de 10.

¿Qué sigue?