mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-18 05:19:19 +08:00
feat: Add GPU monitoring settings redirection (#11103)
This commit is contained in:
parent
e89311d5d4
commit
bbc14bb723
13 changed files with 27 additions and 14 deletions
|
|
@ -635,21 +635,18 @@ func saveXPUDataToDB() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func loadGPUInfoInt(val string) int {
|
func loadGPUInfoInt(val string) int {
|
||||||
valItem := strings.ReplaceAll(val, "MiB", "")
|
val = strings.TrimSuffix(val, "%")
|
||||||
valItem = strings.ReplaceAll(valItem, "C", "")
|
val = strings.TrimSpace(val)
|
||||||
valItem = strings.ReplaceAll(valItem, "%", "")
|
data, _ := strconv.Atoi(val)
|
||||||
valItem = strings.TrimSpace(valItem)
|
|
||||||
data, _ := strconv.Atoi(valItem)
|
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
func loadGPUInfoFloat(val string) float64 {
|
func loadGPUInfoFloat(val string) float64 {
|
||||||
valItem := strings.ReplaceAll(val, "W", "")
|
val = strings.TrimSpace(val)
|
||||||
valItem = strings.ReplaceAll(valItem, "MB", "")
|
suffixes := []string{"W", "MB", "MiB", "°C", "C", "%"}
|
||||||
valItem = strings.ReplaceAll(valItem, "MiB", "")
|
for _, suffix := range suffixes {
|
||||||
valItem = strings.ReplaceAll(valItem, "C", "")
|
val = strings.TrimSuffix(val, suffix)
|
||||||
valItem = strings.ReplaceAll(valItem, "°C", "")
|
}
|
||||||
valItem = strings.ReplaceAll(valItem, "%", "")
|
val = strings.TrimSpace(val)
|
||||||
valItem = strings.TrimSpace(valItem)
|
data, _ := strconv.ParseFloat(val, 64)
|
||||||
data, _ := strconv.ParseFloat(valItem, 64)
|
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1210,6 +1210,7 @@ const message = {
|
||||||
defaultIO: 'Default Disk',
|
defaultIO: 'Default Disk',
|
||||||
defaultIOHelper: 'Default disk option displayed in monitoring and overview interfaces',
|
defaultIOHelper: 'Default disk option displayed in monitoring and overview interfaces',
|
||||||
cleanMonitor: 'Clear Monitoring Records',
|
cleanMonitor: 'Clear Monitoring Records',
|
||||||
|
cleanHelper: 'This operation will clear all monitoring records including GPU. Continue?',
|
||||||
|
|
||||||
avgLoad: 'Load average',
|
avgLoad: 'Load average',
|
||||||
loadDetail: 'Load detail',
|
loadDetail: 'Load detail',
|
||||||
|
|
|
||||||
|
|
@ -1218,6 +1218,7 @@ const message = {
|
||||||
defaultIO: 'Disco Predeterminado',
|
defaultIO: 'Disco Predeterminado',
|
||||||
defaultIOHelper: 'Opción de disco predeterminada mostrada en las interfaces de monitoreo y resumen',
|
defaultIOHelper: 'Opción de disco predeterminada mostrada en las interfaces de monitoreo y resumen',
|
||||||
cleanMonitor: 'Limpiar Registros de Monitoreo',
|
cleanMonitor: 'Limpiar Registros de Monitoreo',
|
||||||
|
cleanHelper: 'Esta operación borrará todos los registros de monitoreo, incluidos los de GPU. ¿Continuar?',
|
||||||
|
|
||||||
avgLoad: 'Carga promedio',
|
avgLoad: 'Carga promedio',
|
||||||
loadDetail: 'Detalle de carga',
|
loadDetail: 'Detalle de carga',
|
||||||
|
|
|
||||||
|
|
@ -1174,6 +1174,7 @@ const message = {
|
||||||
defaultIO: 'デフォルトディスク',
|
defaultIO: 'デフォルトディスク',
|
||||||
defaultIOHelper: '監視および概要インターフェースに表示されるデフォルトのディスクオプション',
|
defaultIOHelper: '監視および概要インターフェースに表示されるデフォルトのディスクオプション',
|
||||||
cleanMonitor: '監視記録をクリア',
|
cleanMonitor: '監視記録をクリア',
|
||||||
|
cleanHelper: 'この操作により、GPUを含むすべての監視記録がクリアされます。続行しますか?',
|
||||||
|
|
||||||
avgLoad: 'ロード平均',
|
avgLoad: 'ロード平均',
|
||||||
loadDetail: '詳細を読み込みます',
|
loadDetail: '詳細を読み込みます',
|
||||||
|
|
|
||||||
|
|
@ -1166,6 +1166,7 @@ const message = {
|
||||||
defaultIO: '기본 디스크',
|
defaultIO: '기본 디스크',
|
||||||
defaultIOHelper: '모니터링 및 개요 인터페이스에 표시되는 기본 디스크 옵션',
|
defaultIOHelper: '모니터링 및 개요 인터페이스에 표시되는 기본 디스크 옵션',
|
||||||
cleanMonitor: '모니터링 기록 지우기',
|
cleanMonitor: '모니터링 기록 지우기',
|
||||||
|
cleanHelper: '이 작업은 GPU를 포함한 모든 모니터링 기록을 지웁니다. 계속하시겠습니까?',
|
||||||
|
|
||||||
avgLoad: '평균 부하',
|
avgLoad: '평균 부하',
|
||||||
loadDetail: '부하 세부사항',
|
loadDetail: '부하 세부사항',
|
||||||
|
|
|
||||||
|
|
@ -1204,6 +1204,7 @@ const message = {
|
||||||
defaultIO: 'Cakera Lalai',
|
defaultIO: 'Cakera Lalai',
|
||||||
defaultIOHelper: 'Pilihan cakera lalai yang dipaparkan dalam antara muka pemantauan dan gambaran keseluruhan',
|
defaultIOHelper: 'Pilihan cakera lalai yang dipaparkan dalam antara muka pemantauan dan gambaran keseluruhan',
|
||||||
cleanMonitor: 'Kosongkan Rekod Pemantauan',
|
cleanMonitor: 'Kosongkan Rekod Pemantauan',
|
||||||
|
cleanHelper: 'Operasi ini akan membersihkan semua rekod pemantauan termasuk GPU. Teruskan?',
|
||||||
|
|
||||||
avgLoad: 'Purata beban',
|
avgLoad: 'Purata beban',
|
||||||
loadDetail: 'Butiran beban',
|
loadDetail: 'Butiran beban',
|
||||||
|
|
|
||||||
|
|
@ -1198,6 +1198,7 @@ const message = {
|
||||||
defaultIO: 'Disco Padrão',
|
defaultIO: 'Disco Padrão',
|
||||||
defaultIOHelper: 'Opção de disco padrão exibida nas interfaces de monitoramento e visão geral',
|
defaultIOHelper: 'Opção de disco padrão exibida nas interfaces de monitoramento e visão geral',
|
||||||
cleanMonitor: 'Limpar Registros de Monitoramento',
|
cleanMonitor: 'Limpar Registros de Monitoramento',
|
||||||
|
cleanHelper: 'Esta operação limpará todos os registros de monitoramento, incluindo GPU. Continuar?',
|
||||||
|
|
||||||
avgLoad: 'Média de carga',
|
avgLoad: 'Média de carga',
|
||||||
loadDetail: 'Detalhes da carga',
|
loadDetail: 'Detalhes da carga',
|
||||||
|
|
|
||||||
|
|
@ -1200,6 +1200,7 @@ const message = {
|
||||||
defaultIO: 'Диск по Умолчанию',
|
defaultIO: 'Диск по Умолчанию',
|
||||||
defaultIOHelper: 'Опция диска по умолчанию, отображаемая в интерфейсах мониторинга и обзора',
|
defaultIOHelper: 'Опция диска по умолчанию, отображаемая в интерфейсах мониторинга и обзора',
|
||||||
cleanMonitor: 'Очистить Записи Мониторинга',
|
cleanMonitor: 'Очистить Записи Мониторинга',
|
||||||
|
cleanHelper: 'Эта операция очистит все записи мониторинга, включая GPU. Продолжить?',
|
||||||
|
|
||||||
avgLoad: 'Средняя нагрузка',
|
avgLoad: 'Средняя нагрузка',
|
||||||
loadDetail: 'Детали нагрузки',
|
loadDetail: 'Детали нагрузки',
|
||||||
|
|
|
||||||
|
|
@ -1225,6 +1225,7 @@ const message = {
|
||||||
defaultIO: 'Varsayılan Disk',
|
defaultIO: 'Varsayılan Disk',
|
||||||
defaultIOHelper: 'İzleme ve genel bakış arayüzlerinde görüntülenen varsayılan disk seçeneği',
|
defaultIOHelper: 'İzleme ve genel bakış arayüzlerinde görüntülenen varsayılan disk seçeneği',
|
||||||
cleanMonitor: 'İzleme Kayıtlarını Temizle',
|
cleanMonitor: 'İzleme Kayıtlarını Temizle',
|
||||||
|
cleanHelper: 'Bu işlem GPU dahil tüm izleme kayıtlarını temizleyecektir. Devam etmek istiyor musunuz?',
|
||||||
|
|
||||||
avgLoad: 'Ortalama yük',
|
avgLoad: 'Ortalama yük',
|
||||||
loadDetail: 'Yük detayı',
|
loadDetail: 'Yük detayı',
|
||||||
|
|
|
||||||
|
|
@ -1145,6 +1145,7 @@ const message = {
|
||||||
defaultIO: '預設磁碟',
|
defaultIO: '預設磁碟',
|
||||||
defaultIOHelper: '預設監控和概覽介面顯示的磁碟選項',
|
defaultIOHelper: '預設監控和概覽介面顯示的磁碟選項',
|
||||||
cleanMonitor: '清空監控記錄',
|
cleanMonitor: '清空監控記錄',
|
||||||
|
cleanHelper: '該操作將清空包括 GPU 在內的所有監控記錄,是否繼續?',
|
||||||
|
|
||||||
avgLoad: '平均負載',
|
avgLoad: '平均負載',
|
||||||
loadDetail: '負載詳情',
|
loadDetail: '負載詳情',
|
||||||
|
|
|
||||||
|
|
@ -1151,6 +1151,7 @@ const message = {
|
||||||
defaultIO: '默认磁盘',
|
defaultIO: '默认磁盘',
|
||||||
defaultIOHelper: '默认监控和概览界面显示的磁盘选项',
|
defaultIOHelper: '默认监控和概览界面显示的磁盘选项',
|
||||||
cleanMonitor: '清空监控记录',
|
cleanMonitor: '清空监控记录',
|
||||||
|
cleanHelper: '该操作将清空包括 GPU 在内的所有监控记录,是否继续?',
|
||||||
|
|
||||||
avgLoad: '平均负载',
|
avgLoad: '平均负载',
|
||||||
loadDetail: '负载详情',
|
loadDetail: '负载详情',
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
<el-option v-for="item in options" :key="item" :label="item" :value="item" />
|
<el-option v-for="item in options" :key="item" :label="item" :value="item" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<TableRefresh class="float-right" @search="search()" />
|
<TableRefresh class="float-right" @search="search()" />
|
||||||
|
<el-button icon="Setting" class="float-right mr-2" @click="quickJump()" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -154,6 +155,7 @@ import { GlobalStore } from '@/store';
|
||||||
import { shortcuts } from '@/utils/shortcuts';
|
import { shortcuts } from '@/utils/shortcuts';
|
||||||
import { Host } from '@/api/interface/host';
|
import { Host } from '@/api/interface/host';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
|
import { routerToName } from '@/utils/router';
|
||||||
|
|
||||||
const globalStore = GlobalStore();
|
const globalStore = GlobalStore();
|
||||||
|
|
||||||
|
|
@ -292,6 +294,10 @@ function initPowerCharts(baseDate: any, items: any) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const quickJump = () => {
|
||||||
|
routerToName('HostMonitorSetting');
|
||||||
|
};
|
||||||
|
|
||||||
function initXpuPowerCharts(baseDate: any, items: any) {
|
function initXpuPowerCharts(baseDate: any, items: any) {
|
||||||
let list = items.map(function (item: any) {
|
let list = items.map(function (item: any) {
|
||||||
return { value: Number(item.used.toFixed(2)), data: item };
|
return { value: Number(item.used.toFixed(2)), data: item };
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ const onChangeIO = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const onClean = async () => {
|
const onClean = async () => {
|
||||||
ElMessageBox.confirm(i18n.global.t('commons.msg.clean'), i18n.global.t('monitor.cleanMonitor'), {
|
ElMessageBox.confirm(i18n.global.t('monitor.cleanHelper'), i18n.global.t('monitor.cleanMonitor'), {
|
||||||
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
||||||
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
||||||
type: 'info',
|
type: 'info',
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue