Acerca de las vistas de Analytics

En este documento, se describen las vistas de estadísticas y cuándo es conveniente crearlas. También se describen las diferencias entre las vistas de Analytics y los conceptos que quizás ya conozcas, como las vistas de registro y las consultas guardadas.

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

Descripción general

Una vista de estadísticas es un recurso que se puede consultar. Este recurso contiene una consulta SQL, que consulta una o más vistas de registro.

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

La consulta de SQL que contiene una vista de estadísticas 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 estadísticas no es una vista procesada previamente que almacena en caché de forma periódica los resultados de las consultas. Por lo tanto, consultar una vista de estadísticas equivale a consultar las vistas de registro que consulta la vista de estadísticas.

Tanto una vista de estadísticas como una consulta guardada contienen una consulta en SQL. Sin embargo, una vista de estadísticas 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 estadísticas

Existen dos tipos de vistas de estadísticas: definidas por el usuario y definidas por el sistema:

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

  • Las vistas de estadísticas definidas por el sistema son vistas de estadísticas que crean los servicios deGoogle Cloud . Puedes consultar vistas de estadísticas definidas por el usuario. Sin embargo, no puedes editarlos ni borrarlos.

Para obtener información sobre cómo enumerar las vistas de estadísticas en tu proyecto de Google Cloud, consulta Cómo enumerar las vistas de estadísticas.

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 estadísticas consulta una vista de registro que se encuentra en la ubicación global, la ubicación de la vista de estadísticas 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 estadísticas

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

Ejemplo: Transformación de datos

Supongamos que estás analizando el rendimiento de la red con los registros de flujo de VPC. Debes analizar el rendimiento general de las redes y también poder identificar redes, direcciones IP o hosts específicos. Lamentablemente, la información que necesitas se encuentra en 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 estadísticas. 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 tienes la tarea de evaluar y resumir la latencia de las solicitudes para 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 estadísticas que creas y que otros equipos pueden consultar informe la latencia mínima, máxima y promedio de las solicitudes completadas según lo registran las entradas de registro en 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

Debido a que las vistas de estadísticas consultan vistas de registro, para crear y consultar estas vistas, tus roles de IAM también deben permitirte consultar vistas de registro y usar el Análisis de registros. En esta sección, se enumeran los roles de IAM necesarios para crear vistas de estadísticas y los necesarios para consultar vistas de registros y usar Log Analytics:

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

    Este rol predefinido contiene los permisos necesarios para crear, administrar y usar vistas de estadísticas. 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 estadísticas:

    • 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 registro 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 registro específica agregando una condición de IAM al otorgamiento de 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 registro. Para obtener más información, consulta Controla el acceso a una vista de registros.

    Si deseas obtener información sobre los roles adicionales que necesitas para consultar vistas en buckets definidos por el usuario o consultar la vista _AllLogs del bucket de registro _Default, consulta Roles de Cloud Logging.

Limitaciones

Las siguientes limitaciones se aplican a las vistas de estadísticas:

  • Una vista de Analytics no puede consultar otra vista de Analytics.
  • Una vista de estadísticas puede consultar varias vistas de registro. Sin embargo, los buckets de registro que alojan las vistas de registro consultadas deben estar en una 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 estadísticas que consulte vistas de registro en esos buckets de registro.
  • El recurso superior de una vista de estadísticas debe ser un proyecto de Google Cloud. No puedes crear una vista de estadísticas 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 estadísticas con 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 o administrar vistas de estadísticas.
  • Se aplican los siguientes límites a las vistas de estadísticas:

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

¿Qué sigue?