Télécharger les journaux OpenTelemetry
Si vous voulez inclure les journaux de vos applications ou de votre infrastructure instrumentés à l'aide de OpenTelemetry dans Oracle Log Analytics, utilisez l'API UploadOtlpLogs
pour les télécharger.
L'API prend actuellement en charge les journaux OpenTelemetry (OTLP) au format JSON. Par défaut, les journaux OTEL téléchargés à l'aide de cette API dans le format indiqué sont traités à l'aide de la source de journal OpenTelemetry Logs définie par Oracle. Pour plus d'informations sur les journaux OTLP au format JSON, reportez-vous à Exemples.
Conditions préalables
Assurez-vous d'avoir satisfait aux prérequis essentiels suivants avant de télécharger les journaux OTEL :
- Identifiez ou créez un groupe d'utilisateurs auquel vous pouvez fournir les autorisations requises pour effectuer le chargement. Reportez-vous à Création de groupes d'utilisateurs pour implémenter le contrôle d'accès.
- Collectez l'OCID du groupe de journaux qui fournit un contrôle d'accès pour les journaux. Reportez-vous à Création de groupes de journaux pour stocker vos journaux.
- Collectez l'espace de noms de la location vers laquelle les journaux doivent être téléchargés. Vous pouvez noter la valeur de l'espace de noms à partir de la page Détails du service de Log Analytics. Reportez-vous à Visualisation des détails du service Log Analytics.
Rubriques :
Autoriser les utilisateurs à télécharger des journaux OpenTelemetry
Ajoutez l'une des instructions de stratégie IAM suivantes en fonction de vos besoins :
-
L'instruction de stratégie IAM suivante permet de fournir des droits d'accès au groupe d'utilisateurs indiqué pour le téléchargement des journaux OTEL :
allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment>
-
L'instruction de stratégie IAM suivante permet de fournir des droits d'accès au niveau de chaque type de ressource
loganalytics-log-group
pour effectuer le téléchargement :allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment>
-
L'instruction de stratégie IAM suivante permet de fournir des droits d'accès au niveau des ressources agrégées Oracle Log Analytics pour effectuer le téléchargement :
allow group <group_name> to use loganalytics-resources-family in tenancy/compartment
Dans toutes les instructions de stratégie ci-dessus, group_name
fait référence au groupe d'utilisateurs auquel les droits d'accès requis doivent être accordés.
API de téléchargement des journaux OpenTelemetry
Pour plus d'informations sur l'utilisation de l'API REST et la signature des demandes, reportez-vous à API REST et à Informations d'identification de sécurité.
Pour obtenir de la documentation sur l'API, reportez-vous à API Log Analytics - UploadOtlpLogs.
Voici un exemple de commande CLI permettant de télécharger les journaux OTEL :
oci log-analytics upload upload-otlp-logs --file <Log_File_Path> --opc-meta-loggrpid <Log_Group_OCID> --namespace-name <Service_Namespace>
Dans la commande ci-dessus :
Log_File_Path
: chemin du fichier journal.Service_Namespace
: espace de noms de la location vers laquelle les journaux doivent être téléchargés. Pour connaître les étapes permettant d'obtenir la valeur, reportez-vous à Affichage des détails du service Log Analytics.Log_Group_OCID
: OCID du groupe de journaux qui fournit le contrôle d'accès aux journaux.
Gérer les attributs OTEL dans Log Analytics
Les attributs peuvent être définis à trois niveaux : ressource, portée, enregistrement de journal individuel. Les attributs définis sont stockés pour chaque enregistrement de journal par rapport au champ Attributs de Log Analytics. Chaque attribut peut également être extrait dans un champ Log Analytics différent à l'aide de l'attribut personnalisé oci_la_attribute_mapping
.
Rubriques :
- Scénario 1 : Format de journal OTLP par défaut et extraction associée
- Scénario 2 : Mise en correspondance personnalisée d'attributs à l'aide de l'attribut spécial oci_la_attribute_mapping
- Scénario 3 : Gérer le mappage des attributs complexes
Scénario 1 : Format de journal OTLP par défaut et extraction associée
Prenons l'exemple de journal suivant au format 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"
}
]
}
]
}
]
}
Les attributs de l'exemple ci-dessus sont extraits dans le champ Attributs d'Oracle Log Analytics comme suit :
{
"service.version":"0.0.2",
"os":"linux",
"dropped":"value",
"id":"123",
"custom_attribute":"some_value",
"otel.dropped_attributes_count":"5"
}
Scénario 2 : Mise en correspondance personnalisée d'attributs à l'aide de l'attribut spécial oci_la_attribute_mapping
Par exemple, pour mettre en correspondance les attributs suivants avec les champs Oracle Log Analytics :
- service.name dans le champ Application
- deployment.environment dans le champ Environnement
- event_type dans le champ Type d'événement.
oci_la_attribute_mapping
doit être défini comme suit :
[{"attributeName":"service.name","laFieldName":"Application"},{"attributeName":"deployment.environment","laFieldName":"Environment"},{"attributeName":"event_type","laFieldName":"Event Type"}]
Voici un exemple de mappage personnalisé ci-dessus incorporé dans le journal 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"
}
]
}
]
}
]
}
Scénario 3 : Gérer le mappage des attributs complexes
Attributs de tableau (plusieurs valeurs) :
Pour un attribut avec une valeur de tableau (liste), assurez-vous que le champ Oracle Log Analytics mis en correspondance prend en charge les types de données à valeurs multiples, par exemple :
{"key": "teams", "value": {"arrayValue": {"values": [{"stringValue": "Alpha"}, {"stringValue": "Beta"}]}}}
Attributs de correspondance (clé-valeur imbriquée) :
Pour un attribut de mapping (objet), indiquez la clé enfant à mettre en correspondance avec le champ Oracle Log Analytics.
Exemple d'attribut de liste :
{
"key": "system",
"value": {
"kvlistValue": {
"values": [
{
"key": "version",
"value": {
"stringValue": "1.0"
}
},
{
"key": "build",
"value": {
"stringValue": "2.0"
}
},
{
"key": "env",
"value": {
"stringValue": "test"
}
}
]
}
}
}
Exemple de mapping dans oci_la_attribute_mapping
pour l'attribut de liste ci-dessus :
[{"attributeName":"system","childAttributeName":"env","laFieldName":"Environment"}]