SigNoz Laravel Setup: OpenTelemetry, Queue Context, and a Managed APM Alternative
Use this SigNoz Laravel guide to wire OpenTelemetry, keep queue context intact, and compare that setup with a managed Laravel APM path.

If you are searching for signoz laravel, you usually want three answers fast: how to get Laravel traces into SigNoz, what still needs attention around queue jobs and downstream calls, and whether a managed Laravel APM would be simpler for a small team. The short version is that SigNoz can work for Laravel today, but the current path is OpenTelemetry-first and leans on a community Laravel package rather than a first-party SigNoz Laravel SDK.
This guide walks through the current SigNoz Laravel setup, the Laravel-specific checks that matter in production, and where a managed alternative like Tracekit changes the workflow. It uses the current SigNoz PHP OpenTelemetry guide, the current iqtool/laravel-signoz Packagist package, Laravel's official docs for queues and context, the OpenTelemetry PHP propagation guide, and Tracekit's current Laravel docs, OpenTelemetry PHP + Laravel guide, dynamic logs docs, and SigNoz comparison page as source material.
What the current SigNoz Laravel path actually looks like
SigNoz's official PHP guide says its OpenTelemetry flow works with Laravel, and the setup starts with OpenTelemetry environment variables rather than a Laravel-specific first-party package. The guide uses variables such as:
export OTEL_PHP_AUTOLOAD_ENABLED=true
export OTEL_SERVICE_NAME="checkout-web"
export OTEL_RESOURCE_ATTRIBUTES="service.version=2026.07.29"
export OTEL_TRACES_EXPORTER="otlp"
export OTEL_METRICS_EXPORTER="none"
export OTEL_LOGS_EXPORTER="none"
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
export OTEL_EXPORTER_OTLP_ENDPOINT="https://ingest.<region>.signoz.cloud:443"
export OTEL_EXPORTER_OTLP_HEADERS="signoz-ingestion-key=<your-ingestion-key>"
export OTEL_PROPAGATORS="baggage,tracecontext"
For Laravel-specific wiring, the public package that shows up today is iqtool/laravel-signoz. Its README currently describes this flow:
composer require iqtool/laravel-signoz
php artisan vendor:publish --tag=laravel-signoz-config
Then configure Laravel to export OTLP data:
OTEL_SERVICE_NAME=checkout-web
OTEL_EXPORTER_TYPE=otlp
OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.<region>.signoz.cloud:443
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_INSTRUMENTATION_DB_ENABLED=true
That means the practical SigNoz Laravel answer in July 2026 is:
| Layer | What you rely on |
|---|---|
| Trace backend | SigNoz Cloud or self-hosted SigNoz |
| Telemetry standard | OpenTelemetry OTLP |
| Laravel package path | Community package plus OpenTelemetry Laravel auto-instrumentation |
| Release marker | service.version in resource attributes |
| Context propagation | W3C Trace Context headers and instrumentation libraries |
That is workable, but it is different from "install one first-party Laravel APM package and you are done."
The Laravel-specific checks that matter in production
A Laravel tracing setup is never just "did spans appear?"
The current Laravel production problems usually show up in framework boundaries:
| Boundary | What to verify | Why it matters |
|---|---|---|
| HTTP request entry | Incoming requests create spans before the interesting application work starts | Otherwise auth failures, middleware rejects, or early exits disappear |
| Database work | Slow Eloquent or query builder operations show up with enough context to act on them | Route-level latency often hides query shape problems |
| Outbound HTTP | Client requests carry context forward automatically where instrumented | You need the downstream hop in the same request story |
| Queue jobs | Jobs stay linked to the request that dispatched them | This is where production traces often break |
| Release metadata | service.version changes with each deploy | Otherwise regression triage is guesswork |
Laravel's own docs are explicit that context can cross the HTTP request and queued-job boundary, and OpenTelemetry's PHP docs are explicit that propagation is what carries trace identity across process and network boundaries. That is the key thing to test after the "hello world" setup works.
For a Laravel team, the most important operational questions are:
- Does a queued job still point back to the request or user action that created it?
- Do outbound HTTP calls carry W3C trace context automatically on the libraries you actually use?
- Can you tell whether a slowdown lives in the controller, the database, the queue worker, or the downstream API?
- Does a new deploy show up as a meaningful
service.versionchange?
If you cannot answer those with evidence, the installation is not complete yet.
Where the SigNoz Laravel setup gets heavier
The complexity is not that SigNoz is impossible with Laravel. The complexity is that you own more assembly:
- You configure OpenTelemetry correctly for PHP and your deployment target.
- You decide how Laravel-specific auto-instrumentation is wired.
- You verify queue propagation and worker behavior in your own application.
- You decide how to handle logs, traces, and metrics together.
That can be the right trade if you want SigNoz specifically, want open-source control, or already run an OpenTelemetry-first stack across multiple services.
It is a less attractive trade if your real problem is "our Laravel incident workflow is still too slow." In that case, the painful part is usually not getting spans into a backend. The painful part is reaching the missing runtime state after the trace already told you where to look.
Where Tracekit changes the Laravel workflow
Tracekit's current Laravel package is first-party and public in the current docs:
composer require tracekit/laravel-apm
Its current Laravel docs say the package automatically traces:
- HTTP requests
- database queries
- outgoing HTTP calls via Laravel's HTTP facade
- queue jobs
- exceptions
The current Laravel docs also expose dynamic logs for Laravel through tracekit_snapshot() and the TRACEKIT_CODE_MONITORING_ENABLED settings. That matters because Tracekit's value is not "more telemetry forever." The current product direction is trace context plus on-demand capture points that let you inspect runtime state without redeploying.
That makes the Laravel decision more concrete:
| If your priority is... | Better fit |
|---|---|
| OpenTelemetry-native backend you can self-host or run in SigNoz Cloud | SigNoz |
| First-party Laravel package path with less assembly | Tracekit |
| Keeping permanent logs, traces, and metrics in one OpenTelemetry-native backend | SigNoz |
| Jumping from a suspicious trace to bounded runtime-state capture | Tracekit |
| Open-source control over the backend | SigNoz |
| Release-aware debugging with dynamic logs and Laravel-specific docs in one product path | Tracekit |
Tracekit also keeps one distinction clear that many Laravel teams need to hear: keep normal application logs in Laravel's logger, and use dynamic logs only when you need bounded capture points for runtime state. That avoids turning every unknown into another permanent log line and another redeploy.
A practical decision rule for small Laravel teams
Choose the SigNoz Laravel path when:
- you already standardize on OpenTelemetry everywhere
- you want SigNoz specifically for traces, metrics, and logs
- your team is comfortable validating context propagation across queues and workers
- you prefer open-source or self-hosted control over a managed workflow
Choose a managed Laravel APM path like Tracekit when:
- you want a first-party Laravel package instead of a community bridge
- you care more about incident response speed than backend assembly
- you want queue jobs, release-aware triage, alerts, and dynamic logs in one workflow
- you need to inspect runtime state on a failing code path without shipping another deploy
If you want the deeper Tracekit Laravel path, use the Laravel integration guide, the OpenTelemetry PHP + Laravel setup guide, and the Laravel APM production guide together. If you are evaluating tools more broadly, the Tracekit vs SigNoz comparison is the fastest feature and workflow overview.
The real question behind signoz laravel
Most teams searching signoz laravel are not asking whether spans can exist. They are asking whether the full Laravel request story survives production reality: middleware, DB work, outbound calls, queue handoffs, deploys, and the runtime state that logs forgot to capture.
SigNoz can absolutely be part of that answer, and the current OpenTelemetry path is valid. But if you want the shortest path from "the trace is suspicious" to "here is the runtime state that proves the bug," a managed Laravel APM with dynamic logs changes the workflow more than another generic trace backend does.
Related Posts
Laravel Production Debugging: Beyond Logs and Error Tracking
Debug Laravel in production beyond dd() and Log::info(). Use Telescope, dynamic logs, distributed tracing, and performance profiling.

OpenTelemetry PHP Setup: Complete Laravel Guide
Set up OpenTelemetry in Laravel step by step. Install the PHP SDK, configure TraceKit as your backend, add custom spans, and verify trace exports.

Laravel APM with OpenTelemetry: Production Guide for 2026
Set up Laravel APM with OpenTelemetry, traces, queue visibility, and dynamic logs so you can debug production issues without guessing.