mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +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
|
*.dev.yml
|
||||||
|
|
||||||
# cert
|
|
||||||
/lib/cert
|
|
||||||
|
|
||||||
|
@ -27,8 +27,8 @@ export default async (req, res) => {
|
|||||||
|
|
||||||
const [pageviews, sessions] = await Promise.all([
|
const [pageviews, sessions] = await Promise.all([
|
||||||
getPageviewStats(websiteId, {
|
getPageviewStats(websiteId, {
|
||||||
startDate,
|
start_at: startDate,
|
||||||
endDate,
|
end_at: endDate,
|
||||||
tz,
|
tz,
|
||||||
unit,
|
unit,
|
||||||
count: '*',
|
count: '*',
|
||||||
@ -42,8 +42,8 @@ export default async (req, res) => {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
getPageviewStats(websiteId, {
|
getPageviewStats(websiteId, {
|
||||||
startDate,
|
start_at: startDate,
|
||||||
endDate,
|
end_at: endDate,
|
||||||
tz,
|
tz,
|
||||||
unit,
|
unit,
|
||||||
count: 'distinct pageview.',
|
count: 'distinct pageview.',
|
||||||
|
@ -21,21 +21,29 @@ export default async (req, res) => {
|
|||||||
const prevStartDate = new Date(+start_at - distance);
|
const prevStartDate = new Date(+start_at - distance);
|
||||||
const prevEndDate = new Date(+end_at - distance);
|
const prevEndDate = new Date(+end_at - distance);
|
||||||
|
|
||||||
const metrics = await getWebsiteStats(websiteId, startDate, endDate, {
|
const metrics = await getWebsiteStats(websiteId, {
|
||||||
url,
|
start_at: startDate,
|
||||||
referrer,
|
end_at: endDate,
|
||||||
os,
|
filters: {
|
||||||
browser,
|
url,
|
||||||
device,
|
referrer,
|
||||||
country,
|
os,
|
||||||
|
browser,
|
||||||
|
device,
|
||||||
|
country,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
const prevPeriod = await getWebsiteStats(websiteId, prevStartDate, prevEndDate, {
|
const prevPeriod = await getWebsiteStats(websiteId, {
|
||||||
url,
|
start_at: prevStartDate,
|
||||||
referrer,
|
end_at: prevEndDate,
|
||||||
os,
|
filters: {
|
||||||
browser,
|
url,
|
||||||
device,
|
referrer,
|
||||||
country,
|
os,
|
||||||
|
browser,
|
||||||
|
device,
|
||||||
|
country,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const stats = Object.keys(metrics[0]).reduce((obj, key) => {
|
const stats = Object.keys(metrics[0]).reduce((obj, key) => {
|
||||||
|
@ -52,7 +52,8 @@ async function clickhouseQuery(
|
|||||||
${getDateQuery('created_at', unit, timezone)} t,
|
${getDateQuery('created_at', unit, timezone)} t,
|
||||||
count(*) y
|
count(*) y
|
||||||
from event
|
from event
|
||||||
where website_id= $1
|
where event_name != ''
|
||||||
|
and website_id= $1
|
||||||
and ${getBetweenDates('created_at', start_at, end_at)}
|
and ${getBetweenDates('created_at', start_at, end_at)}
|
||||||
${getFilterQuery('event', filters, params)}
|
${getFilterQuery('event', filters, params)}
|
||||||
group by x, t
|
group by x, t
|
||||||
|
@ -31,12 +31,13 @@ function clickhouseQuery(websites, start_at) {
|
|||||||
`select
|
`select
|
||||||
event_uuid,
|
event_uuid,
|
||||||
website_id,
|
website_id,
|
||||||
session_id,
|
session_uuid,
|
||||||
created_at,
|
created_at,
|
||||||
url,
|
url,
|
||||||
event_name
|
event_name
|
||||||
from event
|
from event
|
||||||
where website_id in (${websites.join[',']}
|
where event_name != ''
|
||||||
and created_at >= ${getDateFormat(start_at)})`,
|
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
|
`select ${column} x, count(*) y
|
||||||
from event
|
from event
|
||||||
where website_id= $1
|
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)}
|
and ${getBetweenDates('created_at', startDate, endDate)}
|
||||||
${pageviewQuery}
|
${pageviewQuery}
|
||||||
${sessionQuery}
|
${sessionQuery}
|
||||||
|
@ -59,10 +59,10 @@ async function clickhouseQuery(
|
|||||||
from
|
from
|
||||||
(select
|
(select
|
||||||
${getDateQuery('created_at', unit, timezone)} t,
|
${getDateQuery('created_at', unit, timezone)} t,
|
||||||
count(${count !== '*' ? 'session_uuid' : count}) y
|
count(${count !== '*' ? 'distinct session_uuid' : count}) y
|
||||||
from event
|
from event
|
||||||
where website_id= $1
|
where event_name = ''
|
||||||
|
and website_id= $1
|
||||||
and ${getBetweenDates('created_at', start_at, end_at)}
|
and ${getBetweenDates('created_at', start_at, end_at)}
|
||||||
${pageviewQuery}
|
${pageviewQuery}
|
||||||
${sessionQuery}
|
${sessionQuery}
|
||||||
|
@ -33,7 +33,7 @@ async function clickhouseQuery(websites, start_at) {
|
|||||||
url
|
url
|
||||||
from event
|
from event
|
||||||
where event_name = ''
|
where event_name = ''
|
||||||
and website_id in (${websites.join[',']}
|
and ${websites && websites.length > 0 ? `website_id in (${websites.join(',')})` : '0 = 0'}
|
||||||
and created_at >= ${clickhouse.getDateFormat(start_at)})`,
|
and created_at >= ${clickhouse.getDateFormat(start_at)}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ async function clickhouseQuery(websites, start_at) {
|
|||||||
language,
|
language,
|
||||||
country
|
country
|
||||||
from event
|
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)}`,
|
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 { getDateQuery, getTimestampInterval, parseFilters, rawQuery } = prisma;
|
||||||
const params = [website_id, start_at, end_at];
|
const params = [website_id, start_at, end_at];
|
||||||
const { pageviewQuery, sessionQuery, joinSession } = parseFilters(
|
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 { rawQuery, getDateQuery, getBetweenDates, parseFilters } = clickhouse;
|
||||||
const params = [website_id];
|
const params = [website_id];
|
||||||
const { pageviewQuery, sessionQuery } = parseFilters(null, filters, params);
|
const { pageviewQuery, sessionQuery } = parseFilters(null, filters, params);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user