okitsu/zabbix-sender
PHP/Laravel package for sending metrics to Zabbix trapper items using the zabbix_sender protocol. Define host and key values, then push them from your app through a simple API to feed custom monitoring data into Zabbix dashboards, triggers, and alerts. Ideal for app-level telemetry and health checks...
Architecture fit
zabbix_agentd.conf reader). The sender is the only piece with a plausible role in a Laravel app; the config parser is relevant only if we want to auto-discover server addresses from an existing agent installation.ZabbixMetricsService that maps domain events (order placed, job failed, queue depth) onto Zabbix trapper items. It does not replace Laravel's native logging, Telescope, or Pulse — it complements them by pushing business metrics into an existing Zabbix estate.Integration feasibility
composer require, a small service provider, a config file for host/port/timeout. A working spike is days, not weeks.Technical risk
zabbix_agentd.conf format changes across Zabbix major versions (new/renamed parameters) mean the config-parser half is the more fragile component. Scoping it out reduces risk substantially.processed/failed counts; a transport-level success does not mean the data was accepted. Unchecked, this produces metrics that look instrumented but are quietly dropped.Key questions
Stack fit
composer.json PHP constraints and run the test suite (if any) against our target runtime before committing.MetricsEmitter), so the Zabbix dependency is swappable for a log driver or a no-op in local/test environments. This is the key design decision: do not let Zabbix types leak into domain code.ext-sockets or stream functions and outbound TCP 10051. Add to the platform baseline and container image checks.Migration path
app/Monitoring/Zabbix/ with a published config file and env vars (ZABBIX_HOST, ZABBIX_PORT, ZABBIX_TIMEOUT, ZABBIX_ENABLED), (3) introduce a queued EmitZabbixMetrics job that batches items per host, (4) wire domain events to that job.ZABBIX_ENABLED=false by default and a no-op implementation, so environments without a Zabbix server (local, CI) are unaffected.Compatibility
agentconfig parser reads files from disk; in containerized deployments the agent config typically isn't present, so its value proposition drops sharply. Recommend excluding it from the initial scope.Sequencing
processed: 1 / failed: 0, confirm the item shows data in the frontend.zabbix_sender binary is a viable escape hatch if the library proves unreliable, at the cost of process-spawn overhead.Maintenance
Support
failed counts, how to rotate the Zabbix host/port, and how to disable the integration during an incident.Scaling
Failure modes
failed > 0. Silent data loss if the info string is not parsed and logged. This is the most likely real-world failure and the one most often missed.Ramp-up
How can I help you explore Laravel packages today?