En este documento, se presenta el uso de la
API de Telemetry (OTLP),
telemetry.googleapis.com, para la transferencia de registros con formato OTLP a
Cloud Logging, donde se almacenan como entradas de registro.
Para ver un ejemplo, consulta
Escribe registros con formato OTLP en la API de Telemetry.
También puedes enviar registros a la API de Telemetry desde aplicaciones que usan SDKs o con un recopilador de OpenTelemetry.
Para obtener información sobre la API de Telemetry para registros, métricas y seguimientos, consulta la referencia de la API de Telemetry (OTLP).
Compatibilidad con protocolos
El extremo de OTLP admite todos los protocolos de OTLP, incluidos http/protobuf, http/json y grpc. Cuando exportas desde un recopilador de OpenTelemetry, puedes usar cualquiera de los protocolos. Sin embargo, debido a la falta de compatibilidad con la actualización dinámica de tokens en la mayoría de los exportadores de SDK, si exportas directamente desde los SDKs, te recomendamos que uses solo el exportador de OTLP de gRPC, no los exportadores de HTTP,
Facturación
Es posible que veas un cambio en los valores de almacenamiento y facturación de Cloud Logging cuando usas la API de Telemetry para transferir registros. Una solicitud de registro con formato OTLP en JSON tiene la siguiente estructura general:
"resourceLogs": [
{
"resource": {
"attributes": [...]
},
"scopeLogs": [
{
"scope": { ...}
"logRecords": [...]
}
]
}
]
Cada elemento de cada array logRecords se convierte en una sola entrada de registro de Cloud Logging. Los cambios más grandes en el almacenamiento y la facturación de tu Google Cloud proyecto
se producen cuando se cumplen las siguientes condiciones:
El campo
resourcecontiene una gran cantidad de atributos obligatorios para claves y valores. Estos atributos de recursos se usan para determinar el recurso supervisado en el resultanteLogEntry.El recurso supervisado consiste en un tipo de recurso supervisado de Cloud Logging y valores para sus etiquetas asociadas. Algunos tipos de recursos supervisados tienen muy pocas etiquetas, pero algunos tipos de recursos tienen muchas etiquetas. Para obtener más información sobre qué atributos son obligatorios para la transferencia de registros con formato OTLP, consulta Asignación de atributos de OTLP a tipos de recursos.
El campo
scopeLogscontiene una gran cantidad de elementos en los arrayslogRecords.
Para admitir la transferencia de registros con formato OTLP, la estructura
LogEntry de Cloud Logging contiene un campo adicional,
otel. Los modelos de datos de OTLP y Cloud Logging no son una coincidencia perfecta, por lo que el campo otel contiene una copia de los recursos, los alcances y las entidades de OTLP de la solicitud de OTLP entrante.
Por ejemplo, si envías un OTLP resourceLog como el siguiente a la
API de Telemetry, cada entrada de registro resultante contiene un campo resource
(para el recurso supervisado) y un campo otel, como se muestra en las otras pestañas:
resourceLog
{
"resourceLogs": [
{
"resource": {
"attributes": [
{
"key": "gcp.project_id",
"value": { "stringValue": "PROJECT_ID" }
},
{
"key": "gcp.resource_type",
"value": { "stringValue": "global" }
}
]
},
"scopeLogs": [
{
"scope": {
"name": "my.library",
"version": "1.0.0",
"attributes": [
{
"key": "my.scope.attribute",
"value": { "stringValue": "some scope attribute" }
}
]
},
"logRecords": [ ... ]
}
]
}
]
}
resource
{
...
"resource": {
"labels": {
"project_id": "PROJECT_ID"
},
"type": "global"
},
...
}
otel
{
...
"otel": {
"resource": {
"attributes": {
"gcp.project_id": "PROJECT_ID",
"gcp.resource_type": "global"
}
},
"scope": {
"attributes": {
"my.scope.attribute": "some scope attribute"
},
"name": "my.library",
"version": "1.0.0"
}
},
...
}
Cloud Logging no tiene forma de vincular otros recursos a una entrada de registro, por lo que toda la información sobre los recursos, los alcances y las entidades de OTLP se debe copiar en cada entrada de registro.
Esta duplicación conserva la mayor cantidad posible de información de la solicitud original en la entrada de registro resultante. Sin embargo, la duplicación también significa que el campo otel repite la información de recursos que también se usa en el campo de recursos supervisados (resource) de la entrada de registro. Tanto el campo resource de la entrada de registro
como la información de recursos duplicada en el campo otel son
facturables.
Cuando incluyes una gran cantidad de registros en la solicitud de OTLP, la información de OTLP se debe copiar en cada entrada de registro resultante, en los campos resource y otel. Cuando incluyes una gran cantidad de logRecords de OTLP en una solicitud, la cantidad de campos resource facturables en tus entradas de registro aumenta en proporción a la cantidad de logRecords de OTLP por resource por solicitud.
Para minimizar la información adicional almacenada, te recomendamos que envíes un elemento logRecord por solicitud.
Límites y cuotas
Para obtener información sobre los límites y las cuotas asociados con el uso de la API de Telemetry para el registro, consulta Límites y cuotas para la transferencia de registros.
Las cuotas y los límites de Cloud Logging también se aplican cuando se usa la API de Telemetry para la transferencia de registros.