Skip to content

zoilomora/elastic-apm-agent-php

Repository files navigation

Elastic APM agent for PHP

Build Status Coverage Status Quality Status PHP Version Latest Version License

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

  1. 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

HTTP Clients

Databases

Others

Documentation used for development

Credits

License

Licensed under the MIT license

Read LICENSE for more information