Questo documento introduce l'utilizzo dell'API Telemetry (OTLP), telemetry.googleapis.com, per l'importazione di log in formato OTLP in Cloud Logging, dove vengono archiviati come voci di log.
Per un esempio, consulta
Scrivere log in formato OTLP nell'API Telemetry.
Puoi anche inviare log all'API Telemetry da applicazioni che utilizzano SDK o utilizzando un collettore OpenTelemetry.
Per informazioni sull'API Telemetry per log, metriche e tracce, consulta il riferimento API Telemetry (OTLP).
Supporto del protocollo
L'endpoint OTLP supporta tutti i protocolli OTLP, inclusi
http/protobuf, http/json e grpc. Quando esporti da un
OpenTelemetry Collector, puoi utilizzare uno qualsiasi dei protocolli. Tuttavia, a causa della
mancanza di supporto per l'aggiornamento dinamico dei token nella maggior parte degli esportatori SDK,
se esegui l'esportazione direttamente dagli SDK, ti consigliamo di utilizzare solo
l'esportatore gRPC OTLP, non gli esportatori HTTP,
Fatturazione
Potresti notare una modifica ai valori di archiviazione e fatturazione di Cloud Logging quando utilizzi l'API Telemetry per l'importazione dei log. Una richiesta di log in formato OTLP in JSON ha la seguente struttura generale:
"resourceLogs": [
{
"resource": {
"attributes": [...]
},
"scopeLogs": [
{
"scope": { ...}
"logRecords": [...]
}
]
}
]
Ogni elemento di ogni array logRecords diventa una singola voce di log di Cloud Logging. Le modifiche più significative all'archiviazione e alla fatturazione per il tuo progetto Google Cloud
si verificano quando sono vere entrambe le seguenti condizioni:
Il campo
resourcecontiene un numero elevato di attributi obbligatori per chiavi e valori. Questi attributi della risorsa vengono utilizzati per determinare la risorsa monitorata nelLogEntryrisultante.La risorsa monitorata è costituita da un tipo di risorsa monitorata di Cloud Logging e dai valori delle etichette associate. Alcuni tipi di risorse monitorate hanno pochissime etichette, mentre altri tipi di risorse ne hanno molte. Per ulteriori informazioni sugli attributi necessari per l'importazione dei log in formato OTLP, consulta Mappatura degli attributi OTLP al tipo di risorsa.
Il campo
scopeLogscontiene un numero elevato di elementi negli arraylogRecords.
Per supportare l'importazione di log in formato OTLP, la struttura
LogEntry di Cloud Logging contiene un campo aggiuntivo,
otel. I modelli di dati OTLP e Cloud Logging non corrispondono perfettamente, quindi il campo otel contiene una copia delle risorse, dell'ambito e delle entità OTLP della richiesta OTLP in entrata.
Ad esempio, se invii un OTLP resourceLog come il seguente all'API Telemetry, ogni voce di log risultante contiene un campo resource (per la risorsa monitorata) e un campo otel, come mostrato nelle altre schede:
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 non ha modo di collegare altre risorse a una voce di log, quindi tutte le informazioni su risorse, ambiti ed entità OTLP devono essere copiate in ogni voce di log.
Questa duplicazione conserva il maggior numero possibile di informazioni dalla richiesta originale nella voce di log risultante. Tuttavia, la duplicazione significa anche che il campo
otel ripete le informazioni sulle risorse utilizzate anche nel campo monitored-resource
(resource) della voce di log. Il campo resource della voce di log
è addebitabile, ma le informazioni sulla risorsa duplicate nel campo otel
non lo sono.
Quando includi un numero elevato di record di log nella richiesta OTLP,
le informazioni OTLP devono essere copiate in ogni voce di log risultante,
nei campi resource e otel. Anche se lo spazio di archiviazione
per le copie del campo otel non è addebitabile, lo è per le
copie aggiuntive del campo resource. Quando includi un numero elevato
di logRecords OTLP in una richiesta, il numero di campi
resource addebitabili nelle voci di log aumenta in proporzione al
numero di logRecords OTLP per resource per richiesta.
Per ridurre al minimo le informazioni aggiuntive memorizzate, ti consigliamo di inviare
un elemento logRecord per richiesta.
Limiti e quote
Per informazioni sui limiti e sulle quote associati all'utilizzo dell'API Telemetry per la registrazione, vedi Limiti e quote per l'importazione dei log.
Si applicano anche le quote e i limiti di Cloud Logging quando utilizzi l'API Telemetry per l'importazione dei log.