deleu/sensor

Profiling PHP on AWS Lambda using X-Ray

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 2

Forks: 0

Open Issues: 0

Type:project

dev-master 2019-07-22 21:25 UTC

This package is auto-updated.

Last update: 2024-04-23 08:29:45 UTC


README

NOT PRODUCTION READY.

R-Xray

Observability for AWS Lambda powered by X-Ray

Usage on Laravel

On your Service Provider, define an XRayClient instance.

$this->app->bind(XRayClient::class, function () {
    return new \Aws\XRay\XRayClient([
        'version' => '2016-04-12',
        'region' => 'eu-west-1',
        'credentials' => [
            'key' => 'your-key',
            'secret' => 'your-secret',
        ]
    ]);
});

Then extend the class you would like to Tap and attach a sensor into it.

$this->app->extend(LoginController::class, function (LoginController $service) {
    $sensor = $this->app->make(\Deleu\Sensor\Sensor::class);

    $tap = new \Deleu\Sensor\Tap($service, $sensor);

    return $tap->listen(['showLoginForm']);
});

Limitations

It is not possible to tap a final class. This is a limitation on Ocramius/ProxyManager.

Ideals

  • Provide an easy profiling tool to help diagnose slow Lambda function execution.
  • Hook into the code from outside so that no code change is required inside your core classes.
  • This project is not meant to replace a complete profiling tool, but rather simply help get confirmation on educated guesses on what could be slow on your Lambda Function

Help Wanted

I've been spoiled by the amazing tools that Laravel provides for too long. I don't have any knowledge around Symfony container or how to offer a flexible configuration without using illumiate/config or static attributes. If you like the idea and would like to help me bring this to other communities other than Laravel, I would be very happy.