cyberclick-os / elastic-apm-agent-php
Elastic APM agent for PHP
Requires
- php: >=5.4
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-zlib: *
- paragonie/random_compat: >=2.0
Requires (Dev)
- phpunit/phpunit: ^4.8
- squizlabs/php_codesniffer: ^3.5
README
Elastic APM agent for PHP
This is an Agent written in PHP that implements the Intake API v2 scheme to send tracking information to Elastic APM.
Why?
I couldn't find an official APM Agent for PHP.
I have searched for unofficial options but I have not found any with backwards compatibility of PHP version (>= 5.4). I know PHP 5.4 is very old (01 Mar 2012) but today there is still code working even with older versions.
I wanted to make it as easy as possible to develop new services and also to make it possible to help legacy code refactors be easier to accomplish.
I have based myself on the official API reference of version 7.8.1.
Installation
-
Install via composer
composer require zoilomora/elastic-apm-agent-php
Usage
You can implement any Reporter to suit your communication infrastructure (sync, async, redis, amqp, etc...).
<?php class OwnerReporter implements \ZoiloMora\ElasticAPM\Reporter\Reporter { /** * @param array $events * * @return void */ public function report(array $events) { // TODO: Implement report() method. } }
If you are using Kubernetes, it is recommended that you use the official environment variables to map Nodes and Pods.
Examples
Examples of packages that use this Agent
Custom reports
Transaction Wrappers
- PcComponentes/apm-symfony-console
- PcComponentes/apm-symfony-http-kernel
- PcComponentes/apm-symfony-messenger
HTTP Clients
Databases
Others
Documentation used for development
Credits
License
Licensed under the MIT license
Read LICENSE for more information