Carica log OpenTelemetry

Se si desidera includere i log delle applicazioni o dell'infrastruttura con strumenti che utilizzano OpenTelemetry in Oracle Log Analytics, utilizzare l'API UploadOtlpLogs per caricarli.

L'API attualmente supporta i log OpenTelemetry (OTLP) in formato JSON. I log OTEL caricati utilizzando questa API nel formato specificato vengono elaborati utilizzando l'origine log OpenTelemetry Log definita da Oracle, per impostazione predefinita. Per ulteriori informazioni sui log OTLP in formato JSON, vedere Esempi.

Requisiti indispensabili

Assicurarsi di aver completato i prerequisiti essenziali riportati di seguito prima di caricare i log OTEL.

Argomenti:

Consenti agli utenti di caricare i log OpenTelemetry

Aggiungere una qualsiasi delle istruzioni dei criteri IAM riportate di seguito in base alle proprie esigenze.

  • L'istruzione dei criteri IAM riportata di seguito consente di fornire l'autorizzazione al gruppo di utenti specificato per il caricamento dei log OTEL.

    allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment>
  • L'istruzione dei criteri IAM riportata di seguito consente di fornire l'autorizzazione a livello di singolo tipo di risorsa loganalytics-log-group per l'esecuzione del caricamento.

    allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment>
  • L'istruzione del criterio IAM seguente consente di fornire l'autorizzazione a livello di risorse di aggregazione Oracle Log Analytics per l'esecuzione del caricamento.

    allow group <group_name> to use loganalytics-resources-family in tenancy/compartment

group_name in tutte le istruzioni dei criteri sopra riportate fa riferimento al gruppo di utenti a cui devono essere assegnate le autorizzazioni necessarie.

API per il caricamento dei log OpenTelemetry

Per informazioni sull'utilizzo dell'API REST e sulle richieste di firma, vedere API REST e Credenziali di sicurezza.

Per la documentazione relativa alle API, vedere Log Analytics API- UploadOtlpLogs.

Di seguito è riportato un comando CLI di esempio per caricare i log OTEL.

oci log-analytics upload upload-otlp-logs --file <Log_File_Path> --opc-meta-loggrpid <Log_Group_OCID> --namespace-name <Service_Namespace>

Nel comando precedente:

  • Log_File_Path: il percorso del file di registro.
  • Service_Namespace: lo spazio di nomi della tenancy su cui devono essere caricati i log. Per i passi da eseguire per ottenere il valore, vedere Visualizza dettagli servizio Log Analytics.
  • Log_Group_OCID: l'OCID del gruppo di log che fornisce il controllo dell'accesso per i log.

Gestione degli attributi OTEL in Log Analytics

Gli attributi possono essere impostati su tre livelli: risorsa, ambito, singolo record di log. Gli attributi impostati vengono memorizzati per ogni record di log rispetto al campo Attributi di Log Analytics. Ogni attributo può essere estratto anche in un campo Log Analytics diverso utilizzando l'attributo personalizzato oci_la_attribute_mapping.

Argomenti:

Scenario 1: formato di log OTLP predefinito e relativa estrazione

Si consideri il seguente esempio di log in formato OTLP:

{
    "resourceLogs": [
        {
            "resource": {
                "attributes": [
                    {
                        "key": "deployment.environment",
                        "value": {
                            "stringValue": "development"
                        }
                    },
                    {
                        "key": "service.name",
                        "value": {
                            "stringValue": "SampleLogApp"
                        }
                    },
                    {
                        "key": "service.version",
                        "value": {
                            "stringValue": "0.0.2"
                        }
                    }
                ]
            },
            "scopeLogs": [
                {
                    "scope": {
                        "name": "sample-scope-info",
                        "version": "1.0.0"
                    },
                    "logRecords": [
                        {
                            "timeUnixNano": "1758112881118549000",
                            "severityNumber": 10,
                            "severityText": "INFO",
                            "body": {
                                "stringValue": "Processed request successfully"
                            },
                            "attributes": [
                                {
                                    "key": "event_type",
                                    "value": {
                                        "stringValue": "event-info"
                                    }
                                },
                                {
                                    "key": "os",
                                    "value": {
                                        "stringValue": "linux"
                                    }
                                },
                                {
                                    "key": "custom_attribute",
                                    "value": {
                                        "stringValue": "some_value"
                                    }
                                },
                                {
                                    "key": "dropped",
                                    "value": {
                                        "stringValue": "value"
                                    }
                                },
                                {
                                    "key": "otel.dropped_attributes_count",
                                    "value": {
                                        "intValue": "5"
                                    }
                                },
                                {
                                    "key": "id",
                                    "value": {
                                        "stringValue": "123"
                                    }
                                }
                            ],
                            "traceId": "0102030405060708090a0b0c0d0e0f10",
                            "spanId": "0102030405060708"
                        }
                    ]
                }
            ]
        }
    ]
}

Gli attributi dell'esempio precedente vengono estratti nel campo Attributi di Oracle Log Analytics come indicato di seguito.

{
  "service.version":"0.0.2",
  "os":"linux",
  "dropped":"value",
  "id":"123",
  "custom_attribute":"some_value",
  "otel.dropped_attributes_count":"5"
}

Scenario 2: mapping personalizzato di attributi mediante attributo speciale oci_la_attribute_mapping

Ad esempio, per mappare i seguenti attributi ai campi di Oracle Log Analytics:

  • service.name nel campo Applicazione
  • deployment.environment nel campo Ambiente
  • event_type al campo Tipo di evento.

oci_la_attribute_mapping deve essere definito come segue:

[{"attributeName":"service.name","laFieldName":"Application"},{"attributeName":"deployment.environment","laFieldName":"Environment"},{"attributeName":"event_type","laFieldName":"Event Type"}]

Di seguito è riportato un esempio della mappatura personalizzata sopra incorporata nel log OTEL.

{
    "resourceLogs": [
        {
            "resource": {
                "attributes": [
                    {
                        "key": "deployment.environment",
                        "value": {
                            "stringValue": "development"
                        }
                    },
                    {
                        "key": "service.name",
                        "value": {
                            "stringValue": "SampleLogApp"
                        }
                    },
                    {
                        "key": "service.version",
                        "value": {
                            "stringValue": "0.0.2"
                        }
                    },
                    {
                        "key": "oci_la_attribute_mapping",
                        "value": {
                            "stringValue": "[{\"attributeName\":\"service.name\",\"laFieldName\":\"Application\"},{\"attributeName\":\"deployment.environment\",\"laFieldName\":\"Environment\"},{\"attributeName\":\"event_type\",\"laFieldName\":\"Event Type\"}]"
                        }
                    }
                ]
            },
            "scopeLogs": [
                {
                    "scope": {
                        "name": "sample-scope-info",
                        "version": "1.0.0"
                    },
                    "logRecords": [
                        {
                            "timeUnixNano": "1758112881118549000",
                            "severityNumber": 10,
                            "severityText": "INFO",
                            "body": {
                                "stringValue": "Processed request successfully"
                            },
                            "attributes": [
                                {
                                    "key": "event_type",
                                    "value": {
                                        "stringValue": "event-info"
                                    }
                                },
                                {
                                    "key": "os",
                                    "value": {
                                        "stringValue": "linux"
                                    }
                                },
                                {
                                    "key": "custom_attribute",
                                    "value": {
                                        "stringValue": "value"
                                    }
                                },
                                {
                                    "key": "dropped",
                                    "value": {
                                        "stringValue": "value"
                                    }
                                },
                                {
                                    "key": "otel.dropped_attributes_count",
                                    "value": {
                                        "intValue": "5"
                                    }
                                },
                                {
                                    "key": "id",
                                    "value": {
                                        "stringValue": "123"
                                    }
                                }
                            ],
                            "traceId": "0102030405060708090a0b0c0d0e0f10",
                            "spanId": "0102030405060708"
                        }
                    ]
                }
            ]
        }
    ]
}

Scenario 3: gestione mapping attributi complessi

Attributi array (multivalore):

Per un attributo con un valore di array (elenco), assicurarsi che il campo Oracle Log Analytics mappato supporti tipi di dati con più valori, ad esempio:

{"key": "teams", "value": {"arrayValue": {"values": [{"stringValue": "Alpha"}, {"stringValue": "Beta"}]}}}

Attributi mappa (valore chiave nidificato):

Per un attributo mappa (oggetto), specificare la chiave figlio da mappare al campo Oracle Log Analytics.

Attributo lista di esempio:

{
    "key": "system",
    "value": {
        "kvlistValue": {
            "values": [
                {
                    "key": "version",
                    "value": {
                        "stringValue": "1.0"
                    }
                },
                {
                    "key": "build",
                    "value": {
                        "stringValue": "2.0"
                    }
                },
                {
                    "key": "env",
                    "value": {
                        "stringValue": "test"
                    }
                }
            ]
        }
    }
}

Mapping di esempio in oci_la_attribute_mapping per l'attributo della lista precedente:

[{"attributeName":"system","childAttributeName":"env","laFieldName":"Environment"}]