Cómo ver los registros enviados a Cloud Storage

En este documento, se explica cómo puedes encontrar las entradas de registro que reenviaste desde Cloud Logging a los buckets de Cloud Storage.

Las entradas de registro se guardan en depósitos de Cloud Storage en lotes por hora. Es posible que se necesiten entre 2 y 3 horas para que aparezcan las primeras entradas.

Antes de comenzar

Para obtener un análisis conceptual de los receptores, consulta Descripción general de los modelos de enrutamiento y almacenamiento: Receptores.

Si deseas obtener instrucciones para enrutar tus registros, consulta Enruta registros a destinos compatibles.

Visualiza registros

Para ver los registros que se enrutan a Cloud Storage, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Buckets:

    Ve a Buckets.

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

  2. Selecciona el bucket de Cloud Storage que usas como destino de enrutamiento.

Organización de registros

Cuando exportas registros a un bucket de Cloud Storage, Logging escribe un conjunto de archivos en el bucket.

En el directorio, los archivos tienen una organización jerárquica según el tipo de registro y fecha. El tipo de registro, denominado [LOG_ID] en la referencia LogEntry, puede ser un nombre simple como syslog o un nombre compuesto como appengine.googleapis.com/request_log. Si estos registros se almacenan en un bucket llamado my-gcs-bucket, los directorios se nombrarán como en el siguiente ejemplo:

my-gcs-bucket/syslog/YYYY/MM/DD/
my-gcs-bucket/appengine.googleapis.com/request_log/YYYY/MM/DD/

Un solo bucket de Cloud Storage puede contener registros de varios tipos de recursos. El tamaño máximo del archivo es de 3.5 GiB.

Logging no garantiza que se anule la duplicación de las entradas de registro de los receptores que contienen consultas idénticas o superpuestas. Las entradas de registro de esos receptores se pueden escribir varias veces en un bucket de Cloud Storage.

Los directorios hoja (DD/) tienen varios archivos, cada uno de los cuales contiene las entradas de registro exportadas durante un período especificado en el nombre del archivo. Los archivos están fragmentados y sus nombres terminan en un número de fragmento, Sn o An (n=0, 1, 2, …). Por ejemplo, aquí hay dos archivos que podrían almacenarse en el directorio my-gcs-bucket/syslog/2015/01/13/:

08:00:00_08:59:59_S0.json
08:00:00_08:59:59_S1.json

Estos dos archivos juntos contienen las entradas de registro syslog correspondientes a todas las instancias durante la hora que comienza a las 08:00:00 UTC y termina a las 8:59:59 UTC. Las marcas de tiempo de las entradas de registro se expresan en UTC (Horario universal coordinado).

Las entradas de registro que llegan con un receiveTimestamp dentro del período alineado de 60 minutos de su timestamp se escriben en los archivos del fragmento principal. Por ejemplo, una entrada de registro con un timestamp de 08:00:00 y un receiveTimestamp de 08:10:00 se almacena en el archivo de fragmento principal.

Estos archivos incluyen un fragmento principal numerado en el sufijo: _Sn.json.

Las entradas de registro que llegan con un timestamp en un período de 60 minutos diferente al de su receiveTimestamp se escriben en los archivos del fragmento de anexo. Por ejemplo, una entrada de registro con un timestamp de 08:00:00 y un receiveTimestamp de 09:10:00 se almacena en un archivo de fragmento de anexo.

Estos archivos incluyen un fragmento de anexo numerado con el sufijo _An:Unix_timestamp.json.

Por ejemplo, una entrada de registro que tiene un timestamp entre 08:00:00 y 08:59:59, pero un receiveTimestamp en una ventana alineada diferente de 60 minutos, se escribe en un archivo con el sufijo _An:Unix_timestamp.json, donde la marca de tiempo de Unix identifica la hora en que el archivo se enrutó a Cloud Storage. Si una entrada de registro tenía un timestamp de 08:50:00 y un receiveTimestamp de 09:10:00, y se enrutó a las 09:15:00 el 25 de marzo de 2021, el archivo del anexo se escribiría de la siguiente manera:

08:00:00_08:59:59_A0:1616681700.json

A fin de obtener todas las entradas de registro, debes leer todos los fragmentos de cada período; en este caso, los fragmentos de archivos 0 y 1. La cantidad de fragmentos de archivos escritos puede cambiar para cada período.

Dentro de los archivos fragmentados individuales, las entradas de registro se almacenan como una lista de objetos LogEntry. Para ver un ejemplo de una entrada syslog, consulta Organización de las entradas de registro.

Ten en cuenta que el orden de clasificación de las entradas de registro en los archivos no es uniforme ni está garantizado de alguna otra manera.

Entradas de registro tardías

Las entradas de registro se guardan en buckets de Cloud Storage en lotes por hora. Es posible que se necesiten entre 2 y 3 horas para que aparezcan las primeras entradas. Los fragmentos de los archivos de registro enrutados con el sufijo An (“Append”) contienen las entradas de registro que llegaron tarde.

Si el destino experimenta una interrupción, Cloud Logging almacena los datos en búfer hasta que la interrupción finaliza.

Si no hay registros en el destino de tu sink, consulta las métricas del sistema de exportación. Las métricas del sistema de exportación indican cuántas entradas de registro se enrutan y cuántas se descartan debido a errores. Si las métricas del sistema de exportación indican que no se enruto ninguna entrada de registro al destino, revisa tu [filter][export-query] para verificar que las entradas de registro que coincidan con tu filtro hayan llegado recientemente a Logging.

En la consola de Google Cloud, ve a la página Enrutador de registros:

Ir a Enrutador de registros

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

Entradas de registro de App Engine

Además, App Engine combina varias subentradas de tipo google.appengine.logging.v1.LogLine (también llamadas AppLog o AppLogLine) en una entrada de registro principal de tipo google.appengine.logging.v1.RequestLog para la solicitud que provoca la actividad de registro. Cada línea de registro cuenta con un "ID de solicitud" que identifica la entrada principal. El visor de registros muestra las líneas de registros con la entrada de registro de la solicitud. Logging intenta colocar todas las líneas de registro en el lote con la solicitud original, incluso si por sus marcas de tiempo se colocarían en el siguiente lote. Si eso no es posible, a la entrada de registro de la solicitud pueden faltarle algunas líneas de registro y es posible que existan líneas de registro “huérfanas” sin solicitud en el siguiente lote. Si esta posibilidad te parece importante, prepárate para volver a conectar las partes de la solicitud cuando proceses los registros.

Soluciona problemas

Si parece que faltan registros en el destino de tu receptor o sospechas que el receptor no enruta los registros correctamente, consulta Cómo solucionar problemas de enrutamiento de registros.

Precios

Cloud Logging no cobra por enrutar registros a un destino compatible. Sin embargo, es posible que el destino aplique cargos. Con la excepción del bucket de registros _Required, Cloud Logging cobra por transmitir registros a buckets de registros y por almacenarlos durante más tiempo que el período de retención predeterminado del bucket de registros.

Cloud Logging no cobra por copiar registros, definir alcances de registros ni ejecutar consultas a través de las páginas Explorador de registros o Análisis de registros.

Para obtener más información, consulta los siguientes documentos: