Acerca de las vistas de análisis

En este documento, se describen las vistas de Analytics y cuándo te conviene crearlas. También se describen las diferencias entre las vistas de Analytics y las consultas guardadas.

Descripción general

Una vista de Analytics es un recurso que puedes consultar. Es decir, después de definir una vista de Analytics, puedes escribir consultas en las que especifiques tu vista de Analytics en la cláusula FROM.

El principal beneficio de usar vistas de Analytics es que no estás limitado a consultar los datos en el formato que define una API o un sistema. Una vista de Analytics te permite definir un esquema, lo que te permite simplificar tus consultas o reducir el tiempo que dedicas a escribirlas. La consulta en una vista de Analytics puede hacer cosas como conservar solo campos específicos, cambiar el nombre de los campos, mover campos anidados a una columna de nivel superior y realizar agrupaciones y agregaciones.

Las vistas de Analytics no son vistas materializadas. Una vista de Analytics no es una vista procesada previamente que almacena en caché los resultados de las consultas de forma periódica. Por lo tanto, consultar una vista de Analytics equivale a consultar las vistas que se enumeran en la consulta de la vista de Analytics.

Las vistas de Analytics son más potentes que las consultas guardadas, que son consultas que ejecutas en la página Análisis de registros y, luego, guardas. Puedes volver a ejecutar una consulta guardada, pero no puedes consultar los resultados 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 las vistas de Analytics que creas. Puedes consultar, editar y borrar las vistas de análisis 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 o una vista de observabilidad 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.

Ejemplos de casos de uso

El principal beneficio de una vista de Analytics es que no estás limitado a consultar los datos en el formato que define el sistema. Una vista de Analytics te permite definir un esquema, lo que te permite simplificar tus consultas o reducir el tiempo que dedicas a escribirlas.

Cómo consultar detalles de la red

Deseas analizar el rendimiento de la red con los registros de flujo de VPC. Debes analizar el rendimiento general de la red y, también, identificar redes, direcciones IP y hosts específicos. Esta información se almacena en campos anidados dentro del campo json_payload de una entrada de registro.

Para simplificar tus consultas de análisis, crea la siguiente vista de Analytics y asígnale el nombre network_details:

SELECT
  -- Create a column for each network field.
  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
  -- Query one log view.
  `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
  -- Only query the VPC Flow Logs log.
  log_id = "compute.googleapis.com/vpc_flows"
  AND SEARCH(json_payload.reporter, "SRC")

Antes de usar la consulta, establece los valores de las siguientes variables:

  • PROJECT_ID: Es el identificador del proyecto.
  • LOCATION: Es la ubicación de la vista de registros.
  • BUCKET_ID: Es el nombre o el ID del bucket de registros.
  • LOG_VIEW_ID: Es el identificador de la vista de registros, que se limita a 100 caracteres y solo puede incluir letras, dígitos, guiones bajos y guiones.

Cuando deseas analizar el rendimiento de la red, consultas 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

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

Varios equipos necesitan datos de rendimiento semanales para completar sus análisis. En lugar de que cada equipo genere los datos semanales, creas una vista de Analytics que extrae los datos semanales. Otros equipos pueden consultar la vista de estadísticas y, luego, realizar su análisis.

La siguiente consulta ilustra cómo usar SQL para calcular la latencia mínima, máxima y promedio de las solicitudes:

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
    -- Query one log view.
    `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
  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

Extrae el nombre del servicio de seguimiento

Supongamos que deseas escribir consultas que analicen tus datos de seguimiento y que deseas mostrar o agrupar por un nombre de servicio sintetizado. La consulta de tu vista de Analytics determina el nombre del servicio para un intervalo con la función COALESCE, que evalúa una lista de expresiones, en orden, y devuelve el valor de la primera expresión que no se evalúa como NULL:

SELECT
  start_time,
  -- Set the value of service name based on the first non-null value in the list.
  COALESCE(
    JSON_VALUE(resource.attributes, '$."service.name"'),
    JSON_VALUE(attributes, '$."service.name"'),
    JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
  name AS span_name,
  duration_nano,
  status.code AS status,
  trace_id,
  span_id
FROM
  `PROJECT_ID.us._Trace.Spans._AllSpans`
LIMIT 10

Antes de usar la consulta, reemplaza PROJECT_ID por el ID de tu proyecto deGoogle Cloud .

Cómo unir datos de registros y de seguimiento con el ID de seguimiento

Cuando analizas una aplicación, es posible que desees correlacionar tus datos de registro y de seguimiento. Una opción es crear una vista de Analytics que realice la unión y muestre los campos seleccionados.

La siguiente consulta une los datos de registro y de seguimiento con los IDs de intervalo y de seguimiento:

SELECT
  T.trace_id,
  T.span_id,
  T.name,
  T.start_time,
  T.duration_nano,
  L.log_name,
  L.severity,
  L.json_payload,
  L.text_payload,
  L.proto_payload,
  L.insert_id
FROM
  `PROJECT_ID.us._Trace.Spans._AllSpans` AS T
JOIN
  `PROJECT_ID.us.BUCKET_ID.LOG_VIEW_ID` AS L
ON
  -- Join log and trace data by both the span ID and trace ID.
  -- Don't join only on span ID, this field isn't globally unique.
  T.span_id = L.span_id
  -- A regular expression is required because the storage format of the trace ID
  -- differs between a log view and a trace view.
  AND T.trace_id = REGEXP_EXTRACT(L.trace, r'/([^/]+)$')

Antes de usar la consulta, establece los valores de las siguientes variables:

  • PROJECT_ID: Es el identificador del proyecto.
  • BUCKET_ID: Es el nombre o el ID del bucket de registros.
  • LOG_VIEW_ID: Es el identificador de la vista de registros, que se limita a 100 caracteres y solo puede incluir letras, dígitos, guiones bajos y guiones.

En el ejemplo, observa que tanto la vista de registro como la vista de observabilidad se encuentran en la misma ubicación, us. Una vista de Analytics puede consultar varias vistas, pero estas deben estar en la misma ubicación.

Limitaciones

Se aplican las siguientes limitaciones a las vistas de Analytics:

  • Una vista de Analytics solo puede consultar vistas de registros y vistas de observabilidad.
  • El recurso principal de una vista de Analytics debe ser un proyecto de Google Cloud .
  • Solo puedes consultar una vista de Analytics con la página Análisis de registros y solo cuando usas el motor de consultas Análisis de registros (predeterminado).
  • Todas las vistas que consulta una vista de Analytics deben estar en la misma ubicación.
  • Debes usar la consola de Google Cloud para crear o administrar tus vistas de Analytics.
  • Puedes crear como máximo 100 vistas de Analytics por proyecto de Google Cloud .
  • Puedes crear un máximo de 50 vistas de Analytics por región.
  • Por Google Cloud proyecto, como máximo 10 regiones pueden contener una vista de Analytics.

¿Qué sigue?