Add multi-bucket support for tables and update reports

This commit is contained in:
Jordan Wages 2025-07-19 18:19:58 -05:00
commit 1d4e99c69b
4 changed files with 127 additions and 33 deletions

View file

@ -75,47 +75,78 @@
label: Top Paths
icon: map
chart: table
bucket: path
bucket_label: Path
buckets:
- domain
- path
bucket_label:
- Domain
- Path
query: |
SELECT path AS path,
COUNT(*) AS value
FROM (
SELECT substr(substr(request, instr(request, ' ') + 1), 1,
WITH paths AS (
SELECT host AS domain,
substr(substr(request, instr(request, ' ') + 1), 1,
instr(substr(request, instr(request, ' ') + 1), ' ') - 1) AS path
FROM logs
), ranked AS (
SELECT domain, path, COUNT(*) AS value,
ROW_NUMBER() OVER (PARTITION BY domain ORDER BY COUNT(*) DESC) AS rn
FROM paths
GROUP BY domain, path
)
GROUP BY path
ORDER BY value DESC
LIMIT 20
SELECT domain, path, value
FROM ranked
WHERE rn <= 20
ORDER BY domain, value DESC
- name: user_agents
label: User Agents
icon: user
chart: table
bucket: user_agent
bucket_label: User Agent
buckets:
- domain
- user_agent
bucket_label:
- Domain
- User Agent
query: |
SELECT user_agent AS user_agent,
COUNT(*) AS value
FROM logs
GROUP BY user_agent
ORDER BY value DESC
LIMIT 20
WITH ua AS (
SELECT host AS domain, user_agent
FROM logs
), ranked AS (
SELECT domain, user_agent, COUNT(*) AS value,
ROW_NUMBER() OVER (PARTITION BY domain ORDER BY COUNT(*) DESC) AS rn
FROM ua
GROUP BY domain, user_agent
)
SELECT domain, user_agent, value
FROM ranked
WHERE rn <= 20
ORDER BY domain, value DESC
- name: referrers
label: Referrers
icon: link
chart: table
bucket: referrer
bucket_label: Referrer
buckets:
- domain
- referrer
bucket_label:
- Domain
- Referrer
query: |
SELECT referer AS referrer,
COUNT(*) AS value
FROM logs
GROUP BY referrer
ORDER BY value DESC
LIMIT 20
WITH ref AS (
SELECT host AS domain, referer AS referrer
FROM logs
), ranked AS (
SELECT domain, referrer, COUNT(*) AS value,
ROW_NUMBER() OVER (PARTITION BY domain ORDER BY COUNT(*) DESC) AS rn
FROM ref
GROUP BY domain, referrer
)
SELECT domain, referrer, value
FROM ranked
WHERE rn <= 20
ORDER BY domain, value DESC
- name: status_distribution
label: HTTP Statuses