Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Site Monitor Laravel Package

capell-app/site-monitor

A Laravel package for monitoring the health of your sites. Run uptime and HTTP checks, track response status and performance over time, and surface problems early through the Capell admin panel, so you can catch outages and regressions before your users do.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What changed: v1.1.0 is the first stable release, promoted from v1.1.0-beta.46. The release note itself carries no detail beyond a compare link, so the substantive signal is the version transition rather than any documented feature delta. The 46-beta cadence indicates a long hardening cycle; a stable tag implies the maintainers are now committing to a semver contract for the 1.x line.

Architecture fit: capell-app/site-monitor is a Laravel package in the Capell ecosystem, which points to a conventional package shape: a service provider, publishable config, migrations for persisted check/target records, and a scheduled command or queue job that performs the actual probes. That maps cleanly onto a standard Laravel deployment — scheduler entry plus a queue worker — and does not require a sidecar or separate service. It is a natural fit for a Laravel monolith or a Capell-based CMS install that already has a scheduler and queue running. It is a poorer fit for teams standardized on external synthetic monitoring (UptimeRobot, Pingdom, Checkly), where this package duplicates rather than complements existing tooling.

Integration feasibility: High, with caveats. Install is a single composer require, followed by publishing config and running migrations. The real integration work is not installation but configuration: defining monitor targets, choosing probe intervals, wiring notification channels, and confirming that the host's egress can reach every target. Because this is a fresh capability rather than a replacement, there is no data migration burden — the main risk is running it alongside existing monitoring and creating two sources of truth.

Technical risk:

  • Probe origin. Monitoring that runs from inside the application it monitors will report "down" when the platform is down, which is precisely when you need the signal. Whether the package supports external or distributed probing is the single largest architectural unknown.
  • Beta-to-stable delta. With 46 betas and no readable changelog, we cannot see what was renamed, removed, or changed in behavior between the beta line and 1.1.0. Anyone who piloted a beta must treat this as a potential breaking upgrade.
  • Write volume. Check results accumulate on a schedule proportional to targets × frequency. Without retention/pruning, this becomes a slow-moving database growth problem.
  • Egress and SSRF. Outbound HTTP from application servers introduces firewall, proxy, and URL-validation concerns, especially if non-engineers can register arbitrary targets through an admin UI.
  • Ecosystem coupling. If the package assumes Capell conventions, adopting it in a plain Laravel app may pull in assumptions that are awkward to unwind.

Key questions:

  1. What exactly is monitored — HTTP status, latency, TLS expiry, DNS, content assertions, or all of the above?
  2. Where do probes execute: in-process scheduler, queue worker, or an external runner?
  3. What are the supported Laravel and PHP version ranges, and which database drivers are tested?
  4. Is there configurable retention/pruning for check history, and what are the defaults?
  5. Which alert channels ship (mail, Slack, webhooks, SMS) and is there deduplication or flap suppression?
  6. What broke between beta.46 and 1.1.0? Is there an upgrade guide for beta users?
  7. License, maintainer activity, and test coverage — is this a supported dependency or a best-effort side project?
  8. Does it support multi-tenant or multi-site scoping, and how are probe credentials stored?

Integration Approach

Stack fit: Laravel 9/10/11-era applications on PHP 8.x with MySQL, Postgres, or SQLite, and — critically — a working scheduler and queue. Apps still running sync queues or cron-less hosts should not adopt this until that foundation exists, since silent scheduler failure is the package's most damaging failure mode.

Migration path: Greenfield. There is no legacy data to move; the migration is organizational, not technical. Run the package in parallel with the incumbent monitoring tool for one full incident cycle before retiring anything, and only retire the incumbent once the new tool has independently detected a real outage.

Compatibility: Verify composer constraints against the pinned Laravel version before committing, and check that the service provider does not collide with existing monitoring, health-check, or notification bindings. Confirm the DB driver is on the tested matrix — SQLite in local dev frequently masks index and JSON-column issues that surface in production. If a beta was evaluated previously, treat 1.1.0 as a fresh install in a branch rather than an in-place upgrade, and diff the published config.

Sequencing:

  1. Spike in a branch: install, publish config, run migrations, execute one manual probe against a known-good and a known-bad URL.
  2. Validate alert delivery end-to-end into the real on-call channel, including a deliberately induced failure.
  3. Load-test at realistic target count × frequency to size queue workers and confirm DB write behavior.
  4. Confirm retention/pruning is configured and actually runs.
  5. Soak in staging for two weeks, comparing detections against the incumbent tool.
  6. Roll out to production for a subset of targets, then expand.
  7. Only then decommission redundant checks, and document the new runbook.

Operational Impact

Maintenance: Low ongoing effort if pinned to ^1.1 and updated deliberately. The stable tag reduces the churn risk that a 46-beta history implied, but it does not guarantee maintenance — pin the version, watch the repository's release cadence, and have a fallback plan if the package goes quiet. Budget time for periodic Laravel major-version compatibility checks, which is where small ecosystem packages most often stall.

Support: Assume community-only support unless a commercial arrangement exists through Capell. That means no SLA, and internal ownership must be explicit: one named engineer accountable for the package, its config, and its upgrade path. Without that, monitoring infrastructure quietly rots — which is worse than not having it, because it produces false confidence.

Scaling: Scaling is linear and predictable: targets × frequency = probes per interval, each a queue job plus a database write. Two levers matter — queue worker capacity and retention policy. At a few dozen targets on five-minute intervals this is trivial; at thousands of targets or one-minute intervals it becomes a real queue consumer that competes with application jobs for workers. Isolate it on a dedicated queue from the start to prevent monitoring from starving — or being starved by — business workloads.

Failure modes:

  • Scheduler or queue stops. Monitoring goes silent while appearing healthy. This is the highest-severity failure and needs its own external dead-man's-switch check.
  • Probe-origin blindness. Network or platform failures make the application report everything as down, or nothing as down, depending on where probes run.
  • Queue backlog. Delayed checks produce stale status and delayed alerts; alert latency must be measured, not assumed.
  • False positives from egress. Firewall, proxy, or DNS changes on the app host masquerade as target outages, eroding trust in alerts.
  • Database growth. Unpruned check history degrades the very application being monitored.
  • Alert fatigue. Without deduplication and flap suppression, a flapping target will train the on-call rotation to ignore the channel.

Ramp-up: Modest. A mid-level Laravel developer can install and configure it in under a day. Realistic time-to-production, including alert tuning, load validation, staging soak, and runbook writing, is one to two weeks of part-time effort. The configuration surface is small; the judgment calls — retention, intervals, alert routing, and eventual replacement of the incumbent tool — are where the time actually goes.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel