Envoyer des logs avec une bibliothèque de logs - Rust - gelf_logger et log4rs-gelf
Envoyez les logs de vos applications Rust vers Logs Data Platform avec gelf_logger ou log4rs-gelf.
Objectif
Ce guide explique comment envoyer vos logs vers Logs Data Platform depuis Rust, à l'aide de deux bibliothèques différentes. Utilisez celle que vous préférez.
Rust dispose d'une implémentation de journalisation (log) largement utilisée. OVHcloud a implémenté ce système pour prendre en charge le format GELF :
- gelf_logger : un logger minimaliste.
- log4rs-gelf : basé sur gelf_logger, cette implémentation est compatible avec le framework configurable et complexe log4rs.
Ces loggers vont :
- sérialiser les entrées de log à l'aide de la crate serde_gelf.
- mettre en mémoire tampon le résultat.
- envoyer les logs par lots sur le réseau via TCP/TLS.
- veiller à ce que les champs respectent les conventions de nommage LDP.
Prérequis
Pour suivre ce guide, vous aurez besoin de :
- Rust. Nous recommandons la dernière version stable.
- Un compte Logs Data Platform activé.
- Créer au moins un flux et récupérer son jeton.
- Installer la crate serde avec la fonctionnalité derive.
- Installer la crate log avec la fonctionnalité serde.
En pratique
Première méthode : gelf_logger
Vous pouvez installer la crate gelf_logger en ajoutant la dépendance à votre Cargo.toml :
Autrement, la commande cargo suivante permet de l'installer :
Voici un fichier main.rs complet montrant comment utiliser l'API log et gelf_logger.
N'oubliez pas de remplacer le placeholder <YOUR-LDP-CLUSTER-ADDRESS> par le cluster où réside votre flux. Il n'est pas nécessaire d'indiquer le port GELF. Exemple : « gra3.logs.ovh.com ».
N'oubliez pas de remplacer le placeholder <YOUR-WRITE-TOKEN> par la valeur réelle du jeton d'écriture de votre flux.
Vous pouvez également consulter la documentation de l'API générée.
Seconde méthode : log4rs-gelf
Cette méthode est une alternative à la précédente. Considérez ce qui suit comme un projet Rust distinct. Vous devez être familier avec le framework log4rs.
Installez log4rs et log4rs-gelf dans votre projet Rust.
Voici le fichier Cargo.toml modifié :
Autrement, utilisez les commandes cargo suivantes :
Exemples
À partir d'un fichier de configuration YAML
Copiez le contenu de ce fichier yaml dans un fichier log4rs.yaml. Ce fichier sera récupéré par le programme Rust pour configurer le framework.
N'oubliez pas de remplacer le placeholder <YOUR-LDP-CLUSTER-ADDRESS> par le cluster où réside votre flux. Il n'est pas nécessaire d'indiquer le port GELF. Exemple : « gra3.logs.ovh.com ».
N'oubliez pas de remplacer le placeholder <YOUR-WRITE-TOKEN> par la valeur réelle du jeton d'écriture de votre flux.
Remplacez la valeur X-OVH-TOKEN par la valeur du jeton X-OVH-TOKEN de votre flux, et le hostname par votre cluster.
Utilisez cette configuration dans votre projet :
Vous pouvez également consulter la documentation de l'API générée.
Aller plus loin
- Pour bien démarrer : Démarrage rapide
- Documentation : Guides
- Créer un compte : Essayez !
- Hub communautaire : communauté d'utilisateurs