diff --git a/management-panel/app/Filament/Widgets/LoadWidget.php b/management-panel/app/Filament/Widgets/LoadWidget.php index 20013ae..0275d6e 100644 --- a/management-panel/app/Filament/Widgets/LoadWidget.php +++ b/management-panel/app/Filament/Widgets/LoadWidget.php @@ -61,6 +61,8 @@ class LoadWidget extends ChartWidget $data = []; if (!empty($loadResult['data']['result'][0]['values'])) { + date_default_timezone_set('Asia/Shanghai'); + $loadValues = array_column($loadResult['data']['result'][0]['values'], 1, 0); // 获取最新的数据点 diff --git a/management-panel/app/Filament/Widgets/NetworkMonitor.php b/management-panel/app/Filament/Widgets/NetworkMonitor.php index 079ca29..48f97f9 100644 --- a/management-panel/app/Filament/Widgets/NetworkMonitor.php +++ b/management-panel/app/Filament/Widgets/NetworkMonitor.php @@ -44,7 +44,10 @@ class NetworkMonitor extends ChartWidget '5s' // 每秒一个数据点 ); + if (!empty($uploadResult['data']['result'][0]['values'])) { + date_default_timezone_set('Asia/Shanghai'); + $uploadValues = array_column($uploadResult['data']['result'][0]['values'], 1, 0); // 获取最新的数据点 @@ -69,6 +72,8 @@ class NetworkMonitor extends ChartWidget ); if (!empty($downloadResult['data']['result'][0]['values'])) { + date_default_timezone_set('Asia/Shanghai'); + $downloadValues = array_column($downloadResult['data']['result'][0]['values'], 1, 0); // 获取最新的数据点 diff --git a/management-panel/app/Livewire/MetricWidgetChart.php b/management-panel/app/Livewire/MetricWidgetChart.php index fe35a70..8d92e5b 100644 --- a/management-panel/app/Livewire/MetricWidgetChart.php +++ b/management-panel/app/Livewire/MetricWidgetChart.php @@ -10,16 +10,23 @@ class MetricWidgetChart extends InlineChartWidget protected function getData(): array { $prometheus = new PrometheusService(); +// date_default_timezone_set('Asia/Shanghai'); + $query1 = $this->record->name . '{data="real"}'; $query2 = $this->record->name . '{data="simulate"}'; + $start = now()->subDays(1)->timestamp; $end = now()->timestamp; $step = 60; $realdata = $prometheus->queryRange($query1, $start, $end, $step); $simulatedata = $prometheus->queryRange($query2, $start, $end, $step); - + // 检查查询结果是否有数据 + if (empty($realdata['data']['result']) && empty($simulatedata['data']['result'])) { + // 如果没有数据,返回一个空数据集或提示信息 + return ['labels' => [], 'datasets' => [],]; + } // 将数据格式化为 InlineChartWidget 所需的格式 $formattedRealData = $this->formatData($realdata, 'Real Data'); $formattedSimulateData = $this->formatData($simulatedata, 'Simulate Data'); @@ -40,7 +47,8 @@ class MetricWidgetChart extends InlineChartWidget * @param string $label 数据集标签 * @return array 格式化后的数据 */ - protected function formatData(array $data, string $label): array + protected + function formatData(array $data, string $label): array { $labels = []; $dataset = [