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

En este documento, se describe cómo ver tus entradas de registro en tiempo real mediante la transmisión y transmisión de registros en tiempo real. Los registros de transmisión te permiten ver las entradas de registro en tiempo real y están disponibles Explorador de registros. El registro de registros en tiempo real te permite ver las entradas de registro en tiempo real y está disponible como Gcloud CLI comando gcloud alpha logging tail y como método de la API de Cloud Logging entries.tail.

Cuando veas y analices tus registros con el Explorador de registros, gcloud logging read o el método de la API entries.list, estás viendo entradas de registro que Cloud Logging almacenó. Cuando transmites en vivo o las entradas de registro de cola en tiempo real, verás las entradas de registro como aplicaciones los 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 Transmitir registros. Si usas Transmitir registros, puedes agregar una consulta para transmitir solo los registros que coinciden con la consulta. Para transmitir registros, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

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

  2. En el cuadro de texto Consulta, ingresa una consulta y, luego, haz clic en Transmitir registros.

    A medida que Logging escribe los datos de registro, solo los registros que coinciden con se muestran en el panel Resultados de la consulta. Si no se proporciona una consulta, Logging muestra el las entradas de registro almacenadas. Los registros continúan transmitiendo hasta que seleccionas la barra de desplazamiento en el panel de registros. Cuando se detiene la transmisión, se muestra el botón Reiniciar transmisión.

    Para obtener información sobre las consultas, visita Crea consultas en Explorador de registros.

Usa la transmisión de registros en tiempo real en Google Cloud CLI

El registro de registros en tiempo real te permite ver tus entradas de registro en tiempo real como Cloud Logging y las escribe, ya sea con Google Cloud CLI o la API de Cloud Logging.

El seguimiento de registros en tiempo real no es compatible con los buckets de registros controles de acceso a nivel de campo, sin importar pueden transmitir registros de esos buckets en el Explorador de registros.

Si deseas obtener información sobre el método de la API para la transmisió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 de Python grpcio instalado.

Para obtener instrucciones sobre cómo instalar Python, consulta la Página de Python. Para obtener instrucciones sobre cómo instalar el administrador de paquetes de Python, pip, es necesario para instalar el paquete grpcio; consulta Página del instalador de paquetes de Python.

Completa los siguientes pasos para instalar gcloud alpha logging tail:

  1. Verifica que tengas Google Cloud CLI instalado. Para obtener instrucciones sobre cómo para instalar Google Cloud CLI, consulta Instala Google Cloud CLI.

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

    gcloud version
    

    Para obtener instrucciones sobre cómo actualizar gcloud CLI, consulta gcloud components update.

  3. Instala los componentes alfa de gcloud CLI:

    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. Establece la variable de entorno CLOUDSDK_PYTHON_SITEPACKAGES en cualquier valor:

       export CLOUDSDK_PYTHON_SITEPACKAGES=1
      
  5. Usa los siguientes comandos para establecer tu ID del proyecto de Google Cloud y en autentica:

    gcloud config set project PROJECT_ID
    gcloud auth login
    

    Para obtener el ID del proyecto, consulta Crea y administra proyectos.

  6. Para verificar que gcloud alpha logging tail esté instalado, ejecuta el siguiente comando: :

    gcloud alpha logging tail
    

    El comando muestra el siguiente mensaje:

    Initializing tail session.

    Ahora puedes ver las entradas de registro de tu proyecto de Google Cloud como Logging los escribe.

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

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

Almacenamiento en búfer y pedidos

Debido a que Logging puede recibir entradas de registro de forma cronológica, de transmisión de registros en tiempo real proporciona una configuración de ventana de búfer para que puedas equilibrar el equilibrio entre ver las entradas de registro a medida que se escriben y los ven en orden ascendente. Puedes configurar la ventana del búfer entre 0 y 60 segundos.

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

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

  • Logging retrasa la escritura de las entradas de registro en buckets de registros para de la ventana del búfer.

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

Cuando configuras la ventana del búfer, debes hacer un equilibrio entre Visualizar los registros a medida que están escritos y ver las entradas desordenadas.

Ventana de búfer Compensación
0 segundos Se mostraron las entradas de registro más recientes, pero con más probabilidades de que queden fuera de orden.
60 segundos Un retraso de 60 segundos antes de ver las entradas devueltas, pero la mayoría de los registros se devuelven en orden ascendente.

Límites y cuotas

En la siguiente tabla, se enumeran los límites y las cuotas para el transmisión de registros en tiempo real:

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

Limitaciones del cliente

Para un proyecto de Google Cloud en el que se escriben muchas entradas rápidamente, tu cliente y que no puedan consumirlos tan rápido como se escriben. En En este caso, Logging limita el número total de entradas enviadas, priorizando las entradas más recientes. Al final de la sesión final, Logging devuelve la cantidad de entradas que no se mostraron debido a los límites del cliente.

Usa el transmisión de registros en tiempo real con bibliotecas cliente

El registro de registros en tiempo real te permite ver tus entradas de registro en tiempo real como Cloud Logging los escribe. Si deseas obtener información sobre el método de la API para la transmisión de registros en tiempo real, consulta el método entries.tail.

El seguimiento de registros en tiempo real no es compatible con los buckets de registros controles de acceso a nivel de campo, sin importar pueden transmitir registros de esos buckets en el Explorador de registros.

En este ejemplo, se muestran las entradas de registro de transmisión de registros en tiempo real de un registrador determinado.

Go

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Logging, consulta Bibliotecas cliente de Logging

Para autenticarte en Logging, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	logging "cloud.google.com/go/logging/apiv2"
	loggingpb "google.golang.org/genproto/googleapis/logging/v2"
)

// tailLogs creates a channel to stream log entries that were recently ingested for a project
func tailLogs(projectID string) error {
	// projectID := "your_project_id"

	ctx := context.Background()
	client, err := logging.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient error: %w", err)
	}
	defer client.Close()

	stream, err := client.TailLogEntries(ctx)
	if err != nil {
		return fmt.Errorf("TailLogEntries error: %w", err)
	}
	defer stream.CloseSend()

	req := &loggingpb.TailLogEntriesRequest{
		ResourceNames: []string{
			"projects/" + projectID,
		},
	}
	if err := stream.Send(req); err != nil {
		return fmt.Errorf("stream.Send error: %w", err)
	}

	// read and print two or more streamed log entries
	for counter := 0; counter < 2; {
		resp, err := stream.Recv()
		if err == io.EOF {
			break
		}
		if err != nil {
			return fmt.Errorf("stream.Recv error: %w", err)
		}
		fmt.Printf("received:\n%v\n", resp)
		if resp.Entries != nil {
			counter += len(resp.Entries)
		}
	}
	return nil
}

Java

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Logging, consulta Bibliotecas cliente de Logging

Para autenticarte en Logging, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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();
      }
    }
  }
}

Node.js

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Logging, consulta Bibliotecas cliente de Logging

Para autenticarte en Logging, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

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