Konfigurácia
Balík funguje bez akejkoľvek konfigurácie. Publikovaný config/metrics.php v plnom znení:
use RoundlyConsulting\Metrics\Types\Trend\QueryExpressions\Mysql;
use RoundlyConsulting\Metrics\Types\Trend\QueryExpressions\Postgres;
use RoundlyConsulting\Metrics\Types\Trend\QueryExpressions\Sqlite;
return [
'timezone' => env('METRICS_TIMEZONE'),
'default_range' => 'ALL',
'default_unit' => 'DAY',
'precision' => 0,
'cache' => [
'enabled' => env('METRICS_CACHE_ENABLED', false),
'store' => env('METRICS_CACHE_STORE'),
'ttl' => env('METRICS_CACHE_TTL', 300),
'prefix' => 'metrics',
],
'partition' => [
'other_label' => 'Other',
],
'trend_drivers' => [
'mysql' => Mysql::class,
'mariadb' => Mysql::class,
'pgsql' => Postgres::class,
'sqlite' => Sqlite::class,
],
];Všetky kľúče
| Kľúč | Predvolené | Env | Účel |
|---|---|---|---|
timezone | null | METRICS_TIMEZONE | Časové pásmo reportingu — vyhodnocujú sa v ňom obdobia a označujú intervaly trendov; null alebo prázdna hodnota (nenastavené) = pásmo aplikácie. Pre jednu metriku ho prepíše timezone(). Inak reťazec. |
default_range | ALL | — | Hodnota Period (ALL, TODAY, 30, MTD, …), ktorú dostane každá metrika pred setup(); neznáma hodnota vyhodí výnimku. |
default_unit | DAY | — | Hodnota Unit (MINUTE … YEAR, presne s týmito veľkými písmenami) pre trendové metriky pred setup(); neznáma hodnota vyhodí výnimku. |
precision | 0 | — | Predvolená presnosť zaokrúhľovania všetkých hodnôt — celé číslo (akceptujú sa aj číselné reťazce). |
cache.enabled | false | METRICS_CACHE_ENABLED | Hlavný vypínač cachovania výsledkov: true/false, 1/0, on/off alebo yes/no; čokoľvek iné vyhodí výnimku. |
cache.store | null | METRICS_CACHE_STORE | Názov cache store; null alebo prázdna hodnota (nenastavené) = predvolený store, inak reťazec. |
cache.ttl | 300 | METRICS_CACHE_TTL | Počet sekúnd, počas ktorých sa výsledok drží v cache — celé číslo od 1 do 31536000; akceptujú sa aj číselné reťazce z .env. |
cache.prefix | metrics | — | Prefix generovaných cache kľúčov — reťazec; prázdna hodnota sa považuje za nenastavenú, takže platí metrics. |
partition.other_label | Other | — | Preložiteľný popis zvyškovej skupiny, keď členenie obmedzíte cez limit() — reťazec; prázdna hodnota sa považuje za nenastavenú, takže platí Other. |
trend_drivers | mysql, mariadb, pgsql, sqlite | — | Mapuje databázový driver na QueryExpression, ktorý skladá SQL pre zoskupovanie trendov v čase; každá položka musí pomenovať triedu QueryExpression. |
Každý kľúč sa číta prísne: ak je nastavený, no nepoužiteľný, vyhodí RoundlyConsulting\Metrics\Exceptions\InvalidConfigurationException s jeho názvom; kľúč, ktorý nie je nastavený — chýbajúci, null alebo prázdny (KEY= v .env) —, dostane predvolenú hodnotu. default_range musí byť hodnota Period (ALL, TODAY, 30, …) a default_unit hodnota Unit (MINUTE … YEAR, presne s týmito veľkými písmenami); precision musí byť celé číslo (akceptujú sa aj číselné reťazce); timezone, cache.store, cache.prefix a partition.other_label musia byť reťazce; každá položka trend_drivers musí pomenovať triedu QueryExpression. Preklep sa nikdy potichu neignoruje.
Predvolené hodnoty pre každú metriku
default_range, default_unit a precision sa načítajú v konštruktore metriky ešte pred spustením setup() — čokoľvek nastavíte v setup() alebo fluent volaním, ich prepíše:
// config/metrics.php
'default_range' => 'MTD', // every metric defaults to month-to-date
'default_unit' => 'WEEK', // trends bucket weekly unless told otherwise
'precision' => 2, // values round to 2 decimalsProstredie (env)
Časové pásmo reportingu a prepínače cache sú riadené cez env:
METRICS_TIMEZONE=Europe/Bratislava
METRICS_CACHE_ENABLED=true
METRICS_CACHE_STORE=redisPrejavte 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.