Register metrík
Metriky dashboardu zaregistrujte pod krátkymi kľúčmi — zvyčajne v boot() service providera — a načítavajte ich podľa názvu. Metrika môže byť class-string (vytvorený cez kontajner), closure vracajúca metriku alebo hotová inštancia:
use App\Models\Order;
use RoundlyConsulting\Metrics\Facades\Metrics;
// in a service provider boot()
Metrics::register('registered_users', RegisteredUsers::class); // class-string
Metrics::register('revenue', MonthlyRevenueGoal::class);
Metrics::register('users_by_plan', fn () => UsersByPlan::make()); // closure
Metrics::register('orders_today', fn () => Metrics::value()->count(Order::query())->range('TODAY'));
Metrics::register('signups_today', RegisteredUsers::make()->range('TODAY')); // instanceNačítanie
Metrics::has('revenue'); // true
Metrics::keys(); // ['registered_users', 'revenue', ...] — without resolving
Metrics::get('revenue'); // a new MonthlyRevenueGoal, tagged with its key
Metrics::get('revenue')->key(); // 'revenue'
Metrics::all(); // ['registered_users' => RegisteredUsers, ...] — all resolved| Metóda | Vracia | Poznámka |
|---|---|---|
register(string $key, string|Metric|Closure $metric) | MetricsManager | Dá sa reťaziť. |
unregister(string $key) | MetricsManager | Dá sa reťaziť; pri neznámom kľúči nerobí nič. |
get(string $key) | Metric | Vyhodnotí novú kópiu metriky a označí ju kľúčom; pri nezaregistrovanom kľúči vyhodí UnknownMetricException. |
has(string $key) | bool | Či je kľúč zaregistrovaný. |
keys() | list<string> | Zaregistrované kľúče bez vyhodnotenia metrík. |
all() | array<string, Metric> | Vyhodnotí všetky zaregistrované metriky. |
dashboard(array $keys) | Dashboard | Hromadné vyhodnotenie — pozri Dashboardy. |
get() metriku označí jej kľúčom — vráti ho key() a nesie ho aj udalosť MetricCalculated. Nezaregistrovaný kľúč vyhodí RoundlyConsulting\Metrics\Exceptions\UnknownMetricException. Každé get() vráti novú metriku — zaregistrovaná inštancia sa skopíruje —, takže range() či timezone() použité na vrátenú metriku nikdy nepresiaknu do ďalšieho volania (ani pri Octane do ďalšieho requestu).
Metriky z controllera
// in a controller
return response()->json(
collect(Metrics::all())->map->toArray()
);
// or a single metric by key, applying the request's period
return response()->json(
Metrics::get($key)->range($request->input('period', 'TODAY'))->toArray()
);Keďže každá metrika implementuje Responsable, controller ju môže vrátiť aj priamo — autorizácia zostáva na vašej aplikácii:
public function show(string $key)
{
return Metrics::get($key)->range(request('period', 'TODAY'));
}Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.