mohammed-mojaly/laralyze
Laralyze is a Laravel analysis package that inspects your app’s structure, routes, models, and database to surface useful insights. Use it to audit projects, understand dependencies, and spot optimization opportunities with clear, actionable reports.
Architecture fit Laralyze is a Laravel-native package, which is the right shape for a Laravel codebase: it will register a service provider, hook the framework's event dispatcher (request handled, job processed, query executed, exception reported, cache hit/miss, HTTP client calls), and persist telemetry to a configured store. The two-backend design — SQL (MySQL/Postgres/SQLite) for small deployments and ClickHouse for higher volume — is a sensible on-prem/self-hosted pattern and avoids sending data to a third party. This makes it an attractive fit where data residency, air-gapped environments, or restrictive procurement rules block SaaS APM (Datadog, New Relic, Sentry, Telescope-as-a-service). It is a complement to, not a replacement for, infrastructure-level observability (metrics, traces, logs aggregation); it is application-level introspection that lives inside the Laravel process.
Integration feasibility
Mechanically straightforward: composer require, publish config and migrations, register middleware, run migrations, mount the dashboard route. Effort is measured in hours for a single service, not weeks. The real cost is not installation but decisions: which signals to enable (query logging and HTTP client logging are the expensive ones), sampling rate, retention window, and whether writes go to the application's primary database or a dedicated store. The ClickHouse path materially changes the effort profile — it converts a Composer install into a stateful infrastructure dependency.
Technical risk
Key questions to resolve before adoption
composer.json constraint, and how current is it?Stack fit Strong fit for a conventional Laravel monolith or a small fleet of Laravel services on MySQL/Postgres, especially in regulated or cost-sensitive contexts where per-host SaaS pricing is prohibitive. Weaker fit where the platform already standardizes on OpenTelemetry, or where the runtime is serverless/short-lived (Laravel Vapor) since in-process collectors lose fidelity and add cold-start cost. ClickHouse support is the tell that the package targets volume — which is good, but it means the "cheap" tier is SQL and the "real" tier carries real infrastructure.
Migration path Adopt incrementally, and treat the store choice as a separate gate:
Compatibility and sequencing
Pin the exact version ("x.y.*", not ^), and gate upgrades behind the same staging check. Sequence the work so the observability store and dashboard come up before application instrumentation is enabled — otherwise the first rollout becomes a debugging session on the collector itself. If ClickHouse is chosen, land it as its own infrastructure change with its own review, not as a rider on an application PR.
Rollout guardrails Ship behind a feature flag or config toggle so instrumentation can be disabled per-environment without a deploy. Define a kill switch for the expensive signals (query and HTTP instrumentation) and document it in the runbook before the first production enablement.
Maintenance Ongoing cost is low in code terms — an occasional Composer bump and a config review — but the bus-factor risk is the dominant long-term liability. Mitigate by (a) pinning versions, (b) mirroring the repo internally or vendoring it, (c) documenting the dashboard schema well enough that a fork is viable, and (d) budgeting an explicit "replace or fork" decision point at each Laravel major upgrade. Because it is MIT-licensed, forking is legally unencumbered; the cost is engineering attention, not licensing.
Support Community-only. There is no SLA, no vendor escalation path, and issue response times are unknown and likely best-effort. Supportability therefore rests on our own team's ability to read PHP source. That is acceptable for a dev-productivity tool and unacceptable for anything that becomes a system of record or a paging dependency.
Scaling Three scaling axes to plan for explicitly:
Failure modes
Ramp-up Installation and basic use: under a day for a Laravel-fluent engineer. Meaningful adoption — choosing signals, tuning sampling, setting retention, wiring auth, writing the runbook, and training on-call to actually use the dashboard during an incident — is a two-to-three week effort spread across the first release cycle. ClickHouse adds a separate skill requirement for whoever owns the data platform; if no one on the team has operated it, budget for that or stay on SQL.
Recommendation Adopt on a trial basis for development, staging, and low-criticality production services, with pinned versions, an explicit retention policy, and a documented kill switch. Do not make it the sole source of truth for production incident response, and do not place it on the primary application database of a high-traffic service. The deciding factor between "useful internal tool" and "future migration project" is the answer to the synchronous-vs-async ingestion question — resolve that in the staging spike before committing further.
How can I help you explore Laravel packages today?