NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Metrics for Laravel

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'));   // instance

Načí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ódaVraciaPoznámka
register(string $key, string|Metric|Closure $metric)MetricsManagerDá sa reťaziť.
unregister(string $key)MetricsManagerDá sa reťaziť; pri neznámom kľúči nerobí nič.
get(string $key)MetricVyhodnotí 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)DashboardHromadné 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 kryptomien

Odoslaní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.