{"id":20788,"date":"2021-04-08T13:10:11","date_gmt":"2021-04-08T13:10:11","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=20788"},"modified":"2021-10-28T09:21:00","modified_gmt":"2021-10-28T09:21:00","slug":"how-to-install-configure-datadog-apm-with-php-based-application-wordpress-in-linux","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-install-configure-datadog-apm-with-php-based-application-wordpress-in-linux\/","title":{"rendered":"How to install &#038; Configure Datadog APM with PHP based application (WordPress) in linux?"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Prerequisite<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong><a href=\"https:\/\/www.devopsschool.com\/blog\/how-to-configure-xampp-and-wordpress-in-linux\/\" data-type=\"URL\" data-id=\"https:\/\/www.devopsschool.com\/blog\/how-to-configure-xampp-and-wordpress-in-linux\/\">How to Install &amp; configure Xampp and WordPress in Linux?<\/a><\/strong><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a rel=\"noreferrer noopener\" href=\"https:\/\/www.devopsschool.com\/blog\/how-to-install-datadog-agent-in-centos\/\" data-type=\"URL\" data-id=\"https:\/\/www.devopsschool.com\/blog\/how-to-install-datadog-agent-in-centos\/\" target=\"_blank\">Step 1- Install DD Agent and Start it<\/a><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2- Choose your language- Offcourse PHP<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"480\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-1-1024x480.jpg\" alt=\"\" class=\"wp-image-20793\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-1-1024x480.jpg 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-1-300x140.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-1-768x360.jpg 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-1.jpg 1324w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3- Install the PHP client for APM datadog tracing<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Reference:\n- https:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/dd-trace-php\/releases<\/span>\n\n$ cd \/opt\n$ wget https:<span class=\"hljs-comment\">\/\/github.com\/DataDog\/dd-trace-php\/releases\/download\/0.53.0\/datadog-php-tracer-0.53.0-1.x86_64.rpm<\/span>\n$ rpm -ivh datadog-php-tracer<span class=\"hljs-number\">-0.53<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">-1.<\/span>x86_64.rpm<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"988\" height=\"608\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-2.jpg\" alt=\"\" class=\"wp-image-20795\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-2.jpg 988w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-2-300x185.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-2-768x473.jpg 768w\" sizes=\"auto, (max-width: 988px) 100vw, 988px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4 &#8211; Make sure following Spec to avoid an ERROR<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$ vi \/opt\/lampp\/etc\/php.ini\nextension=\/opt\/datadog-php\/extensions\/ddtrace-.so - WRONG\n\n$ more \/opt\/lampp\/logs\/php_error_log\n\n<span class=\"hljs-comment\"># Take latest version of ddtrace using \"ls \/opt\/datadog-php\/extensions\/\"<\/span>\n$ vi \/opt\/lampp\/etc\/php.ini\nextension=\/opt\/datadog-php\/extensions\/ddtrace<span class=\"hljs-number\">-20200930.<\/span>so - RIGHT\n\n$ \/opt\/lampp\/lampp restart<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-3-1024x585.jpg\" alt=\"\" class=\"wp-image-20796\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-3-1024x585.jpg 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-3-300x171.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-3-768x439.jpg 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-3.jpg 1069w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5 &#8211; Validate ddtrace is enabled or not<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">$ <span class=\"hljs-keyword\">export<\/span> PATH=$PATH:<span class=\"hljs-regexp\">\/opt\/<\/span>lampp\/bin\/\n$ php --version\n$ php -m | grep ddtrace\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"908\" height=\"453\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-4.jpg\" alt=\"\" class=\"wp-image-20797\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-4.jpg 908w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-4-300x150.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-4-768x383.jpg 768w\" sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4 &#8211; Modify Apache Configuration to set Datadog APM Meta data for a application<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"934\" height=\"624\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-5.jpg\" alt=\"\" class=\"wp-image-20798\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-5.jpg 934w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-5-300x200.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-5-768x513.jpg 768w\" sizes=\"auto, (max-width: 934px) 100vw, 934px\" \/><\/figure>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">vi \/opt\/lampp\/etc\/httpd.conf\n\nSetEnv DD_SERVICE <span class=\"hljs-string\">'wordpress'<\/span>\nSetEnv DD_ENV <span class=\"hljs-string\">'dev'<\/span>\nSetEnv DD_VERSION <span class=\"hljs-string\">'latest'<\/span>\nSetEnv DD_TRACE_SAMPLE_RATE <span class=\"hljs-string\">'1'<\/span>\nSetEnv DD_TRACE_DEBUG <span class=\"hljs-literal\">true<\/span>\n\n$ \/opt\/lampp\/lampp restart<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"685\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-6-1024x685.jpg\" alt=\"\" class=\"wp-image-20799\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-6-1024x685.jpg 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-6-300x201.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-6-768x514.jpg 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2021\/04\/install-Configure-Datadog-APM-PHP-wordpress-linux-6.jpg 1084w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5 &#8211; Create a load on http:\/\/13.233.196.197\/wordpress\/ using Jmeter<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">$ netstat -tulpn | grep LISTEN\n$ curl http:<span class=\"hljs-comment\">\/\/127.0.0.1:8126<\/span>\n$ datadog-agent config | head -n <span class=\"hljs-number\">35<\/span>\n\nBy <span class=\"hljs-keyword\">default<\/span> the Datadog Agent is enabled <span class=\"hljs-keyword\">in<\/span> your datadog.yaml file under apm_enabled: <span class=\"hljs-literal\">true<\/span> and listens <span class=\"hljs-keyword\">for<\/span> trace traffic at localhost:<span class=\"hljs-number\">8126<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Error &amp; Solution &#8211; 1<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">&#91;root@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-25<\/span><span class=\"hljs-number\">-121<\/span> opt]<span class=\"hljs-comment\"># rpm -ivh datadog-php-tracer-0.53.0-1.x86_64.rpm<\/span>\nPreparing...                          <span class=\"hljs-comment\">################################# &#91;100%]<\/span>\nUpdating \/ installing...\n   <span class=\"hljs-number\">1<\/span>:datadog-php-tracer<span class=\"hljs-number\">-0.53<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">-1<\/span>      <span class=\"hljs-comment\">################################# &#91;100%]<\/span>\n<span class=\"hljs-comment\">### PHP version<\/span>\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n<span class=\"hljs-comment\">### Installing Datadog PHP tracing extension (ddtrace)<\/span>\n<span class=\"hljs-comment\">###<\/span>\n<span class=\"hljs-comment\">### Logging  -i to a file<\/span>\n<span class=\"hljs-comment\">###<\/span>\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n<span class=\"hljs-comment\">###<\/span>\n<span class=\"hljs-comment\">### conf.d folder not found falling back to appending extension config to main \"php.ini\"<\/span>\n\/<span class=\"hljs-keyword\">var<\/span>\/tmp\/rpm-tmp.hSDzSh: line <span class=\"hljs-number\">34<\/span>: -d: command not found\n<span class=\"hljs-comment\">### Failed enabling ddtrace extension<\/span>\n<span class=\"hljs-comment\">###<\/span>\n<span class=\"hljs-comment\">### The extension has been installed but couldn't be enabled<\/span>\n<span class=\"hljs-comment\">### Try adding the extension manually to your PHP - php.ini - configuration file<\/span>\n<span class=\"hljs-comment\">### e.g. by adding following line:<\/span>\n<span class=\"hljs-comment\">###<\/span>\n<span class=\"hljs-comment\">###     extension=\/opt\/datadog-php\/extensions\/ddtrace-.so<\/span>\n<span class=\"hljs-comment\">###<\/span>\n<span class=\"hljs-comment\">### Note that your PHP API version must match the extension's API version<\/span>\n<span class=\"hljs-comment\">### PHP API version can be found using following command<\/span>\n<span class=\"hljs-comment\">###<\/span>\n<span class=\"hljs-comment\">###      -i | grep 'PHP API'<\/span>\n<span class=\"hljs-comment\">###<\/span>\n&#91;root@ip<span class=\"hljs-number\">-172<\/span><span class=\"hljs-number\">-31<\/span><span class=\"hljs-number\">-25<\/span><span class=\"hljs-number\">-121<\/span> opt]<span class=\"hljs-comment\"># php<\/span>\nbash: php: command not found\n\nSOLUTION\n--------------\nrpm -e datadog-php-tracer<span class=\"hljs-number\">-0.53<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">-1.<\/span>x86_64\nrm -rf datadog-php\nexport PATH=$PATH:\/opt\/lampp\/bin\/\nphp --version\n\nextension=\/opt\/datadog-php\/extensions\/ddtrace-.so\n\n===========================================\nDD_TRACE_CLI_ENABLED=<span class=\"hljs-keyword\">true<\/span> DD_SERVICE=<span class=\"hljs-string\">'test'<\/span> DD_ENV=<span class=\"hljs-string\">'dev'<\/span> DD_VERSION=<span class=\"hljs-string\">'1'<\/span> DD_TRACE_SAMPLE_RATE=<span class=\"hljs-string\">'1'<\/span> php -r <span class=\"hljs-string\">'echo \"Hello PHP\";'<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_36432\"><iframe loading=\"lazy\"  id=\"_ytid_13292\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_36432\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Prerequisite How to Install &amp; configure Xampp and WordPress in Linux? Step 1- Install DD Agent and Start it Step 2- Choose your language- Offcourse PHP Step 3- Install the&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-20788","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=20788"}],"version-history":[{"count":6,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20788\/revisions"}],"predecessor-version":[{"id":24456,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/20788\/revisions\/24456"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=20788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=20788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=20788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}