mirror of
https://github.com/kremalicious/umami.git
synced 2024-11-15 09:45:04 +01:00
fix clickhouse calls (#1536)
This commit is contained in:
parent
dfac7e1af5
commit
78c3453639
3
.gitignore
vendored
3
.gitignore
vendored
@ -38,6 +38,3 @@ yarn-error.log*
|
||||
|
||||
*.dev.yml
|
||||
|
||||
# cert
|
||||
/lib/cert
|
||||
|
||||
|
@ -27,8 +27,8 @@ export default async (req, res) => {
|
||||
|
||||
const [pageviews, sessions] = await Promise.all([
|
||||
getPageviewStats(websiteId, {
|
||||
startDate,
|
||||
endDate,
|
||||
start_at: startDate,
|
||||
end_at: endDate,
|
||||
tz,
|
||||
unit,
|
||||
count: '*',
|
||||
@ -42,8 +42,8 @@ export default async (req, res) => {
|
||||
},
|
||||
}),
|
||||
getPageviewStats(websiteId, {
|
||||
startDate,
|
||||
endDate,
|
||||
start_at: startDate,
|
||||
end_at: endDate,
|
||||
tz,
|
||||
unit,
|
||||
count: 'distinct pageview.',
|
||||
|
@ -21,21 +21,29 @@ export default async (req, res) => {
|
||||
const prevStartDate = new Date(+start_at - distance);
|
||||
const prevEndDate = new Date(+end_at - distance);
|
||||
|
||||
const metrics = await getWebsiteStats(websiteId, startDate, endDate, {
|
||||
url,
|
||||
referrer,
|
||||
os,
|
||||
browser,
|
||||
device,
|
||||
country,
|
||||
const metrics = await getWebsiteStats(websiteId, {
|
||||
start_at: startDate,
|
||||
end_at: endDate,
|
||||
filters: {
|
||||
url,
|
||||
referrer,
|
||||
os,
|
||||
browser,
|
||||
device,
|
||||
country,
|
||||
},
|
||||
});
|
||||
const prevPeriod = await getWebsiteStats(websiteId, prevStartDate, prevEndDate, {
|
||||
url,
|
||||
referrer,
|
||||
os,
|
||||
browser,
|
||||
device,
|
||||
country,
|
||||
const prevPeriod = await getWebsiteStats(websiteId, {
|
||||
start_at: prevStartDate,
|
||||
end_at: prevEndDate,
|
||||
filters: {
|
||||
url,
|
||||
referrer,
|
||||
os,
|
||||
browser,
|
||||
device,
|
||||
country,
|
||||
},
|
||||
});
|
||||
|
||||
const stats = Object.keys(metrics[0]).reduce((obj, key) => {
|
||||
|
@ -52,7 +52,8 @@ async function clickhouseQuery(
|
||||
${getDateQuery('created_at', unit, timezone)} t,
|
||||
count(*) y
|
||||
from event
|
||||
where website_id= $1
|
||||
where event_name != ''
|
||||
and website_id= $1
|
||||
and ${getBetweenDates('created_at', start_at, end_at)}
|
||||
${getFilterQuery('event', filters, params)}
|
||||
group by x, t
|
||||
|
@ -31,12 +31,13 @@ function clickhouseQuery(websites, start_at) {
|
||||
`select
|
||||
event_uuid,
|
||||
website_id,
|
||||
session_id,
|
||||
session_uuid,
|
||||
created_at,
|
||||
url,
|
||||
event_name
|
||||
from event
|
||||
where website_id in (${websites.join[',']}
|
||||
and created_at >= ${getDateFormat(start_at)})`,
|
||||
where event_name != ''
|
||||
and ${websites && websites.length > 0 ? `website_id in (${websites.join(',')})` : '0 = 0'}
|
||||
and created_at >= ${getDateFormat(start_at)}`,
|
||||
);
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ async function clickhouseQuery(website_id, { startDate, endDate, column, filters
|
||||
`select ${column} x, count(*) y
|
||||
from event
|
||||
where website_id= $1
|
||||
${column !== 'event_name' ? `and event_name = ''` : ''}
|
||||
${column !== 'event_name' ? `and event_name = ''` : `and event_name != ''`}
|
||||
and ${getBetweenDates('created_at', startDate, endDate)}
|
||||
${pageviewQuery}
|
||||
${sessionQuery}
|
||||
|
@ -59,10 +59,10 @@ async function clickhouseQuery(
|
||||
from
|
||||
(select
|
||||
${getDateQuery('created_at', unit, timezone)} t,
|
||||
count(${count !== '*' ? 'session_uuid' : count}) y
|
||||
count(${count !== '*' ? 'distinct session_uuid' : count}) y
|
||||
from event
|
||||
where website_id= $1
|
||||
|
||||
where event_name = ''
|
||||
and website_id= $1
|
||||
and ${getBetweenDates('created_at', start_at, end_at)}
|
||||
${pageviewQuery}
|
||||
${sessionQuery}
|
||||
|
@ -33,7 +33,7 @@ async function clickhouseQuery(websites, start_at) {
|
||||
url
|
||||
from event
|
||||
where event_name = ''
|
||||
and website_id in (${websites.join[',']}
|
||||
and created_at >= ${clickhouse.getDateFormat(start_at)})`,
|
||||
and ${websites && websites.length > 0 ? `website_id in (${websites.join(',')})` : '0 = 0'}
|
||||
and created_at >= ${clickhouse.getDateFormat(start_at)}`,
|
||||
);
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ async function clickhouseQuery(websites, start_at) {
|
||||
language,
|
||||
country
|
||||
from event
|
||||
where ${websites && websites.length > 0 ? `(website_id in (${websites.join[',']})` : '0 = 0'}
|
||||
where ${websites && websites.length > 0 ? `website_id in (${websites.join(',')})` : '0 = 0'}
|
||||
and created_at >= ${getDateFormat(start_at)}`,
|
||||
);
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ export async function getWebsiteStats(...args) {
|
||||
});
|
||||
}
|
||||
|
||||
async function relationalQuery(website_id, start_at, end_at, filters = {}) {
|
||||
async function relationalQuery(website_id, { start_at, end_at, filters = {} }) {
|
||||
const { getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma;
|
||||
const params = [website_id, start_at, end_at];
|
||||
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
|
||||
@ -41,7 +41,7 @@ async function relationalQuery(website_id, start_at, end_at, filters = {}) {
|
||||
);
|
||||
}
|
||||
|
||||
async function clickhouseQuery(website_id, start_at, end_at, filters = {}) {
|
||||
async function clickhouseQuery(website_id, { start_at, end_at, filters = {} }) {
|
||||
const { rawQuery, getDateQuery, getBetweenDates, parseFilters } = clickhouse;
|
||||
const params = [website_id];
|
||||
const { pageviewQuery, sessionQuery } = parseFilters(null, filters, params);
|
||||
|
Loading…
Reference in New Issue
Block a user