Skip to content

APM agent for laravel projects to monitor the application with elastic apm tools.

License

Notifications You must be signed in to change notification settings

nivseb/lara-monitor

Repository files navigation

Lara-Monitor

Tests Supported PHP Version Latest Stable Version Total Downloads

Lara-Monitor is apm agent package for application that are build with Laravel Framework. The collected data are send to your Elastic APM Server. That allow you an impressive look to your application via kibana. This package make it easy to connect all needed information from your application in Elastic Kibana.

Feature

This package was developed primarily for container-based environments that use Laravel Octane. But it works also fine in over environments like plain laravel application or hostet plain on servers.

Transactions

As default requests, commands and jobs are supported transactions. That allows you to get logging for all kinds of transaction, that are possible in your application.

Spans

To get a good overview, the booting phase, terminating phase and the time between are send as spans. That allow to get a good overview, at what time what is executed and how long the respective phase is.

Of course tasks like database queries, http request, sync job handling, sync command calls also send as span with further information will send to the Elastic APM Server.

Error-Handling

Lara-Monitor register itself to the exception handler and report all exceptions to the Elastic APM Server. You also can easily capture handled and unhandled exception, that should send to the Elastic APM Server, that allows you to see all errors in Elastic Kibana you want.

Logging

Lara-Monitor comes with a log processor, that add context data to your log entry. If you use Elastic Filebeat to get your log files also to Elastic Kibana, it is easy with this processor to connect the log entries with your transaction and trace data.

External trace context

The W3C trace context is supported for both incoming and outgoing requests. If no trace is given by incoming request, a new strace is startet. On outgoing request, the traceparent header can add via middleware. That allows you to see a request in Elastic Kibana, can therefore be viewed comprehensively, making it easier to find correlations between your applications.

Octane Support

The request handling in application that use Laravel Octane, is a little different to normal laravel request handling. This makes it necessary to collect data for the apm on another way, to get a good look at the performance monitoring.

Only the task worker are not supported. Everything that is done in a task worker will not see in the collected data.

Customizability

All parts are only connected via interfaces, that allows you easily to customize the agent for your requirements. Overwrite the part of the agent, that need to be changed and register your variant. If you think that this also help others, create a pull request and make it possible for everyone to get advantage of it.

Installation

  1. To install PHP Mock Server Connector you can easily use composer.

    composer require nivseb/lara-monitor
  2. Add Nivseb\LaraMonitor\Providers\LaraMonitorStartServiceProvider to your application

  3. Add Nivseb\LaraMonitor\Providers\LaraMonitorEndServiceProvider to your application

  4. Publish and change config or add needed environment variables

The provider should be added manuale to the loaded service provider. This allows you to get the best information from the tracking. The LaraMonitorStartServiceProvider Should be loaded as early as possible and the LaraMonitorEndServiceProvider should be loaded as late as possible. That include as much as possible other event listeners to monitored for the spans.

Configuration

Lara-Monitor comes with an own config, you can publish it with the following command.

php artisan vendor:publish --tag=lara-monitor-config

The most configs are set by default laravel environment variables (e.g. APP_NAME or APP_ENV). For a full documentation see the Configuration.

About

APM agent for laravel projects to monitor the application with elastic apm tools.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Languages