Eloquentize is the combinaison of three things:
1 - A small library with a bunch of artisan commands that you will include as a dependency of you projects.
2 - A api used silently by the library, no need to implement it.
3 - A beautiful efficient and customizable dashboard to track metrics from your laravel projects accessible at https://alpha.eloquentize.com
With eloquentize came some concepts, Sources / Lines / Metrics
A source represents a Laravel application identified by its URL and environment.
env('app_url') + env('env')
A line corresponds to:
A source
A periodicity (currently only a complete day)
An eloquent model
An event type (created_at, updated_at, deleted_at)
An operation, by default, count which represents the number of models created during the period, note that it is possible to perform aggregations on the model's properties
An optional โunitโ ( USD / EUR / DEGREE )
An optional โdivisorโ if you store currency as integer
| source | periodicity | label | event type | operation | unit | Divisor | | --- | --- | --- | --- | --- | --- | --- | | app.myproject.com | daily | User | created_at | count | NULL | NULL | | app.myproject.com | daily | Bill | created_at | avg_price | EUR | 100 |
A Metric represents a numeric value for a given period and the corresponding line.
// How the base metric is calculated:
User::whereDate('created_at', $yesterday)->count();
// ==> 32 users were created yesterday
Every day, a cron job is executed on one of the servers you want to monitor, and the count statistics are dumped into Eloquentize as Metrics.
A widget is a collection of metrics linked to lines, which are in turn linked to a source. You can assemble your widgets by choosing the eloquent Models you want to track for a given source. In the above graph, I am only extracting the Report and Patient models to track the evolution of the creations of these two models in my project.