Skip to content

Commit 279e11a

Browse files
committed
update with rollup implementation after fixes
1 parent f814c58 commit 279e11a

10 files changed

Lines changed: 94 additions & 84 deletions

plugins/BotTracking/RecordBuilders/AIAssistantReports.php

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ private function queryAcquiredVisitsByAIAssistant(LogAggregator $logAggregator):
145145
private function populateTableForActionType(array $tables, int $actionType, LogAggregator $logAggregator, array $visits): void
146146
{
147147
$resultSet = $this->queryBotRequests($logAggregator, $actionType);
148-
$actionRows = [];
149148

150149
while ($row = $resultSet->fetch()) {
151150
/**
@@ -154,48 +153,47 @@ private function populateTableForActionType(array $tables, int $actionType, LogA
154153
$label = $row['bot_name'];
155154
$url = $row['url'];
156155

157-
if (is_null($label)) {
156+
if ($label === null) {
157+
// top-level rollup result
158158
continue;
159159
}
160160

161-
if (!is_null($url)) {
162-
$actionRows[] = $row;
161+
if ($url === null) {
162+
// second-level rollup result
163+
$metrics = [
164+
Metrics::COLUMN_REQUESTS => $row['requests'],
165+
Metrics::COLUMN_DOCUMENT_REQUESTS => $actionType === Action::TYPE_DOWNLOAD ? $row['requests'] : 0,
166+
Metrics::COLUMN_PAGE_REQUESTS => $actionType === Action::TYPE_PAGE_URL ? $row['requests'] : 0,
167+
Metrics::COLUMN_ACQUIRED_VISITS => $visits[$label] ?? 0,
168+
];
169+
170+
$tables[Archiver::AI_ASSISTANTS_PAGES_RECORD]->sumRowWithLabel($label, $metrics, [Metrics::COLUMN_ACQUIRED_VISITS => 'max']);
171+
$tables[Archiver::AI_ASSISTANTS_DOCUMENTS_RECORD]->sumRowWithLabel($label, $metrics, [Metrics::COLUMN_ACQUIRED_VISITS => 'max']);
163172
continue;
164173
}
165174

166-
$metrics = [
167-
Metrics::COLUMN_REQUESTS => $row['requests'],
168-
Metrics::COLUMN_DOCUMENT_REQUESTS => $actionType === Action::TYPE_DOWNLOAD ? $row['requests'] : 0,
169-
Metrics::COLUMN_PAGE_REQUESTS => $actionType === Action::TYPE_PAGE_URL ? $row['requests'] : 0,
170-
Metrics::COLUMN_ACQUIRED_VISITS => $visits[$label] ?? 0,
171-
];
172175

173-
$tables[Archiver::AI_ASSISTANTS_PAGES_RECORD]->sumRowWithLabel($label, $metrics, [Metrics::COLUMN_ACQUIRED_VISITS => 'max']);
174-
$tables[Archiver::AI_ASSISTANTS_DOCUMENTS_RECORD]->sumRowWithLabel($label, $metrics, [Metrics::COLUMN_ACQUIRED_VISITS => 'max']);
175-
}
176-
177-
$table = $tables[Archiver::AI_ASSISTANTS_PAGES_RECORD];
176+
$table = $tables[Archiver::AI_ASSISTANTS_PAGES_RECORD];
178177

179-
if ($actionType === Action::TYPE_DOWNLOAD) {
180-
$table = $tables[Archiver::AI_ASSISTANTS_DOCUMENTS_RECORD];
181-
}
178+
if ($actionType === Action::TYPE_DOWNLOAD) {
179+
$table = $tables[Archiver::AI_ASSISTANTS_DOCUMENTS_RECORD];
180+
}
182181

183-
// use while / array_shift combination instead of foreach to save memory
184-
while (is_array($actionRows) && count($actionRows)) {
185-
/**
186-
* @var array{requests: int, bot_name: string, url: string} $row
187-
*/
188-
$row = array_shift($actionRows);
189-
$label = $row['bot_name'];
190-
$url = $row['url'];
182+
$tableRow = $table->getRowFromLabel($label);
191183

192-
if ($label === RankingQuery::LABEL_SUMMARY_ROW) {
184+
if (false === $tableRow) {
185+
// non-rollup row but rollup row is missing
186+
// should not happen, but don't break
193187
continue;
194188
}
195189

196-
$tableRow = $table->getRowFromLabel($label);
197-
198-
if (empty($tableRow)) {
190+
if (
191+
$url === RankingQuery::LABEL_SUMMARY_ROW
192+
&& !$tableRow->isSubtableLoaded()
193+
) {
194+
// skip creating the subtable if:
195+
// - we are using rollups
196+
// - the only row would be "Others"
199197
continue;
200198
}
201199

plugins/BotTracking/tests/Fixtures/BotTraffic.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ private function trackBotRequests(): void
7979
['Perplexity-User/1.0', $pages[2], 200, 36985, false],
8080
['MistralAI-User/2.0', $pages[3], 200, 85236, false],
8181
['Claude-User/3.0', $downloads[3], 200, 12456, true],
82+
['Claude-User/3.0', $downloads[4], 200, 35562, true],
8283
],
8384
2 => [
8485
['Perplexity-User/1.0', $downloads[3], 200, 84269, true],

plugins/BotTracking/tests/System/expected/test__documents__BotTracking.getAIAssistantRequests_day.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,15 @@
2222
</row>
2323
<row>
2424
<label>Claude-User</label>
25-
<requests>2</requests>
26-
<document_requests>2</document_requests>
25+
<requests>3</requests>
26+
<document_requests>3</document_requests>
2727
<page_requests>0</page_requests>
2828
<visits_acquired>0</visits_acquired>
2929
<subtable>
30+
<row>
31+
<label>example.com/resources/case-study.pdf</label>
32+
<requests>1</requests>
33+
</row>
3034
<row>
3135
<label>example.com/resources/datasheet.pdf</label>
3236
<requests>1</requests>

plugins/BotTracking/tests/System/expected/test__documents__BotTracking.getAIAssistantRequests_week.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22
<result>
33
<row>
44
<label>Claude-User</label>
5-
<requests>4</requests>
6-
<document_requests>2</document_requests>
5+
<requests>5</requests>
6+
<document_requests>3</document_requests>
77
<page_requests>2</page_requests>
88
<visits_acquired>2</visits_acquired>
99
<subtable>
10+
<row>
11+
<label>example.com/resources/case-study.pdf</label>
12+
<requests>1</requests>
13+
</row>
1014
<row>
1115
<label>example.com/resources/datasheet.pdf</label>
1216
<requests>1</requests>

plugins/BotTracking/tests/System/expected/test__pages__BotTracking.getAIAssistantRequests_day.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
</row>
2929
<row>
3030
<label>Claude-User</label>
31-
<requests>2</requests>
32-
<document_requests>2</document_requests>
31+
<requests>3</requests>
32+
<document_requests>3</document_requests>
3333
<page_requests>0</page_requests>
3434
<visits_acquired>0</visits_acquired>
3535
</row>

plugins/BotTracking/tests/System/expected/test__pages__BotTracking.getAIAssistantRequests_week.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<result>
33
<row>
44
<label>Claude-User</label>
5-
<requests>4</requests>
6-
<document_requests>2</document_requests>
5+
<requests>5</requests>
6+
<document_requests>3</document_requests>
77
<page_requests>2</page_requests>
88
<visits_acquired>2</visits_acquired>
99
<subtable>

plugins/BotTracking/tests/System/expected/test_ranking_limit_documents__BotTracking.getAIAssistantRequests_day.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@
2222
</row>
2323
<row>
2424
<label>Claude-User</label>
25-
<requests>2</requests>
26-
<document_requests>2</document_requests>
25+
<requests>3</requests>
26+
<document_requests>3</document_requests>
2727
<page_requests>0</page_requests>
2828
<visits_acquired>0</visits_acquired>
2929
<subtable>
3030
<row>
31-
<label>example.com/resources/datasheet.pdf</label>
31+
<label>example.com/resources/case-study.pdf</label>
3232
<requests>1</requests>
3333
</row>
3434
<row>
35-
<label>example.com/resources/whitepaper.pdf</label>
36-
<requests>1</requests>
35+
<label>Others</label>
36+
<requests>2</requests>
3737
</row>
3838
</subtable>
3939
</row>

plugins/BotTracking/tests/System/expected/test_ranking_limit_documents__BotTracking.getAIAssistantRequests_week.xml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,27 @@
3131
</subtable>
3232
</row>
3333
<row>
34-
<label>MistralAI-User</label>
34+
<label>Claude-User</label>
3535
<requests>4</requests>
36-
<document_requests>0</document_requests>
37-
<page_requests>4</page_requests>
38-
<visits_acquired>0</visits_acquired>
36+
<document_requests>3</document_requests>
37+
<page_requests>1</page_requests>
38+
<visits_acquired>1</visits_acquired>
39+
<subtable>
40+
<row>
41+
<label>example.com/resources/case-study.pdf</label>
42+
<requests>1</requests>
43+
</row>
44+
<row>
45+
<label>Others</label>
46+
<requests>2</requests>
47+
</row>
48+
</subtable>
3949
</row>
4050
<row>
4151
<label>Others</label>
42-
<requests>12</requests>
43-
<document_requests>5</document_requests>
44-
<page_requests>7</page_requests>
45-
<visits_acquired>3</visits_acquired>
52+
<requests>13</requests>
53+
<document_requests>3</document_requests>
54+
<page_requests>10</page_requests>
55+
<visits_acquired>2</visits_acquired>
4656
</row>
4757
</result>

plugins/BotTracking/tests/System/expected/test_ranking_limit_pages__BotTracking.getAIAssistantRequests_day.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,17 @@
1313
</row>
1414
</subtable>
1515
</row>
16+
<row>
17+
<label>Perplexity-User</label>
18+
<requests>1</requests>
19+
<document_requests>0</document_requests>
20+
<page_requests>1</page_requests>
21+
<visits_acquired>1</visits_acquired>
22+
</row>
1623
<row>
1724
<label>Claude-User</label>
18-
<requests>2</requests>
19-
<document_requests>2</document_requests>
25+
<requests>3</requests>
26+
<document_requests>3</document_requests>
2027
<page_requests>0</page_requests>
2128
<visits_acquired>0</visits_acquired>
2229
</row>
@@ -37,11 +44,4 @@
3744
</row>
3845
</subtable>
3946
</row>
40-
<row>
41-
<label>Others</label>
42-
<requests>1</requests>
43-
<document_requests>0</document_requests>
44-
<page_requests>1</page_requests>
45-
<visits_acquired>0</visits_acquired>
46-
</row>
4747
</result>

plugins/BotTracking/tests/System/expected/test_ranking_limit_pages__BotTracking.getAIAssistantRequests_week.xml

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<result>
33
<row>
44
<label>Claude-User</label>
5-
<requests>4</requests>
6-
<document_requests>2</document_requests>
5+
<requests>5</requests>
6+
<document_requests>3</document_requests>
77
<page_requests>2</page_requests>
88
<visits_acquired>2</visits_acquired>
99
<subtable>
@@ -17,6 +17,13 @@
1717
</row>
1818
</subtable>
1919
</row>
20+
<row>
21+
<label>Perplexity-User</label>
22+
<requests>6</requests>
23+
<document_requests>5</document_requests>
24+
<page_requests>1</page_requests>
25+
<visits_acquired>2</visits_acquired>
26+
</row>
2027
<row>
2128
<label>ChatGPT-User</label>
2229
<requests>5</requests>
@@ -36,28 +43,21 @@
3643
</row>
3744
<row>
3845
<label>Gemini-Deep-Research</label>
39-
<requests>2</requests>
46+
<requests>3</requests>
4047
<document_requests>0</document_requests>
41-
<page_requests>2</page_requests>
48+
<page_requests>3</page_requests>
4249
<visits_acquired>1</visits_acquired>
4350
<subtable>
4451
<row>
4552
<label>example.com/article-4</label>
4653
<requests>1</requests>
4754
</row>
4855
<row>
49-
<label>example.com/article-6</label>
50-
<requests>1</requests>
56+
<label>Others</label>
57+
<requests>2</requests>
5158
</row>
5259
</subtable>
5360
</row>
54-
<row>
55-
<label>Perplexity-User</label>
56-
<requests>5</requests>
57-
<document_requests>5</document_requests>
58-
<page_requests>0</page_requests>
59-
<visits_acquired>1</visits_acquired>
60-
</row>
6161
<row>
6262
<label>Devin</label>
6363
<requests>2</requests>
@@ -80,26 +80,19 @@
8080
</row>
8181
<row>
8282
<label>MistralAI-User</label>
83-
<requests>3</requests>
83+
<requests>4</requests>
8484
<document_requests>0</document_requests>
85-
<page_requests>3</page_requests>
85+
<page_requests>4</page_requests>
8686
<visits_acquired>0</visits_acquired>
8787
<subtable>
8888
<row>
8989
<label>example.com/article-3</label>
9090
<requests>2</requests>
9191
</row>
9292
<row>
93-
<label>example.com/article-4</label>
94-
<requests>1</requests>
93+
<label>Others</label>
94+
<requests>2</requests>
9595
</row>
9696
</subtable>
9797
</row>
98-
<row>
99-
<label>Others</label>
100-
<requests>3</requests>
101-
<document_requests>0</document_requests>
102-
<page_requests>3</page_requests>
103-
<visits_acquired>0</visits_acquired>
104-
</row>
10598
</result>

0 commit comments

Comments
 (0)