PHP SDK

PHP SDK for JustAnalytics distributed tracing and error tracking.

Installation#

composer require justanalytics/justanalytics-php

Quick Start#

use JustAnalytics\JustAnalytics;

JustAnalytics::init([
    'site_id' => $_ENV['JUSTANALYTICS_SITE_ID'],
    'api_key' => $_ENV['JUSTANALYTICS_API_KEY'],
    'service_name' => 'php-api',
    'environment' => 'production',
]);

Tracing#

$result = JustAnalytics::startSpan('process-order', function ($span) use ($orderId) {
    $span->setAttribute('order.id', $orderId);

    $user = JustAnalytics::startSpan('fetch-user', function () use ($userId) {
        return User::find($userId);
    });

    return ['success' => true, 'user' => $user];
});

Error Tracking#

try {
    riskyOperation();
} catch (\Exception $e) {
    JustAnalytics::captureException($e, [
        'tags' => ['module' => 'payments'],
    ]);
    throw $e;
}

Laravel Integration#

// config/justanalytics.php
return [
    'site_id' => env('JUSTANALYTICS_SITE_ID'),
    'api_key' => env('JUSTANALYTICS_API_KEY'),
    'service_name' => 'laravel-app',
    'environment' => env('APP_ENV'),
];

// Auto-instruments:
// - HTTP requests (middleware)
// - Eloquent queries
// - Queue jobs
// - Cache operations
// - Mail sending
// app/Http/Kernel.php
protected $middleware = [
    \JustAnalytics\Laravel\Middleware::class,
    // ...
];

Symfony Integration#

# config/packages/justanalytics.yaml
justanalytics:
    site_id: '%env(JUSTANALYTICS_SITE_ID)%'
    api_key: '%env(JUSTANALYTICS_API_KEY)%'
    service_name: 'symfony-app'

Logging#

JustAnalytics::logger()->info('Request processed', [
    'path' => '/api/orders',
    'duration' => 245,
]);

Custom Metrics#

JustAnalytics::recordMetric('custom.queue_size', 42, ['queue' => 'emails']);

Requirements#

  • PHP 8.1+
  • Composer
  • ext-curl