From bdf2bbce3c3d0469de209b5d3f616f5665f3d489 Mon Sep 17 00:00:00 2001 From: balaji-jr Date: Tue, 18 Jun 2024 23:35:04 +0530 Subject: [PATCH 1/2] readme - updated the demo app url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b48d8ef7..1aedc2b5 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ For complete Parseable API documentation, refer to [Parseable API workspace on P - + From b8331e4f5c82c11dcc1279e3b1142cda25a9e4b0 Mon Sep 17 00:00:00 2001 From: balaji-jr Date: Sat, 22 Jun 2024 22:06:35 +0530 Subject: [PATCH 2/2] optimized end time range for query api --- src/api/query.ts | 27 +++++++------------ src/components/Header/TimeRange.tsx | 4 +-- src/hooks/useGetQueryCount.ts | 42 ----------------------------- 3 files changed, 11 insertions(+), 62 deletions(-) delete mode 100644 src/hooks/useGetQueryCount.ts diff --git a/src/api/query.ts b/src/api/query.ts index 70d28539..177f665e 100644 --- a/src/api/query.ts +++ b/src/api/query.ts @@ -1,3 +1,4 @@ +import dayjs from 'dayjs'; import { Axios } from './axios'; import { LOG_QUERY_URL } from './constants'; import { LogsQuery } from '@/@types/parseable/api/query'; @@ -10,6 +11,12 @@ type QueryLogs = { pageOffset: number; }; +// to optimize performace, it has been decided to round off the time at the given level +// so making the end-time inclusive +const optimizeEndTime = (endTime: Date) => { + return dayjs(endTime).add(1, 'minute').toDate(); +}; + export const getQueryLogs = (logsQuery: QueryLogs) => { const { startTime, endTime, streamName, limit, pageOffset } = logsQuery; @@ -20,7 +27,7 @@ export const getQueryLogs = (logsQuery: QueryLogs) => { { query, startTime, - endTime, + endTime: optimizeEndTime(endTime), }, {}, ); @@ -34,23 +41,7 @@ export const getQueryResult = (logsQuery: LogsQuery, query = '') => { { query, startTime, - endTime, - }, - {}, - ); -}; - -export const getQueryCount = (logsQuery: LogsQuery) => { - const { startTime, endTime, streamName } = logsQuery; - - const query = `SELECT count(*) as totalcurrentcount FROM ${streamName}`; - - return Axios().post( - LOG_QUERY_URL, - { - query, - startTime, - endTime, + endTime: optimizeEndTime(endTime), }, {}, ); diff --git a/src/components/Header/TimeRange.tsx b/src/components/Header/TimeRange.tsx index a6de4252..7188f293 100644 --- a/src/components/Header/TimeRange.tsx +++ b/src/components/Header/TimeRange.tsx @@ -161,8 +161,8 @@ const CustomTimeRange: FC = ({ setOpened }) => { setLogsStore((store) => setTimeRange(store, { type: 'custom', - startTime: dayjs(localSelectedRange.startTime), - endTime: dayjs(localSelectedRange.endTime), + startTime: dayjs(localSelectedRange.startTime).startOf('minute'), + endTime: dayjs(localSelectedRange.endTime).startOf('minute'), }), ); setOpened(false); diff --git a/src/hooks/useGetQueryCount.ts b/src/hooks/useGetQueryCount.ts deleted file mode 100644 index 053fe086..00000000 --- a/src/hooks/useGetQueryCount.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { getQueryCount } from "@/api/query"; -import useMountedState from "./useMountedState"; -import { StatusCodes } from 'http-status-codes'; -import { LogsQuery } from "@/@types/parseable/api/query"; - - -export const useGetQueryCount = () => { - const [data, setData] = useMountedState< any | null>(null); - const [error, setError] = useMountedState(null); - const [loading, setLoading] = useMountedState(false); - - const getQueryCountData = async (logsQuery: LogsQuery) => { - setLoading(true); - try { - const res = await getQueryCount(logsQuery); - - switch (res.status) { - case StatusCodes.OK: { - - setData(res.data); - break; - } - default: { - setError('Failed to get Query Count'); - console.error(res); - } - } - - } catch (error) { - setError("Failed to get Query Count"); - console.error(error); - } finally { - setLoading(false); - } - } - const resetData = () => { - setData(null); - }; - - - return { data, error, loading, getQueryCountData ,resetData}; -} \ No newline at end of file
URLhttps://demo.parseable.iohttps://demo.parseable.com
Username