OpenTelemetry-Logs hochladen

Wenn Sie Logs Ihrer Anwendungen oder Infrastruktur aufnehmen möchten, die mit OpenTelemetry in Oracle Log Analytics instrumentiert wurden, laden Sie sie mit der UploadOtlpLogs-API hoch.

Die API unterstützt derzeit OpenTelemetry-Logs (OTLP) im JSON-Format. Die OTEL-Logs, die mit dieser API im angegebenen Format hochgeladen wurden, werden standardmäßig mit der von Oracle definierten OpenTelemetry-Logquelle verarbeitet. Weitere Informationen zu den OTLP-Logs im JSON-Format finden Sie unter Beispiele.

Voraussetzungen

Stellen Sie sicher, dass Sie die folgenden wichtigen Voraussetzungen erfüllt haben, bevor Sie die OTEL-Logs hochladen:

Themen:

Upload von OpenTelemetry-Logs durch Benutzer zulassen

Fügen Sie je nach Anforderung eine der folgenden IAM-Policy-Anweisungen hinzu:

  • Mit der folgenden IAM-Policy-Anweisung können Sie der angegebenen Benutzergruppe Berechtigungen zum Hochladen der OTEL-Logs erteilen:

    allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment>
  • Mit der folgenden IAM-Policy-Anweisung können Sie Berechtigungen auf der Ebene des individuellen Ressourcentyps loganalytics-log-group für die Ausführung des Uploads erteilen:

    allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment>
  • Mit der folgenden IAM-Policy-Anweisung können Sie Berechtigungen auf der aggregierten Oracle Log Analytics-Ressourcenebene für die Ausführung des Uploads erteilen:

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

group_name in allen oben genannten Policy-Anweisungen bezieht sich auf die Benutzergruppe, der die erforderlichen Berechtigungen erteilt werden müssen.

API zum Hochladen von OpenTelemetry-Logs

Informationen zur Verwendung der REST-API und zu Signieranforderungen finden Sie unter REST-APIs und Sicherheitszugangsdaten.

API-Dokumentation finden Sie unter Log Analytics-API - UploadOtlpLogs.

Im Folgenden finden Sie einen CLI-Beispielbefehl zum Hochladen von OTEL-Logs:

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

Im obigen Befehl gilt Folgendes:

  • Log_File_Path: Der Pfad der Logdatei.
  • Service_Namespace: Der Namespace des Mandanten, für den die Logs hochgeladen werden müssen. Die Schritte zum Abrufen des Wertes finden Sie unter Log Analytics-Servicedetails anzeigen.
  • Log_Group_OCID: Die OCID der Loggruppe, die Zugriffskontrolle für die Logs bietet.

OTEL-Attribute in Log Analytics behandeln

Attribute können auf drei Ebenen festgelegt werden: Ressource, Geltungsbereich, einzelner Logdatensatz. Die Setattribute werden für jeden Logdatensatz im Feld Attribute von Log Analytics gespeichert. Jedes Attribut kann auch mit dem benutzerdefinierten Attribut oci_la_attribute_mapping in ein anderes Log Analytics-Feld extrahiert werden.

Themen:

Szenario 1: Standard-OTLP-Logformat und zugehörige Extraktion

Betrachten Sie das folgende Beispiellog im OTLP-Format:

{
    "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"
                        }
                    ]
                }
            ]
        }
    ]
}

Die Attribute aus dem obigen Beispiel werden wie folgt in das Feld Attribute in Oracle Log Analytics extrahiert:

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

Szenario 2: Benutzerdefinierte Zuordnung von Attributen mit speziellem Attribut oci_la_attribute_mapping

Beispiel: So ordnen Sie die folgenden Attribute Oracle Log Analytics-Feldern zu:

  • service.name zum Feld Anwendung
  • deployment.environment in das Feld Umgebung
  • event_type zu dem Feld Ereignistyp.

oci_la_attribute_mapping muss wie folgt definiert werden:

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

Im Folgenden finden Sie ein Beispiel für die obige benutzerdefinierte Zuordnung, die in das OTEL-Log integriert ist:

{
    "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"
                        }
                    ]
                }
            ]
        }
    ]
}

Szenario 3: Zuordnung komplexer Attribute bearbeiten

Arrayattribute (Mehrwert):

Stellen Sie bei einem Attribut mit einem Array-(Listen-)Wert sicher, dass das zugeordnete Oracle Log Analytics-Feld mehrwertige Datentypen unterstützt. Beispiel:

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

Attribute zuordnen (verschachtelter Schlüsselwert):

Geben Sie für ein Map-(Objekt-)Attribut den untergeordneten Schlüssel an, um ihn dem Oracle Log Analytics-Feld zuzuordnen.

Beispiel für ein Listenattribut:

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

Beispielmapping in oci_la_attribute_mapping für das obige Listenattribut:

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