Fazer Upload de Logs OpenTelemetry
Se você quiser ingerir logs de seus aplicativos ou infraestrutura instrumentados usando OpenTelemetry no Oracle Log Analytics, use a API UploadOtlpLogs para fazer upload deles.
No momento, a API suporta os Logs OpenTelemetry (OTLP) no formato JSON. Os logs do OTEL submetidos a upload usando essa API no formato especificado são processados usando a origem de log OpenTelemetry Logs definida pela Oracle, por padrão. Para obter mais informações sobre os logs do OTLP no formato JSON, consulte Exemplos.
Pré-requisitos
Certifique-se de ter concluído os seguintes pré-requisitos essenciais antes de fazer upload dos logs do OTEL:
- Identifique ou crie um grupo de usuários para o qual você possa fornecer as permissões necessárias para realizar o upload. Consulte Criar Grupos de Usuários para Implementar o Controle de Acesso.
- Colete o OCID do grupo de logs que fornece controle de acesso para os logs. Consulte Criar Grupos de Logs para Armazenar seus Logs.
- Colete o namespace da tenancy no qual os logs devem ser submetidos a upload. Você pode anotar o valor do namespace na página Detalhes do Serviço do Log Analytics. Consulte Exibir Detalhes do Serviço Log Analytics.
Tópicos:
Permitir que usuários façam upload de logs OpenTelemetry
Adicione qualquer uma das seguintes instruções de política do IAM com base em seu requisito:
-
A seguinte instrução de política do serviço IAM é para fornecer permissão ao grupo de usuários especificado para fazer upload dos logs do OTEL:
allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment> -
A seguinte instrução de política do serviço IAM é para fornecer permissão no nível do tipo de recurso individual
loganalytics-log-grouppara executar o upload:allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment> -
A seguinte instrução de política do IAM é para fornecer permissão no nível de recursos agregados do Oracle Log Analytics para executar o upload:
allow group <group_name> to use loganalytics-resources-family in tenancy/compartment
group_name em todas as instruções de política acima refere-se ao grupo de usuários que deve receber as permissões necessárias.
API para Upload de Logs OpenTelemetry
Para obter informações sobre como usar a API REST e assinar solicitações, consulte APIs REST e Credenciais de Segurança.
Para obter a documentação da API, consulte Log Analytics API- UploadOtlpLogs.
Veja um exemplo de comando da CLI para fazer upload dos logs do OTEL:
oci log-analytics upload upload-otlp-logs --file <Log_File_Path> --opc-meta-loggrpid <Log_Group_OCID> --namespace-name <Service_Namespace>No comando anterior:
Log_File_Path: O caminho do arquivo de log.Service_Namespace: O namespace da tenancy no qual os logs devem ser submetidos a upload. Para obter as etapas para obter o valor, consulte Exibir Detalhes do Log Analytics Service.Log_Group_OCID: O OCID do grupo de logs que fornece controle de acesso para os logs.
Tratando Atributos OTEL no Log Analytics
Os atributos podem ser definidos em três níveis - recurso, escopo, registro de log individual. Os atributos definidos são armazenados para cada Registro de Log no campo Atributos do Log Analytics. Cada atributo também pode ser extraído em um campo diferente do Log Analytics usando o atributo personalizado oci_la_attribute_mapping.
Tópicos:
- Cenário 1: Formato de Log OTLP Padrão e Sua Extração
- Cenário 2: Mapeamento Personalizado de Atributos Usando o Atributo Especial oci_la_attribute_mapping
- Cenário 3: Tratando o Mapeamento de Atributos Complexos
Cenário 1: Formato de Log OTLP Padrão e Sua Extração
Considere o seguinte exemplo de log no 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"
}
]
}
]
}
]
}Os atributos do exemplo acima são extraídos para o campo Atributos no Oracle Log Analytics da seguinte forma:
{
"service.version":"0.0.2",
"os":"linux",
"dropped":"value",
"id":"123",
"custom_attribute":"some_value",
"otel.dropped_attributes_count":"5"
}Cenário 2: Mapeamento Personalizado de Atributos Usando o Atributo Especial oci_la_attribute_mapping
Por exemplo, para mapear os seguintes atributos para campos do Oracle Log Analytics:
- service.name para o campo Aplicativo
- deployment.environment para o campo Ambiente
- event_type para o campo Tipo de Evento.
oci_la_attribute_mapping deve ser definido da seguinte forma:
[{"attributeName":"service.name","laFieldName":"Application"},{"attributeName":"deployment.environment","laFieldName":"Environment"},{"attributeName":"event_type","laFieldName":"Event Type"}]Veja um exemplo do mapeamento personalizado acima incorporado no log do 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"
}
]
}
]
}
]
}Cenário 3: Tratando o Mapeamento de Atributos Complexos
Atributos de Array (Vários valores):
Para um atributo com um valor de array (lista), certifique-se de que o campo mapeado do Oracle Log Analytics suporte tipos de dados com vários valores, por exemplo:
{"key": "teams", "value": {"arrayValue": {"values": [{"stringValue": "Alpha"}, {"stringValue": "Beta"}]}}}Mapear Atributos (Valor-Chave Aninhado):
Para um atributo map (object), especifique a chave filha para mapeá-la para o campo Oracle Log Analytics.
Exemplo de atributo de lista:
{
"key": "system",
"value": {
"kvlistValue": {
"values": [
{
"key": "version",
"value": {
"stringValue": "1.0"
}
},
{
"key": "build",
"value": {
"stringValue": "2.0"
}
},
{
"key": "env",
"value": {
"stringValue": "test"
}
}
]
}
}
}Exemplo de mapeamento no oci_la_attribute_mapping para o atributo da lista acima:
[{"attributeName":"system","childAttributeName":"env","laFieldName":"Environment"}]