Entradas de registro de transmisión en vivo y de transmisión de registros en tiempo real

Descripción general

En esta página, se describe cómo ver tus entradas de registro en tiempo real.

Cloud Logging te permite ver tus entradas de registro en tiempo real a medida que Logging las escribe mediante las siguientes funciones:

Registros de transmisión. Los registros de transmisión están disponibles en el Explorador de registros.

Transmisión de registros en tiempo real. El seguimiento de registros en tiempo real está disponible comogcloud herramienta de línea de comandosgcloud alpha logging tail y como método de la API de Cloud Logging.entries.tail .

Cuando visualizas y analizas tus registros mediante el Explorador de registros, gcloud logging read, o el método de API entries.list, estás viendo entradas de registro que Cloud Logging ya almacenó. En cambio, cuando transmites o entradas de registro de cola en vivo, ves las entradas de registro en cuanto tus aplicaciones las escriben en la API de Cloud Logging.

Transmite registros en el Explorador de registros

En el Explorador de registros, puedes ver los datos de tus registros en tiempo real mediante los registros de transmisión. Cuando usas Registros de transmisión, puedes agregar una consulta al Explorador de registros para transmitir solo los registros que coinciden con la consulta.

Para transmitir registros basados en una consulta, agrega una consulta al panel Compilador de consultas y, luego, selecciona Registros de transmisión. A medida que Logging escribe los datos de registros, solo se muestran los registros que coinciden con la consulta en el panel Resultado de la consulta. Si no se proporciona una consulta, Logging muestra cada registro a medida que se escribe.

Transmite los registros que coincidan con una expresión de consulta

Para detener la transmisión, haz clic en Detener transmisión o desplázate hacia abajo en el panel Resultados de la consulta.

Análisis de registros en tiempo real con la herramienta de línea de comandos de gcloud

Los registros en tiempo real te permiten ver tus entradas de registro en tiempo real a medida que Cloud Logging las escribe mediante la herramienta de línea de comandos de gcloud o la API de Cloud Logging.

Si deseas obtener información sobre el método de la API para la visualización de registros en tiempo real, consulta el método entries.tail.

Instalando gcloud alpha logging tail

Para usar gcloud alpha logging tail, debes tener Python 3 y el paquete grpcio de Python instalado.

Para obtener instrucciones sobre cómo instalar Python, consulta la página de Python. A fin de obtener instrucciones para instalar el administrador de paquetes de Python, pip, que se necesita para instalar el paquete grpcio, consulta la página del instalador de paquetes de Python.

Completa los siguientes pasos para instalar gcloud alpha logging tail:

  1. Verifica que tengas instalada la herramienta de línea de comandos de gcloud. A fin de obtener instrucciones para instalar la herramienta de línea de comandos de gcloud, consulta Instala el SDK de Cloud.

  2. Verifica que estés usando la versión 302.0.0 o posterior de la herramienta de gcloud.

    gcloud version
    

    A fin de obtener instrucciones para actualizar la herramienta de gcloud, consulta gcloud components update.

  3. Instala los componentes Alfa de la herramienta de gcloud:

    gcloud components install alpha
    
  4. Para usuarios de macOS, Linux y Cloud Shell:

    1. Instala las bibliotecas cliente de gRPC:

       sudo pip3 install grpcio
      
    2. Configura la variable de entorno CLOUDSDK_PYTHON_SITEPACKAGES en cualquier valor:

       export CLOUDSDK_PYTHON_SITEPACKAGES=1
      
  5. Usa los siguientes comandos para configurar el ID del proyecto de Cloud y autenticarte:

    gcloud config set project PROJECT_ID
    gcloud auth login
    
  6. Ejecuta el siguiente comando para verificar que gcloud alpha logging tail esté instalado:

    gcloud alpha logging tail
    

    Ahora estás viendo las entradas de registro de tu proyecto a medida que Logging las escribe.

    Entradas de registro durante una sesión de cola en vivo

Para obtener más información sobre el uso de los registros en tiempo real, consulta la guía de referencia de gcloud alpha logging tail.

Almacenando en búfer y ordenando

Debido a que Logging puede recibir entradas de registro en orden cronológico, los registros en tiempo real proporcionan una configuración de ventana de búfer para que puedas balancear la compensación entre la visualización de las entradas de registro a medida que se escriben y su visualización en orden ascendente , Puedes establecer la ventana del búfer entre 0 y 60 segundos.

Ten en cuenta las siguientes características de la ventana de búfer:

  • La ventana predeterminada del búfer es de dos segundos.

  • Logging retrasa la transferencia de las entradas de registro durante la duración de la ventana del búfer.

  • Si una entrada de registro se escribe fuera de la ventana del búfer, Logging muestra las entradas de registro a medida que se reciben.

Cuando configuras la ventana del búfer, realizas una compensación entre la visualización de los registros a medida que se transfieren y la visualización de las entradas desordenadas.

Ventana de búfer Compensación
0 segundos Las entradas de registro más recientes, pero con más probabilidades de estar desordenadas.
60 segundos Un retraso de 60 segundos antes de que se muestren las entradas, pero la mayoría de los registros se muestran en orden ascendente.

Límites y cuotas

En la siguiente tabla, se describen los límites y las cuotas de los registros de transmisiones en vivo:

Límites y cuotas Valor
Entradas devueltas por minuto 60,000
Cuando más de 60,000 entradas coinciden con un filtro, Logging las suprime y muestra el recuento de entradas suprimidas en la respuesta.
Sesiones abiertas de seguimiento de registros en tiempo real por proyecto de Cloud 10

Limitaciones del cliente

En el caso de un proyecto de Cloud que escribe muchas entradas con rapidez, es posible que el cliente no pueda consumirlas tan rápido como se escriben. En este caso, Logging limita la cantidad total de entradas enviadas, da prioridad a las entradas más recientes. Al final de la sesión final, Logging muestra la cantidad de entradas que no se mostraron debido a los límites del cliente.

Análisis de registros en tiempo real con bibliotecas cliente

La visualización de los registros en tiempo real te permite ver tus entradas de registro en tiempo real a medida que Cloud Logging las escribe. Si deseas obtener información sobre el método de la API para la visualización de registros en tiempo real, consulta el método entries.tail.

En este ejemplo, se muestran las entradas de registro de registros de seguimiento de transmisiones en vivo de un registrador determinado.

Node.js

Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Logging, consulta las Bibliotecas cliente de Logging.

const {Logging} = require('@google-cloud/logging');
const logging = new Logging();

/**
 * TODO(developer): Replace logName with the name of your log.
 */
const log = logging.log(logName);
console.log('running tail log entries test');

const stream = log
  .tailEntries({
    filter: 'timestamp > "2021-01-01T23:00:00Z"',
  })
  .on('error', console.error)
  .on('data', resp => {
    console.log(resp.entries);
    console.log(resp.suppressionInfo);
    // If you anticipate many results, you can end a stream early to prevent
    // unnecessary processing and API requests.
    stream.end();
  })
  .on('end', () => {
    console.log('log entry stream has ended');
  });

// Note: to get all project logs, invoke logging.tailEntries

Java

Si deseas obtener información sobre cómo instalar y usar la biblioteca cliente de Logging, consulta las Bibliotecas cliente de Logging.

import com.google.cloud.logging.LogEntry;
import com.google.cloud.logging.LogEntryServerStream;
import com.google.cloud.logging.Logging;
import com.google.cloud.logging.Logging.TailOption;
import com.google.cloud.logging.LoggingOptions;

public class TailLogEntries {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Optionally provide the logname as an argument.
    String logName = args.length > 0 ? args[0] : "";

    LoggingOptions options = LoggingOptions.getDefaultInstance();
    try (Logging logging = options.getService()) {

      // Optionally compose a filter to tail log entries only from specific log
      LogEntryServerStream stream;

      if (logName != "") {
        stream =
            logging.tailLogEntries(
                TailOption.filter(
                    "logName=projects/" + options.getProjectId() + "/logs/" + logName));
      } else {
        stream = logging.tailLogEntries();
      }
      System.out.println("start streaming..");
      for (LogEntry log : stream) {
        System.out.println(log);
        // cancel infinite streaming after receiving first entry
        stream.cancel();
      }
    }
  }
}