queryRange( '(1 - (avg_over_time(node_memory_MemAvailable_bytes[1h]) / avg_over_time(node_memory_MemTotal_bytes[1h]))) * 100', now()->subHour()->timestamp, now()->timestamp, 360 // 每6分钟一个数据点 ); $labels = []; $data = []; if (!empty($memoryUsageRange['data']['result'][0]['values'])) { foreach ($memoryUsageRange['data']['result'][0]['values'] as $index => $value) { $labels[] = 'Point ' . ($index + 1); $data[] = round($value[1], 2); // 取出每个时间点的内存使用率,并保留两位小数 } } return [ 'labels' => $labels, 'datasets' => [ [ 'label' => '内存占用率 (%)', 'data' => $data, 'borderColor' => '#4CAF50', 'backgroundColor' => 'rgba(76, 175, 80, 0.2)', 'fill' => true, ], ], ]; } protected function getType(): string { return 'line'; } }