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