To blog |

Announcing Full Support For PHP Applications

August 28, 2019 by Ram Iyengar Filed under: Blog Plumbr Product Updates

The underlying aim of Plumbr is to help make your software perform faster and become more reliable. The first step in this journey is by understanding where and why your digital services are failing or underperforming. In addition, Plumbr allows you to fully comprehend what your users are really experiencing when interacting with your web applications. We aim to provide these benefits irrespective of which technology engineers use to build their applications. 

Today, we’re happy to announce that we can provide end to end monitoring and support for applications built using PHP. Until recently, we were able to provide full-stack monitoring capabilities for Java applications. We’re now able to extend the same level of support for PHP applications as well. We ran a pilot program for 18 weeks where we got tons of feedback from the community. We were able to improve the capability of the monitoring solution in this time frame, and are happy to open it up for public availability now. 

From the desk of Ivo Magi, our CEO and Chief of Product – ”We are glad to make support available for the second major runtime within our APM offering. With added PHP support, our distributed traces are now able to cut across technology boundaries. As a result, the back-end microservices deployed across different runtimes will be all revealed and linked together. This is just one step in our longer roadmap which includes added support for many other back-end runtimes. Python, Ruby, .NET – we have it all on our way towards you. I hope you can put our solution into good use and have better control over availability and performance, thanks to this”.

Here are some specific highlights from the release:

Monitoring Availability 

Plumbr captures all exceptions that occur on your PHP applications and aggregates them to provide important insights into the overall availability of your applications. Complete stack traces along with data about the operating system, browsers, and other environment details are made available to engineers who are troubleshooting issues on production. Every single error event is captured without sampling or decimation. Plumbr also exposes the impact of each error so that you know which ones are affecting your users the most.

PHP die()

Plumbr monitors PHP applications for the ‘die’ exception. These exceptions are essentially pseudo errors. Requests result in 5xx series errors when they encounter the die exception within the application logic. PHP scripts exit with die(“Something not the way it should be”) function calls under certain circumstances. Plumbr interprets these as breakage in user experience and flags them as errors for engineers to investigate.

Monitoring performance

One of the most important signs of application health is response time. Monitoring your PHP applications with Plumbr will provide a complete and detailed breakdown of response times in the application. Baselining performance using the data from Plumbr is very effective and exposes any major degradations. It requires no tuning or calibration to align with actual experience. False-positives are minimal thanks to the various percentiles exposed. In PHP applications, bottlenecks arise predominantly from slow queries to databases. Plumbr highlights these cases and makes engineers aware of the queries slowing the applications down.

Slow queries and Multi-querying

Plumbr helps identify poorly performing queries and classify them as single or multi queries. Often times, single database queries can become slow. At times, a request may trigger more than one query. In this case, single queries may process quickly, but together the queries might result in latency large enough for users to perceive a degraded experience. Plumbr flags these queries as slow ones but indicates them as multiple queries that are slowing things down. This gives engineers who are investigating slow applications a good starting point for troubleshooting. 

Distributed tracing

Plumbr also helps build distributed traces for requests in PHP applications. Traces are assembled with information about nodes, response durations, and outcomes. In addition, Plumbr trace data models have support for root causes. Another interesting facet is that Plumbr traces begin from the browser. Engineers will gain exposure to the interactions that users make with PHP applications. If you have one set of services written in Java, and another in PHP, if a request spans both these services, their information is captured in the same trace. 

Installation notes

Plumbr aims to monitor applications independent of which language they are written in. Plumbr monitoring does not require you to make changes to your applications. You will merely attach an agent to the underlying application framework. In this case, the agent installer will require that you have FPM and/or Apache with PHP modules installed. You will be required to download the installed from Plumbr and unzip it to a convenient location. Running it with sudo will then install the agent. Once installed successfully, you will have to restart your application for monitoring to begin. 

Frameworks supported

Plumbr provides support out of the box for every major PHP framework employed. Official support is available for the following:

Frameworks: Symfony, Laravel, Zend, Codeigniter, Yii2, CakePHP

CMS: WordPress, Drupal, Joomla, Magento

Apps: Magento, Phpbb

We encourage you to avail PHP monitoring on any of your applications using Plumbr as well. For any assistance with this, please write to csm@plumbr.io. Our Customer Success team is more than happy to help you expand Plumbr to monitor your PHP applications.

ADD COMMENT