Download the PHP package iseldore/laravel-observability without Composer

On this page you can find all versions of the php package iseldore/laravel-observability. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-observability

iseldore/laravel-observability

Package Laravel d'observabilité pour OpenObserve : logs structurés envoyés en queue asynchrone (fail-silent) + routes health standardisées (liveness pour l'ALB, deep pour le monitoring). Compatible Laravel 8 → 13 et Monolog 2 & 3.

Installation

Configuration .env

Logs → OpenObserve

Ajouter le channel openobserve dans config/logging.php et le placer en tête du stack par défaut, avec un fallback (les logs continuent même si OpenObserve est down) :

Les logs sont bufferisés par requête puis envoyés via un job en queue. Si OpenObserve est injoignable, l'envoi échoue silencieusement — l'application n'est jamais impactée.

Chaque log porte un champ request_id (repris de l'en-tête X-Request-Id ou X-Amzn-Trace-Id, sinon un UUID v4 généré) pour corréler tous les logs d'une même requête. Les clés de context / extra sont aplaties en colonnes préfixées (context_<clé>, extra_<clé>) ; tout sous-tableau ou objet est sérialisé en une seule colonne JSON pour garder un schéma OpenObserve stable.

ℹ️ Le format de request_id varie selon la source du header : X-Request-Id est repris tel quel (souvent un UUID applicatif), X-Amzn-Trace-Id (posé par l'ALB) est conservé brut sous sa forme Root=1-<...>-<...>;Parent=...;Sampled=... plutôt que d'en extraire uniquement Root=. Ce choix est volontaire : la valeur brute reste directement grep-able dans AWS X-Ray/CloudWatch pour croiser les traces ALB. Ce n'est pas un bug — un support qui corrèle par request_id doit juste s'attendre à deux formats possibles selon que l'appelant fournissait X-Request-Id ou passait par un ALB avec X-Ray activé.

Health

⚠️ À faire manuellement dans chaque app : exempter health du mode maintenance, sinon artisan down rend /health indisponible et l'ALB tue les tasks. Ajouter 'health' à $except de app/Http/Middleware/PreventRequestsDuringMaintenance.php.

Listeners automatiques

Chaque listener est activable individuellement via .env. Tous sont fail-silent et n'impactent jamais l'application.

Variable .env Type de log Données envoyées
REQUEST_LOG=true http_request method, path, status, duration_ms, memory_peak_kb, response_size
OUTBOUND_HTTP_LOG=true http_outbound method, host, path, status, duration_ms
SLOW_QUERY_LOG=true slow_query SQL, duration_ms, connection (seuil configurable)
JOB_LOG=true job_processed / job_failed / job_timed_out job_class, queue, attempts, exception
AUTH_LOG=true auth_login / auth_logout / auth_failed user_id, email, guard
SCHEDULER_LOG=true scheduled_task_finished / scheduled_task_failed task, expression, duration_s, exit_code
EXCEPTION_LOG=true exception exception_class, file, line, trace (5 frames)
CACHE_LOG=true cache_stats hits, misses, hit_ratio (agrégé par requête)

Performance

L'envoi vers OpenObserve est toujours déporté en queue (SendLogsToOpenObserve, fail-silent) : le cycle requête n'est jamais bloqué par le réseau. Le package suppose donc une queue asynchrone (redis, sqs, database) — avec QUEUE_CONNECTION=sync (dev local), l'envoi redevient synchrone et bloquant.

Coûts à connaître :

Slow queries

Heartbeat

La commande observability:heartbeat appelle /health/deep en interne, mesure la latence de chaque composant (DB, cache, queue), collecte la taille des queues (compatible Horizon), et pousse le résultat dans OpenObserve.

Le scheduling est automatique via le ServiceProvider — il suffit que schedule:run tourne en cron.

Le payload health_check contient : status, duration_ms, check_db, check_cache, check_queue, queue_sizes.

Marqueur de déploiement

Envoie un log message=deploy avec le commit SHA, le tag, le deployer (détectés automatiquement via git si non fournis). À intégrer dans le pipeline CI/CD pour corréler les incidents avec les déploiements.

Commande de test

Génère des payloads réalistes pour tous les types de logs : logs, slow_query, http_request, jobs, auth, http_outbound, health_check, deploy, scheduled_task, exception, cache_stats.


All versions of laravel-observability with dependencies

PHP Build Version
Package Version
Requires php Version >=7.3
monolog/monolog Version ^2 || ^3
illuminate/support Version ^8 || ^9 || ^10 || ^11 || ^12 || ^13
illuminate/queue Version ^8 || ^9 || ^10 || ^11 || ^12 || ^13
illuminate/http Version ^8 || ^9 || ^10 || ^11 || ^12 || ^13
guzzlehttp/guzzle Version ^7.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package iseldore/laravel-observability contains the following files

Loading the files please wait ...