Cargar logs de OpenTelemetry
Si desea ingerir logs de sus aplicaciones o infraestructura instrumentada mediante OpenTelemetry en Oracle Log Analytics, utilice la API UploadOtlpLogs para cargarlos.
La API soporta actualmente logs OpenTelemetry (OTLP) en formato JSON. Los logs de OTEL cargados mediante esta API en el formato especificado se procesan mediante el origen de log OpenTelemetry logs definido por Oracle, por defecto. Para obtener más información sobre los logs de OTLP en formato JSON, consulte Ejemplos.
Requisitos
Asegúrese de haber completado los siguientes requisitos previos esenciales antes de cargar los logs de OTEL:
- Identifique o cree un grupo de usuarios para el que pueda proporcionar los permisos necesarios para realizar la carga. Consulte Creación de grupos de usuarios para implantar el control del acceso.
- Recopile el OCID del grupo de logs, que proporciona control de acceso para los logs. Consulte Creación de grupos de logs para almacenar los logs.
- Recopile el espacio de nombres del arrendamiento en el que se deben cargar los logs. Puede anotar el valor del espacio de nombres desde la página Detalles de servicio de Log Analytics. Consulte Visualización de detalles del servicio Log Analytics.
Temas:
Permitir a los usuarios cargar logs de OpenTelemetry
Agregue cualquiera de las siguientes sentencias de política de IAM según sus requisitos:
-
La siguiente sentencia de política de IAM sirve para proporcionar permiso al grupo de usuarios especificado para cargar los logs de OTEL:
allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment> -
La siguiente sentencia de política de IAM sirve para proporcionar permiso en el nivel del tipo de recurso individual
loganalytics-log-grouppara realizar la carga:allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment> -
La siguiente sentencia de política de IAM sirve para proporcionar permiso en el nivel de recursos agregados de Oracle Log Analytics para realizar la carga:
allow group <group_name> to use loganalytics-resources-family in tenancy/compartment
group_name en todas las sentencias de política anteriores hace referencia al grupo de usuarios al que se deben otorgar los permisos necesarios.
API para cargar logs de OpenTelemetry
Para obtener información sobre el uso de la API de REST y las solicitudes de firma, consulte API de REST y Credenciales de seguridad.
Para obtener documentación sobre la API, consulte API de Log Analytics: UploadOtlpLogs.
A continuación, se muestra un ejemplo de comando de la CLI para cargar logs de OTEL:
oci log-analytics upload upload-otlp-logs --file <Log_File_Path> --opc-meta-loggrpid <Log_Group_OCID> --namespace-name <Service_Namespace>En el comando anterior:
Log_File_Path: ruta de acceso del archivo log.Service_Namespace: espacio de nombres del arrendamiento en el que se deben cargar los logs. Para conocer los pasos para obtener el valor, consulte Visualización de detalles de servicio de Log Analytics.Log_Group_OCID: OCID del grupo de logs que proporciona control de acceso para los logs.
Manejo de atributos de OTEL en Log Analytics
Los atributos se pueden definir en tres niveles: recurso, ámbito y registro de log individual. Los atributos de juego se almacenan para cada registro de log en el campo Atributos de Log Analytics. Cada atributo también se puede extraer en un campo de Log Analytics diferente mediante el atributo personalizado oci_la_attribute_mapping.
Temas:
- Escenario 1: Formato de log de OTLP por defecto y su extracción
- Escenario 2: Asignación personalizada de atributos mediante el atributo especial oci_la_attribute_mapping
- Escenario 3: Manejo de la asignación de atributos complejos
Escenario 1: Formato de log de OTLP por defecto y su extracción
Considere el log del ejemplo siguiente en 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"
}
]
}
]
}
]
}Los atributos del ejemplo anterior se extraen en el campo Atributos de Oracle Log Analytics de la siguiente manera:
{
"service.version":"0.0.2",
"os":"linux",
"dropped":"value",
"id":"123",
"custom_attribute":"some_value",
"otel.dropped_attributes_count":"5"
}Escenario 2: Asignación personalizada de atributos mediante el atributo especial oci_la_attribute_mapping
Por ejemplo, para asignar los siguientes atributos a los campos de Oracle Log Analytics:
- service.name en el campo Aplicación
- deployment.environment en el campo Entorno
- event_type en el campo Tipo de evento.
oci_la_attribute_mapping se debe definir como sigue:
[{"attributeName":"service.name","laFieldName":"Application"},{"attributeName":"deployment.environment","laFieldName":"Environment"},{"attributeName":"event_type","laFieldName":"Event Type"}]A continuación, se muestra un ejemplo de la asignación personalizada anterior incorporada en el log de 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"
}
]
}
]
}
]
}Escenario 3: Manejo de la asignación de atributos complejos
Atributos de matriz (varios valores):
Para un atributo con un valor de matriz (lista), asegúrese de que el campo de Oracle Log Analytics asignado soporta tipos de datos de varios valores, por ejemplo:
{"key": "teams", "value": {"arrayValue": {"values": [{"stringValue": "Alpha"}, {"stringValue": "Beta"}]}}}Asignar atributos (clave-valor anidado):
Para un atributo de asignación (objeto), especifique la clave secundaria que desea asignar al campo de Oracle Log Analytics.
Atributo de lista de ejemplo:
{
"key": "system",
"value": {
"kvlistValue": {
"values": [
{
"key": "version",
"value": {
"stringValue": "1.0"
}
},
{
"key": "build",
"value": {
"stringValue": "2.0"
}
},
{
"key": "env",
"value": {
"stringValue": "test"
}
}
]
}
}
}Ejemplo de asignación en oci_la_attribute_mapping para el atributo de lista anterior:
[{"attributeName":"system","childAttributeName":"env","laFieldName":"Environment"}]