From aa2526075bf4b91c7fcf04f9e68ff1ea9fe812c2 Mon Sep 17 00:00:00 2001
From: xudaotutou <13435638964@163.com>
Date: Tue, 25 Oct 2022 04:51:50 -0500
Subject: [PATCH] update web ui (#2318)
* fix(web ui): profiler
* chore(web ui):perf proxy config
* perf(web ui):update style
* chore(web ui):update deps
* perf(web ui):fix monitor category
* fix(web ui):fix style of table and monitor rt chart
* refactor(web ui):refactor config
* feat(web ui):support debug http api with console
---
web-ui/arthasWebConsole/.env.tunnel | 2 +
web-ui/arthasWebConsole/.env.ui | 2 +
web-ui/arthasWebConsole/package.json | 8 +-
web-ui/arthasWebConsole/src/App.vue | 22 +-
web-ui/arthasWebConsole/src/env.d.ts | 9 +-
web-ui/arthasWebConsole/ui/src/App.vue | 20 +-
web-ui/arthasWebConsole/ui/src/arthas.d.ts | 61 +-
.../ui/src/components/NavHeader.vue | 137 ++--
.../ui/src/components/dialog/ErrDialog.vue | 4 +-
.../ui/src/components/dialog/InputDialog.vue | 10 +-
.../src/components/dialog/SuccessDialog.vue | 4 +-
.../ui/src/components/dialog/WarnDialog.vue | 4 +-
.../ui/src/components/input/AutoComplete.vue | 2 +-
.../ui/src/components/input/MethodInput.vue | 15 +-
.../ui/src/components/routeTo/NavAside.vue | 57 --
.../ui/src/components/routeTo/SelectCmd.vue | 2 +-
.../ui/src/components/show/Enhancer.vue | 2 +
.../ui/src/machines/consoleMachine.ts | 11 +
.../ui/src/machines/perRequestMachine.ts | 31 +-
.../arthasWebConsole/ui/src/router/routes.ts | 46 +-
.../arthasWebConsole/ui/src/stores/fetch.ts | 2 +
.../arthasWebConsole/ui/src/stores/public.ts | 30 +-
.../arthasWebConsole/ui/src/views/Config.vue | 185 +----
.../arthasWebConsole/ui/src/views/Console.vue | 6 +-
.../ui/src/views/DashBoard.vue | 24 +-
.../ui/src/views/Synchronize.vue | 6 +-
.../ui/src/views/async/Monitor.vue | 48 +-
.../ui/src/views/async/Profiler.vue | 18 +-
.../ui/src/views/async/Stack.vue | 16 +-
.../ui/src/views/async/Trace.vue | 2 +-
.../ui/src/views/async/Tt.vue | 69 +-
.../ui/src/views/async/Watch.vue | 39 +-
.../ui/src/views/config/Jvm.vue | 67 ++
.../ui/src/views/config/Options.vue | 102 +++
.../ui/src/views/config/PerCounter.vue | 69 ++
.../ui/src/views/config/Sysenv.vue | 52 ++
.../ui/src/views/config/Sysprop.vue | 78 ++
.../ui/src/views/config/Vmoption.vue | 92 +++
.../ui/src/views/sync/ClassInfo.vue | 23 -
.../ui/src/views/sync/ClassLoader.vue | 51 +-
.../ui/src/views/sync/HeapDump.vue | 8 +-
.../ui/src/views/sync/Ognl.vue | 7 +-
.../ui/src/views/sync/Retransform.vue | 2 +-
.../ui/src/views/sync/Thread.vue | 58 +-
.../ui/src/views/sync/Vmtool.vue | 7 +-
web-ui/arthasWebConsole/vite.config.ts | 27 +-
web-ui/arthasWebConsole/yarn.lock | 760 +++++++++---------
47 files changed, 1408 insertions(+), 889 deletions(-)
create mode 100644 web-ui/arthasWebConsole/.env.tunnel
create mode 100644 web-ui/arthasWebConsole/.env.ui
delete mode 100644 web-ui/arthasWebConsole/ui/src/components/routeTo/NavAside.vue
create mode 100644 web-ui/arthasWebConsole/ui/src/views/config/Jvm.vue
create mode 100644 web-ui/arthasWebConsole/ui/src/views/config/Options.vue
create mode 100644 web-ui/arthasWebConsole/ui/src/views/config/PerCounter.vue
create mode 100644 web-ui/arthasWebConsole/ui/src/views/config/Sysenv.vue
create mode 100644 web-ui/arthasWebConsole/ui/src/views/config/Sysprop.vue
create mode 100644 web-ui/arthasWebConsole/ui/src/views/config/Vmoption.vue
diff --git a/web-ui/arthasWebConsole/.env.tunnel b/web-ui/arthasWebConsole/.env.tunnel
new file mode 100644
index 000000000..5aaf1f490
--- /dev/null
+++ b/web-ui/arthasWebConsole/.env.tunnel
@@ -0,0 +1,2 @@
+# NODE_ENV=production
+VITE_AGENT=true
\ No newline at end of file
diff --git a/web-ui/arthasWebConsole/.env.ui b/web-ui/arthasWebConsole/.env.ui
new file mode 100644
index 000000000..04da6f0fd
--- /dev/null
+++ b/web-ui/arthasWebConsole/.env.ui
@@ -0,0 +1,2 @@
+# NODE_ENV=production
+VITE_AGENT=false
\ No newline at end of file
diff --git a/web-ui/arthasWebConsole/package.json b/web-ui/arthasWebConsole/package.json
index 1b8e5e03d..f8032dde4 100644
--- a/web-ui/arthasWebConsole/package.json
+++ b/web-ui/arthasWebConsole/package.json
@@ -3,8 +3,10 @@
"private": false,
"version": "0.1.4",
"scripts": {
- "dev": "vite --port 8000",
- "build": "vue-tsc --noEmit && vite build",
+ "dev": "vite --port 8000 --mode ui",
+ "dev:tunnel": "vite --port 8000 --mode tunnel",
+ "build": "vue-tsc --noEmit && vite build --mode ui",
+ "build:tunnel": "vue-tsc --noEmit && vite build --mode tunnel",
"preview": "vite preview"
},
"dependencies": {
@@ -31,6 +33,6 @@
"tailwindcss": "^3.1.4",
"typescript": "^4.7.4",
"vite": "^2.9.9",
- "vue-tsc": "^0.34.7"
+ "vue-tsc": "1.0.8"
}
}
diff --git a/web-ui/arthasWebConsole/src/App.vue b/web-ui/arthasWebConsole/src/App.vue
index a2d4481d5..0e6ed4adf 100644
--- a/web-ui/arthasWebConsole/src/App.vue
+++ b/web-ui/arthasWebConsole/src/App.vue
@@ -2,7 +2,7 @@
import { onMounted, ref } from "vue";
import { Terminal } from "xterm"
import { FitAddon } from 'xterm-addon-fit';
-import {WebglAddon} from "xterm-addon-webgl"
+import { WebglAddon } from "xterm-addon-webgl"
let ws: WebSocket | undefined;
@@ -14,9 +14,11 @@ const ip = ref("")
const port = ref('')
const iframe = ref(true)
const fullSc = ref(true)
+const agentID = ref('')
+const isTunnel = import.meta.env.VITE_AGENT === 'true'
const fitAddon = new FitAddon();
const webglAddon = new WebglAddon();
-let xterm = new Terminal({allowProposedApi: true})
+let xterm = new Terminal({ allowProposedApi: true })
onMounted(() => {
ip.value = getUrlParam('ip') ?? window.location.hostname;
@@ -27,7 +29,7 @@ onMounted(() => {
startConnect(true);
window.addEventListener('resize', function () {
if (ws !== undefined && ws !== null) {
- const {cols, rows} = fitAddon.proposeDimensions()!
+ const { cols, rows } = fitAddon.proposeDimensions()!
ws.send(JSON.stringify({ action: 'resize', cols, rows: rows }));
fitAddon.fit();
}
@@ -56,7 +58,7 @@ function initWs(silent: boolean) {
let scrollback = getUrlParam('scrollback') ?? '0';
- const {cols, rows} = initXterm(scrollback)
+ const { cols, rows } = initXterm(scrollback)
xterm.onData(function (data) {
ws?.send(JSON.stringify({ action: 'read', data: data }))
});
@@ -85,7 +87,7 @@ function initXterm(scrollback: string) {
scrollback: isValidNumber(scrollNumber) ? scrollNumber : DEFAULT_SCROLL_BACK
});
xterm.loadAddon(fitAddon)
-
+
xterm.open(document.getElementById('terminal')!);
xterm.loadAddon(webglAddon)
@@ -136,8 +138,8 @@ function disconnect() {
function xtermFullScreen() {
var ele = document.getElementById('terminal-card')!;
requestFullScreen(ele);
- ele.onfullscreenchange = (e:Event)=>{
- fitAddon.fit()
+ ele.onfullscreenchange = (e: Event) => {
+ fitAddon.fit()
}
}
@@ -162,8 +164,8 @@ function requestFullScreen(element: HTMLElement) {