@@ -43,6 +43,7 @@ use Utopia\Cache\Adapter\None as NoCache;
4343use Utopia\Database\Adapter\MySQL;
4444use Utopia\Database\Database;
4545use Utopia\Usage\Usage;
46+ use Utopia\Usage\Adapter\Database as DatabaseAdapter;
4647
4748$dbHost = '127.0.0.1';
4849$dbUser = 'root';
@@ -63,7 +64,8 @@ $database = new Database(new MySQL($pdo), $cache);
6364$database->setNamespace('namespace');
6465
6566// Create Usage instance with Database adapter
66- $usage = Usage::withDatabase($database);
67+ $adapter = new DatabaseAdapter($database);
68+ $usage = new Usage($adapter);
6769$usage->setup();
6870```
6971
@@ -77,15 +79,17 @@ The ClickHouse adapter provides high-performance analytics storage for massive s
7779require_once __DIR__ . '/../../vendor/autoload.php';
7880
7981use Utopia\Usage\Usage;
82+ use Utopia\Usage\Adapter\ClickHouse;
8083
8184// Create Usage instance with ClickHouse adapter
82- $usage = Usage::withClickHouse (
85+ $adapter = new ClickHouse (
8386 host: 'clickhouse-server',
8487 username: 'default',
8588 password: '',
8689 port: 8123,
8790 secure: false
8891);
92+ $usage = new Usage($adapter);
8993
9094$usage->setup();
9195```
@@ -104,7 +108,7 @@ use Utopia\Usage\Adapter\Database;
104108$adapter = new Database($database);
105109
106110// Use with Usage
107- $usage = Usage::withAdapter ($adapter);
111+ $usage = new Usage($adapter);
108112$usage->setup();
109113```
110114
@@ -207,7 +211,7 @@ $sum = $usage->sumByPeriod('requests', '1h');
207211** Find with Query Objects**
208212
209213``` php
210- use Utopia\Usage \Query;
214+ use Utopia\Query \Query;
211215
212216$metrics = $usage->find([
213217 Query::equal('metric', ['requests', 'bandwidth']),
@@ -224,10 +228,13 @@ $count = $usage->count([
224228** Purge Old Usage**
225229
226230``` php
231+ use Utopia\Query\Query;
227232use Utopia\Database\DateTime;
228233
229234$datetime = DateTime::addSeconds(new \DateTime(), -86400); // Delete metrics older than 24 hours
230- $usage->purge($datetime);
235+ $usage->purge([
236+ Query::lessThan('time', $datetime),
237+ ]);
231238```
232239
233240## Periods
@@ -266,7 +273,10 @@ The ClickHouse adapter uses the HTTP interface to store metrics in ClickHouse fo
266273
267274** Example** :
268275``` php
269- $usage = Usage::withClickHouse(
276+ use Utopia\Usage\Usage;
277+ use Utopia\Usage\Adapter\ClickHouse;
278+
279+ $adapter = new ClickHouse(
270280 host: 'clickhouse.example.com',
271281 username: 'metrics_user',
272282 password: 'secure_password',
@@ -275,9 +285,9 @@ $usage = Usage::withClickHouse(
275285);
276286
277287// Enable async inserts (server-side batching)
278- $adapter = $usage->getAdapter();
279288$adapter->setAsyncInserts(true, waitForConfirmation: true);
280289
290+ $usage = new Usage($adapter);
281291$usage->setup();
282292```
283293
@@ -294,7 +304,7 @@ Extend the `Utopia\Usage\Adapter` abstract class and implement these methods:
294304- ` getBetweenDates(string $metric, string $startDate, string $endDate, array $queries): array ` - Get metrics in date range
295305- ` countByPeriod(string $metric, string $period, array $queries): int ` - Count metrics
296306- ` sumByPeriod(string $metric, string $period, array $queries): int ` - Sum metric values
297- - ` purge(string $datetime ): bool ` - Delete old metrics
307+ - ` purge(array $queries = [] ): bool ` - Delete old metrics
298308- ` find(array $queries): array ` - Find metrics with query objects
299309- ` count(array $queries): int ` - Count metrics with query objects
300310
0 commit comments