Ce guide vient compléter la documentation sur la configuration de l’APM en C++ . Les instructions qui y sont détaillées vous permettent de configurer une application simple en C++ avec l’APM sur votre VM, afin de diagnostiquer vos éventuels problèmes.
Commencez par lancer une nouvelle box Vagrant ubuntu/xenial64
et y exécuter la commande ssh
:
vagrant init ubuntu/xenial64
vagrant up
vagrant ssh
Installez ensuite l’Agent avec les instructions de l’IU .
Installez g++
et cmake
:
sudo apt-get update
sudo apt-get -y install g++ cmake
Copy
Exécutez ces deux lignes de code conjointement afin d’obtenir la dernière version de C++ :
get_latest_release () {
wget - qO - "https://api.github.com/repos/$1/releases/latest" |
grep ' "tag_name" : ' |
sed - E ' s / . * "([^" ] + ) ".*/ \1 /';
}
DD_OPENTRACING_CPP_VERSION = "$(get_latest_release DataDog/dd-opentracing-cpp)"
Si vous obtenez un message de GitHub indiquant que votre taux est limité, patientez quelques minutes avant de relancer la commande. Une fois le processus terminé, vérifiez votre version C++ pour vous assurer que la mise à jour a bien été installée.
echo $DD_OPENTRACING_CPP_VERSION
Copy
Téléchargez et installez ensuite la bibliothèque dd-opentracing-cpp
:
wget https://github.com/DataDog/dd-opentracing-cpp/archive/${ DD_OPENTRACING_CPP_VERSION } .tar.gz -O dd-opentracing-cpp.tar.gz
Copy
Après avoir téléchargé le fichier tar
, créez un nouveau répertoire et un fichier .build
pour la bibliothèque :
mkdir -p dd-opentracing-cpp/.build
Copy
Dézippez-le :
tar zxvf dd-opentracing-cpp.tar.gz -C ./dd-opentracing-cpp/ --strip-components= 1
La liste du contenu de votre bibliothèque s’affiche alors dans votre console :
dd-opentracing-cpp-1.0.1/test/integration/nginx/nginx.conf
dd-opentracing-cpp-1.0.1/test/integration/nginx/nginx_integration_test.sh
Copy
Accédez ensuite à votre répertoire .build
:
cd dd-opentracing-cpp/.build
Copy
Enfin, installez les dépendances :
sudo ../scripts/install_dependencies.sh
cmake ..
make
sudo make install
Créez un fichier tracer_example.cpp
et ajoutez-y ce qui suit :
#include <datadog/opentracing.h>
#include <iostream>
#include <string>
int main ( int argc , char * argv []) {
datadog :: opentracing :: TracerOptions tracer_options { "localhost" , 8126 , "compiled-in example" };
auto tracer = datadog :: opentracing :: makeTracer ( tracer_options );
// Créer quelques spans.
{
auto span_a = tracer -> StartSpan ( "A" );
span_a -> SetTag ( "tag" , 123 );
auto span_b = tracer -> StartSpan ( "B" , { opentracing :: ChildOf ( & span_a -> context ())});
span_b -> SetTag ( "tag" , "value" );
}
tracer -> Close ();
return 0 ;
}
Ce code crée un traceur qui génère deux spans (une span parent span_a
et une span enfant span_b
) et leur applique des tags.
Liez ensuite libdd_opentracing
et libopentracing
:
g++ -std= c++14 -o tracer_example tracer_example.cpp -ldd_opentracing -lopentracing
Copy
Enfin, lancez l’application :
LD_LIBRARY_PATH = /usr/local/lib/ ./tracer_example
Copy
Maintenant que votre application a été créée, vous pouvez commencer à envoyer des traces pour tester l’Agent de trace.
Commencez par suivre le log de l’Agent de traces :
tail -f /var/log/datadog/trace-agent.log
Copy
Ouvrez ensuite un nouvel onglet et lancez l’exemple quelques fois :
LD_LIBRARY_PATH = /usr/local/lib/ ./tracer_example
Copy
Les données suivantes apparaissent alors sur l’onglet Trace Agent :
2019-08-09 20:02:26 UTC | TRACE | INFO | (pkg/trace/info/stats.go:108 in LogStats) | [lang:cpp lang_version:201402 tracer_version:v1.0.1] -> traces received: 1, traces filtered: 0, traces amount: 363 bytes, events extracted: 0, events sampled: 0
Le service s’affiche ensuite sur la page de vos services APM dans Datadog.
Cliquez sur le service pour afficher vos traces.
Documentation, liens et articles supplémentaires utiles: