PHP code example of rylxes / laravel-observability
1. Go to this page and download the library: Download rylxes/laravel-observability library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rylxes / laravel-observability example snippets
protected $middleware = [
// ... other middleware
\Rylxes\Observability\Middleware\RequestTracingMiddleware::class,
];
->withMiddleware(function (Middleware $middleware) {
$middleware->append(\Rylxes\Observability\Middleware\RequestTracingMiddleware::class);
})
use Rylxes\Observability\Facades\Observability;
// Get performance analysis
$analysis = Observability::analyze(days: 7);
// Detect slow queries
$slowQueries = Observability::slowQueries()->analyze();
// Detect anomalies
$anomalies = Observability::anomalies()->detectAnomalies('response_time');
// Export Prometheus metrics
$metrics = Observability::exportMetrics();
'tracing' => [
'enabled' => true,
'capture_headers' => true,
'capture_payload' => false, // Be careful with sensitive data
'excluded_routes' => ['telescope.*', 'horizon.*'],
'sample_rate' => 1.0, // 0.0 to 1.0 (1.0 = trace all)
],
'queries' => [
'enabled' => true,
'log_all' => false, // Only log slow queries
'slow_threshold_ms' => 1000,
'detect_duplicates' => true, // N+1 detection
],
'anomaly_detection' => [
'enabled' => true,
'z_score_threshold' => 3.0, // Standard deviations
'min_data_points' => 100,
'baseline_window_days' => 7,
],
'notifications' => [
'slack' => ['enabled' => true, 'webhook_url' => env('...')],
'telegram' => ['enabled' => true, 'bot_token' => env('...')],
'throttle' => [
'enabled' => true,
'window_minutes' => 15,
'max_alerts_per_window' => 1,
],
],
'retention' => [
'traces_days' => 7,
'queries_days' => 7,
'metrics_days' => 30,
'alerts_days' => 30,
],
'dashboard' => [
'enabled' => true,
'route_prefix' => 'admin/observability',
'middleware' => ['web'],
'guards' => ['web', 'sanctum'],
'refresh_interval_seconds' => 30,
],
$result = Observability::anomalies()->detectAnomalies('response_time');
if ($result['status'] === 'success') {
foreach ($result['anomalies'] as $anomaly) {
echo "Anomaly: {$anomaly['metric_name']} - ";
echo "Value: {$anomaly['value']} (Baseline: {$anomaly['baseline']})";
echo "Deviation: {$anomaly['deviation_percent']}%";
}
}
bash
php artisan observability:install
bash
php artisan observability:prune --force
bash
cd ..
composer create-project laravel/laravel observability-sandbox
cd observability-sandbox
composer config repositories.observability '{"type":"path","url":"../Observability Plugin","options":{"symlink":true}}'
composer