Cómo generar gráficos con los resultados de las consulta en SQL

Las Estadísticas de observabilidad te permiten visualizar los resultados de las consultas en SQL como gráficos para identificar patrones y tendencias en tus datos de seguimiento. Después de ejecutar una consulta para buscar y agregar datos de seguimiento, puedes ver los resultados en una tabla, convertirlos en un gráfico y guardar la visualización en un panel.

Por ejemplo, en el siguiente gráfico, se muestra el estado que informan los intervalos a lo largo del tiempo, agrupados por service_name:

Gráfico de ejemplo que ilustra un desglose por nombre de servicio.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Observability API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Observability API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. Para obtener los permisos que necesitas para cargar la página Estadísticas de observabilidad, escribir y ejecutar consultas en tus datos de seguimiento, y guardar gráficos en paneles personalizados, pídele a tu administrador que te otorgue los siguientes roles de IAM:

    • Descriptor de acceso de la vista de observabilidad (roles/observability.viewAccessor) en las vistas de observabilidad que quieres consultar. Este rol admite las condiciones de IAM, que te permiten restringir el otorgamiento a una vista específica. Si no adjuntas una condición al otorgamiento del rol, la principal puede acceder a todas las vistas de observabilidad.
    • Editor de Monitoring (roles/monitoring.editor) en tu proyecto

    Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Selecciona los datos que quieres incluir en el gráfico

Para configurar qué datos se mostrarán en un gráfico, crea una consulta con SQL. Cuando seleccionas la pestaña Gráfico, se muestra un gráfico con los resultados de la consulta. Después de ejecutar la consulta y generar un gráfico, puedes personalizarlo cambiando el tipo de gráfico y seleccionando columnas para mostrar datos diferentes.

Para ver los resultados de tu consulta como un gráfico, ejecuta una consulta de la siguiente manera:

  1. En la Google Cloud consola, ve a la página Estadísticas de observabilidad:

    Ir a Estadísticas de observabilidad

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. En el panel Consulta, ingresa una consulta y, luego, haz clic en Ejecutar.

  3. Una vez que se complete la consulta, en la pestaña Resultados, selecciona cómo deseas ver los resultados de la consulta:

    • Tabla: Solo formato tabular.

    • Gráfico: Solo formato de gráfico.

    • Ambos: Formato de gráfico y tabla

      Después de seleccionar cómo ver los resultados de la consulta, puedes configurar cualquier campo para la visualización seleccionada y, luego, guardar la consulta y los resultados en un panel personalizado. El formato guardado es tabular cuando seleccionas la opción Tabla. De lo contrario, el formato es un gráfico.

      En el caso de los gráficos, las opciones de visualización te permiten seleccionar el tipo de gráfico y las filas y columnas que se incluirán en él. Para obtener más información sobre la configuración del gráfico, consulta Personaliza la configuración del gráfico.

Personaliza la configuración del gráfico

Para personalizar la configuración del gráfico, cambia el tipo de gráfico, selecciona la dimensión y la medición que se graficarán, y aplica un desglose. La dimensión se usa para agrupar o categorizar filas y es el valor del eje X. La medida, o el valor del eje Y, es una serie de datos que se traza en relación con el eje Y.

Cambiar el tipo de gráfico

Puedes seleccionar entre los siguientes tipos de gráficos, según el tipo de filas y columnas que hayas seleccionado como dimensión y medición, y cómo quieras que se visualicen esos datos.

  • Gráfico de barras (predeterminado): Los gráficos de barras trazan datos en dos ejes. Si tu gráfico usa una categoría o una cadena como dimensión, puedes establecer la configuración del gráfico de barras en horizontal o vertical, donde se intercambian los ejes de dimensión y medida.

  • Gráfico de líneas: Los gráficos de líneas se pueden usar para mostrar los cambios en los datos a lo largo del tiempo. Cuando usas un gráfico de líneas, cada serie temporal se muestra con una línea diferente que corresponde a las medidas que seleccionaste.

    Si el eje X se basa en el tiempo, cada dato se coloca al principio de un intervalo de tiempo. Cada dato se conecta mediante interpolación lineal.

  • Gráfico de áreas apiladas: Un gráfico de áreas se basa en un gráfico de líneas, y el área debajo de cada línea está sombreada. En los gráficos de áreas, las series de datos se apilan. Por ejemplo, si tienes dos series idénticas, estas se superponen en un gráfico de líneas, pero el área sombreada se apila en un gráfico de áreas.

  • Gráfico circular o de anillo: Un gráfico circular muestra cómo se relacionan las categorías de un conjunto de datos con todo el conjunto de datos. Para ello, se usa un círculo que representa todo el conjunto de datos y sectores en el círculo que representan las categorías del conjunto de datos. El tamaño de una porción indica cuánto, a menudo como porcentaje, contribuye la categoría al todo.

  • Tabla: Una tabla muestra una fila por cada fila del resultado de la consulta. Las columnas de la tabla se definen con la cláusula SELECT. Si planeas mostrar datos en forma de tabla en un panel, usa una cláusula LIMIT para restringir la cantidad de filas en el resultado a menos de unos cientos.

  • Indicador o cuadro de evaluación: Los indicadores y los cuadros de evaluación te proporcionan el valor más reciente junto con una indicación verde, ámbar o roja según cómo se compare ese valor con un conjunto de umbrales. A diferencia de los medidores, que solo muestran información sobre el valor más reciente, los cuadros de evaluación también pueden incluir información sobre los valores anteriores.

    Los medidores y los cuadros de evaluación solo pueden mostrar el resultado de la consulta cuando este contiene al menos una fila, y esa fila contiene una columna con una marca de tiempo y una columna con datos numéricos. El resultado de la consulta puede contener varias filas y más de dos columnas.

    Si deseas realizar la agregación basada en el tiempo como parte de tu consulta, haz lo siguiente:

    • Configura tu consulta para agregar datos en un intervalo de tiempo, ordenar los resultados por marcas de tiempo descendentes y limitar la cantidad de filas en los resultados. Puedes usar la cláusula LIMIT o el selector de período para limitar la cantidad de filas en el resultado de la consulta.

      Por ejemplo, en la siguiente consulta, se consultan tus datos de seguimiento y se agregan los datos en intervalos de una hora, se aplica un límite y se ordenan los resultados:

      SELECT TIMESTAMP_TRUNC(start_time, HOUR) AS hour,
         COALESCE(
            JSON_VALUE(resource.attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
         status.code AS status,
         COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
      GROUP BY hour, service_name, status
      ORDER BY hour DESC
      LIMIT 1000

      A continuación, se describe el significado de los campos de la expresión anterior:

      La consulta anterior se usó para generar la figura que se muestra al principio de este documento. En esa figura, también se muestra la configuración del gráfico.

    • Establece la Dimensión para que coincida con la columna que informa la unidad de tiempo. Por ejemplo, si tu consulta agrega datos por una hora y crea una columna llamada hour, configura el menú Dimensión como hour.

    • Selecciona Inhabilitar intervalo porque tu consulta ya especifica el intervalo de agregación. En el ejemplo, este intervalo es de una hora.

    • Establece la Medición en la columna numérica y la función en none.

    Si quieres confiar en las Estadísticas de observabilidad para que realicen la agregación basada en el tiempo, haz lo siguiente:

    • Configura el selector de período, que afecta la cantidad de filas en el resultado de la consulta.
    • Establece la Dimensión para que coincida con la columna que informa la unidad de tiempo. Por ejemplo, puedes establecer este menú en timestamp.
    • Establece el menú Intervalo en un intervalo de agregación específico. Por ejemplo, establece el valor de este campo en 1 hour. No selecciones Intervalo automático.
    • Establece la Medida en la columna numérica y selecciona una función, como sum.

Cambia la dimensión y la medición

Puedes elegir qué filas y columnas se grafican seleccionando los campos de dimensión y medición.

  • Dimensión

    La dimensión debe ser una columna de marca de tiempo, numérica o de cadena. De forma predeterminada, la dimensión se establece en la primera columna basada en marcas de tiempo del esquema. Si no hay una marca de tiempo en la consulta, se selecciona la primera columna de cadena como dimensión. También puedes personalizar la dimensión en el panel Visualización del gráfico. Cuando se selecciona una columna de marca de tiempo como dimensión, el gráfico muestra cómo cambian los datos con el tiempo. Cuando se selecciona una columna de cadena como la dimensión de un gráfico de barras, puedes ordenar los datos de forma ascendente o descendente, lo que ordena la dimensión por orden léxico. También puedes mantener el orden de clasificación "predeterminado", que ordena la dimensión según los valores de la medición correspondiente en orden descendente.

    De forma predeterminada, el intervalo para las marcas de tiempo se establece automáticamente, pero también puedes seleccionar un intervalo personalizado. Los intervalos automáticos cambian los valores según el selector de período para mantener grupos de tamaño similar.

    También puedes inhabilitar el intervalo, lo que te permite especificar tus propias agregaciones y períodos dentro de la consulta para realizar análisis más complejos. Si inhabilitas el intervalo, se establece la función de agregación de las mediciones en none. Solo se permiten mediciones numéricas cuando el intervalo de dimensiones está inhabilitado.

  • Medir

    Puedes seleccionar varias mediciones en el panel Visualización de gráficos. Cuando seleccionas una medición, también debes seleccionar la función de agregación que se realizará en sus valores agrupados, como count, sum, average y percentile-99. Por ejemplo, count-distinct devuelve la cantidad de valores únicos en una columna determinada.

    Si seleccionas la casilla de verificación Inhabilitar intervalo para la dimensión, la opción de función de agregación none estará disponible. Si la dimensión es un valor de cadena, no se muestra la casilla de verificación Inhabilitar intervalo. Sin embargo, establecer las funciones de agregación de una medición en none también inhabilita el intervalo.

Cómo agregar un desglose

Para dividir una sola serie de datos en varias series de datos según otra columna, agrega un desglose.

Cuando selecciones un desglose, elige columnas que contengan una pequeña cantidad de etiquetas cortas y significativas, como region_name. No selecciones campos que puedan contener una gran cantidad de cadenas o cadenas largas, como textPayload.

Por ejemplo, en el siguiente gráfico, se muestra la cantidad de intervalos que creó cada servicio, junto con los datos desglosados por el nombre del intervalo:

Ejemplo de panel en el que se muestra el uso de tus buckets de Cloud Storage.

Genera y muestra ejemplos de seguimiento

Puedes configurar tus gráficos basados en SQL que analizan datos de seguimiento para mostrar ejemplos generados de forma dinámica. Un ejemplar es una solicitud de muestra representativa o un intervalo asociado con una medición de métrica. Cada ejemplar se vincula a un seguimiento. Cuando seleccionas un ejemplar, se abre un menú flotante que muestra el seguimiento.

Requisitos de configuración

Para mostrar ejemplos, se debe cumplir lo siguiente:

  • La consulta del gráfico se escribe en SQL y el destino de la consulta son los datos de seguimiento.
  • El gráfico usa la visualización de gráfico de líneas o de barras.
  • trace_id y start_time forman parte de los resultados de la consulta.

Para ocultar los ejemplos, ve a la barra de herramientas del gráfico y selecciona Ocultar ejemplos.

Cómo genera ejemplos el sistema

El sistema aplica una estrategia de selección de muestreo inteligente para mantener los ejemplos legibles y pertinentes:

  • Para las medidas estadísticas, como AVG y PERCENTILE: El sistema compara los valores de intervalo sin procesar con la línea de tendencia interpolada del gráfico y agrupa las muestras en grupos de desviación. Se traza una muestra proporcional de cada grupo y se distribuye de manera uniforme a lo largo del tiempo.
  • Para los recuentos de frecuencia, como COUNT: El sistema posiciona las muestras a lo largo del límite superior de la ventana del gráfico y las distribuye de manera uniforme en los desgloses de series de datos y tiempo.

Limitaciones

  • Si un gráfico muestra varias series temporales, el sistema reduce la cantidad de ejemplares que se muestran.
  • Es posible que los ejemplos no se distribuyan de manera uniforme en el intervalo de tiempo del gráfico.
  • La escala del eje Y podría distorsionar la visualización. Es más probable que se produzca una distorsión cuando un gráfico usa un eje Y logarítmico o cuando las series temporales contienen valores atípicos.
  • No puedes configurar cómo el sistema genera las muestras.

Guarda un gráfico en un panel personalizado

Después de que se genera un gráfico a partir de tu consulta, puedes guardarlo en un panel personalizado. Los paneles personalizados te permiten mostrar y organizar la información que te resulta útil con una variedad de tipos de widgets. Estos paneles también te permiten definir variables, que son filtros a nivel del panel que se aplican solo a widgets específicos. Para aplicar una variable a un widget, debes modificar la consulta. Para obtener más información, consulta Aplica una variable a un widget.

Un panel muestra un mensaje de advertencia para un widget que contiene una consulta en SQL cuando la consulta se ejecuta en el motor de BigQuery y los recursos consultados no están en el mismo límite de propiedad. 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. Para evitar estas advertencias, configura un perímetro de servicio.

Para guardar tu gráfico en un panel, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Estadísticas de observabilidad:

    Ir a Estadísticas de observabilidad

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Ejecuta una consulta para generar un gráfico y, luego, haz clic en Guardar en el panel.

  3. En el cuadro de diálogo Guardar en el panel, ingresa un título para el gráfico y selecciona el panel en el que deseas guardarlo.

  4. Opcional: Para ver el panel personalizado, en el mensaje de aviso, haz clic en Ver panel.

Para ver una lista de paneles personalizados que contienen gráficos generados por consultas en SQL, ve al botón Guardar en el panel y haz clic en Menú.

Edita un gráfico guardado en un panel personalizado

Puedes modificar un gráfico después de guardarlo en un panel. Para obtener más información, consulta Modifica la configuración de un widget. En el cuadro de diálogo Configurar widget, puedes hacer lo siguiente:

  • Cambia los datos que consultas.
  • Editar la consulta que se usa para generar un gráfico
  • Personaliza la configuración del gráfico para visualizar diferentes datos.

Limitaciones

  • Si tu proyecto de Google Cloud está en una carpeta que usa Assured Workloads, los gráficos que generes no se podrán mostrar en un panel personalizado.

  • Los filtros a nivel del panel no se aplican a los gráficos generados a partir de una consulta en SQL.

  • Las columnas seleccionadas deben tener al menos una fila con un valor no nulo.

  • Si guardas una consulta y personalizas la configuración del gráfico, no se guardará la configuración personalizada del gráfico.

  • Si tu consulta ya contiene agregaciones, el gráfico generado podría ser diferente debido a la agregación adicional que aplica automáticamente Estadísticas de observabilidad.

  • Las rutas de acceso de JSON se deben convertir en cadenas o números para que se puedan graficar.

¿Qué sigue?