30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
export async function fetchSpikeData(filters = {}) {
|
|
const params = new URLSearchParams();
|
|
if (filters.time_range) params.append('time_range', filters.time_range);
|
|
if (filters.event_type) params.append('event_type', filters.event_type);
|
|
if (filters.cpu_id !== undefined && filters.cpu_id !== null) params.append('cpu_id', filters.cpu_id);
|
|
|
|
const url = `/api/spike_data${params.toString() ? '?' + params.toString() : ''}`;
|
|
|
|
try {
|
|
const response = await fetch(url, { method: 'GET' });
|
|
if (!response.ok) {
|
|
console.error('Fehlerhafte Serverantwort:', response.status, response.statusText);
|
|
return [];
|
|
}
|
|
const data = await response.json();
|
|
if (!Array.isArray(data)) {
|
|
console.error('Unerwartetes Datenformat von /api/spike_data');
|
|
return [];
|
|
}
|
|
return data.map(item => ({
|
|
timestamp: Number(item.timestamp) || 0,
|
|
type: typeof item.type === 'string' ? item.type : '',
|
|
cpu: Number(item.cpu) || 0,
|
|
value: Number(item.value) || 0
|
|
}));
|
|
} catch (err) {
|
|
console.error('Fehler beim Abrufen der Spike-Daten:', err);
|
|
return [];
|
|
}
|
|
}
|