hourly endpoint fix?
This commit is contained in:
@@ -13,9 +13,9 @@ watch([() => props.metricKey, mode], async ([key]) => {
|
|||||||
if(!key) return;
|
if(!key) return;
|
||||||
const past = new Date(), future = new Date();
|
const past = new Date(), future = new Date();
|
||||||
if(mode.value === 'hourly') {
|
if(mode.value === 'hourly') {
|
||||||
past.setHours(past.getHours() - 24);
|
past.setHours(past.getHours() - 24, 0, 0, 0);
|
||||||
future.setHours(future.getHours() + 24);
|
future.setHours(future.getHours() + 24, 0, 0, 0);
|
||||||
rows.value = await api.hourly(past, future);
|
rows.value = await api.hourly(past, future, props.metricKey || undefined);
|
||||||
} else {
|
} else {
|
||||||
past.setDate(past.getDate() - 3);
|
past.setDate(past.getDate() - 3);
|
||||||
future.setDate(future.getDate() + 3);
|
future.setDate(future.getDate() + 3);
|
||||||
|
|||||||
@@ -26,14 +26,14 @@ async function get<T>(path: string, params: Record<string, string> = {}): Promis
|
|||||||
export const api = {
|
export const api = {
|
||||||
position: (fields?: string) => get<{latitude: number, longitude: number, altitude: number}>('/api/position', fields ? {fields} : {}),
|
position: (fields?: string) => get<{latitude: number, longitude: number, altitude: number}>('/api/position', fields ? {fields} : {}),
|
||||||
current: (fields?: string) => get<DataRow>('/api/current', fields ? {fields} : {}),
|
current: (fields?: string) => get<DataRow>('/api/current', fields ? {fields} : {}),
|
||||||
hourly: (start?: Date, end?: Date, fields?: string) => get<DataRow[]>('/api/hourly', {
|
hourly: (start?: Date | string, end?: Date | string, fields?: string) => get<DataRow[]>('/api/hourly', {
|
||||||
...(start ? {start: start.toISOString().slice(0, 10)} : {}),
|
...(start ? {start: typeof start == 'string' ? start : start.toISOString()} : {}),
|
||||||
...(end ? {end: end.toISOString().slice(0, 10)} : {}),
|
...(end ? {end: typeof end == 'string' ? end : end.toISOString()} : {}),
|
||||||
...(fields ? {fields} : {})
|
...(fields ? {fields} : {})
|
||||||
}),
|
}),
|
||||||
daily: (start?: Date, end?: Date, fields?: string) => get<DataRow[]>('/api/daily', {
|
daily: (start?: Date, end?: Date, fields?: string) => get<DataRow[]>('/api/daily', {
|
||||||
...(start ? {start: start.toISOString().slice(0, 10)} : {}),
|
...(start ? {start: typeof start == 'string' ? start : start.toISOString()} : {}),
|
||||||
...(end ? {end: end.toISOString().slice(0, 10)} : {}),
|
...(end ? {end: typeof end == 'string' ? end : end.toISOString()} : {}),
|
||||||
...(fields ? {fields} : {})
|
...(fields ? {fields} : {})
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ export async function queryHourly(start, end) {
|
|||||||
from(bucket: "${c.INFLUX_BUCKET}")
|
from(bucket: "${c.INFLUX_BUCKET}")
|
||||||
|> range(start: ${start.toISOString()}, stop: ${end.toISOString()})
|
|> range(start: ${start.toISOString()}, stop: ${end.toISOString()})
|
||||||
|> filter(fn: (r) => ${MEASUREMENTS.map(m => `r._measurement == "${m}"`).join(' or ')})
|
|> filter(fn: (r) => ${MEASUREMENTS.map(m => `r._measurement == "${m}"`).join(' or ')})
|
||||||
|
|> group(columns: ["_field"])
|
||||||
|> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
|
|> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
|
||||||
|> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
|
|> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
|
||||||
`;
|
`;
|
||||||
|
|||||||
Reference in New Issue
Block a user