Blog Post

Apps on Azure Blog
3 MIN READ

Use Newrelic monitor Linux PHP App Service

Hanli_Ren's avatar
Hanli_Ren
Icon for Microsoft rankMicrosoft
Nov 18, 2021

When running your PHP application in Azure Linux App Service, you may encounter availability or performance related issues.
PHP New Relic agent is one of the APM tools that can help to provide a better understanding of what may be causing these issues.

This article shows a demonstration of how to use New Relic agent to monitor your PHP application running in Linux App Service.

 

Prerequisites

  • A New Relic account.
  • Azure App Service for Linux with built-in PHP docker image.

 

Setup and Enable PHP New Relic agent

 

Create Newrelic API keys

We can get the Newrelic API keys by navigating directly to https://one.newrelic.com/launcher/api-keys-ui.api-keys-launcher
Create "Ingest-License" key:

Copy the new create API key, save it in your local notepad. We will use this key later.

 

Install the PHP Newrelic Agent in the App Service

Go to https://one.newrelic.com/, login your New Relic, then click "Add more data"

Select PHP in "App monitoring"

Go "Begin Installation" -> "PHP standard installation"

 

Provide your application name and select "apt".

Newrelic will provide you the installation commands

 

Let's put all the commands into a bash script file.

 

#!/bin/bash

echo 'deb http://apt.newrelic.com/debian/ newrelic non-free' | tee /etc/apt/sources.list.d/newrelic.list
wget -O- https://download.newrelic.com/548C16BF.gpg | apt-key add -
apt-get update
apt-get -y install newrelic-php5
NR_INSTALL_SILENT=1 newrelic-install install

sed -i -e "s/REPLACE_WITH_REAL_KEY/<your Newrelic API key>/" \
  -e "s/newrelic.appname[[:space:]]=[[:space:]].*/newrelic.appname=\"<your application name>\"/" \
  -e '$anewrelic.distributed_tracing_enabled=true' \
  $(php -r "echo(PHP_CONFIG_FILE_SCAN_DIR);")/newrelic.ini

echo '>>>check /usr/local/etc/php/conf.d/newrelic.ini'
grep newrelic.license /usr/local/etc/php/conf.d/newrelic.ini
grep newrelic.appname /usr/local/etc/php/conf.d/newrelic.ini

 

1) In line 9, replace <your Newrelic API key> with your Newrelic API key.

     For example:

     sed -i -e "s/REPLACE_WITH_REAL_KEY/9c6fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNRAL/" \

2) In line 10, replace <your application name> with your Azure App Service name.

    For example:

    -e "s/newrelic.appname[[:space:]]=[[:space:]].*/newrelic.appname=\"myphpwebapp\"/" \

3) To confirm Newrelic being successfully installed, I added Line 14-16 to check newrelic.ini being configured as expected.

 

 

 

 

In your Azure App Service WEBSSH, create /home/setupNewrelic.sh with the above contents.

Go to https://<your-webapp-name>.scm.azurewebsites.net/webssh/host

 

vi /home/setupNewrelic.sh

 

Past all the script contents into it, then use ":wq" to save this file.

 

 

Go to your App Service Configuration portal to set "Startup Command", point it to your /home/setupNewrelic.sh

 

Enable your "App Service logs"

In your /home/LogFiles/xxxx_xx_xx_xxxxxxxx_default_docker.log file, you will see the Newrelic being installed during the boot up startup.

 

 

Monitor your PHP Application Performance in Newrelic

Go to https://one.newrelic.com/, click "Explorer" tab, in the "APM", we should see your java app showed up in the list. The Name should match your application name defined in your setupNewrelic.sh.

 

Monitor the Application performance Summary.

 

Check Errors and exceptions throwed by the PHP application

 

Check Service map and dependencies

 

Check Transactions, analysis most time consuming requests

 

Check Database performance

 

 

 

 

 

Updated Nov 18, 2021
Version 1.0
No CommentsBe the first to comment