diff --git a/service-web/src/main/resources/static/common/info.js b/service-web/src/main/resources/static/common/info.js index 9696ddd..1bea7b7 100644 --- a/service-web/src/main/resources/static/common/info.js +++ b/service-web/src/main/resources/static/common/info.js @@ -2,5 +2,23 @@ function commonInfo() { return { // baseUrl: 'http://132.126.207.131:35690/hudi_services/service_web', baseUrl: '/hudi_services/service_web', + loki: { + hudi: { + url: 'http://132.126.207.125:35700', + datasource: 'f648174e-7593-45cf-8fe8-8f8d5cf0fdde', + }, + }, } +} + +function targetHudiSyncLokiUrlByAlias(flinkJobId) { + return `${commonInfo().loki.hudi.url}/explore?panes=%7B%22LWF%22:%7B%22datasource%22:%22${commonInfo().loki.hudi.datasource}%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22expr%22:%22%7Bapp%3D%5C%22hudi-sync%5C%22,%20flink_job_id%3D%5C%22${flinkJobId}%5C%22%7D%5Cn%7C%20regexp%20%5C%22%5C%5C%5C%5Cd%7B4%7D-%28%3FP%3Ctime%3E%5C%5C%5C%5Cd%7B2%7D-%5C%5C%5C%5Cd%7B2%7D%5C%5C%5C%5Cs%2A%5C%5C%5C%5Cd%7B2%7D:%5C%5C%5C%5Cd%7B2%7D:%5C%5C%5C%5Cd%7B2%7D%29.%2B%23@%23%5C%5C%5C%5Cs%2A:%5C%5C%5C%5Cs%2A%28%3FP%3Ccontent%3E%5B%5C%5C%5C%5Cw%5C%5C%5C%5CW%5D%2B%29%5C%22%5Cn%7C%20line_format%20%60%7B%7B.time%7D%7D%20%5B%7B%7B.host%7D%7D%5D%20%5B%7B%7B.level%7D%7D%5D%20%5B%7B%7B.app%7D%7D%5D%20%7B%7B.content%7D%7D%60%22,%22queryType%22:%22range%22,%22datasource%22:%7B%22type%22:%22loki%22,%22uid%22:%22f648174e-7593-45cf-8fe8-8f8d5cf0fdde%22%7D,%22editorMode%22:%22code%22%7D%5D,%22range%22:%7B%22from%22:%22now-1h%22,%22to%22:%22now%22%7D%7D%7D&schemaVersion=1&orgId=1` +} + +function targetHudiCompactionLokiUrlByAlias(alias) { + return `${commonInfo().loki.hudi.url}/explore?panes=%7B%22LWF%22:%7B%22datasource%22:%22${commonInfo().loki.hudi.datasource}%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22expr%22:%22%7Bapp%3D%5C%22hudi-compaction%5C%22,%20alias%3D%5C%22${alias}%5C%22%7D%5Cn%7C%20regexp%20%5C%22%5C%5C%5C%5Cd%7B4%7D-%28%3FP%3Ctime%3E%5C%5C%5C%5Cd%7B2%7D-%5C%5C%5C%5Cd%7B2%7D%5C%5C%5C%5Cs%2A%5C%5C%5C%5Cd%7B2%7D:%5C%5C%5C%5Cd%7B2%7D:%5C%5C%5C%5Cd%7B2%7D%29.%2B%23@%23%5C%5C%5C%5Cs%2A:%5C%5C%5C%5Cs%2A%28%3FP%3Ccontent%3E%5B%5C%5C%5C%5Cw%5C%5C%5C%5CW%5D%2B%29%5C%22%5Cn%7C%20line_format%20%60%7B%7B.time%7D%7D%20%5B%7B%7B.host%7D%7D%5D%20%5B%7B%7B.level%7D%7D%5D%20%5B%7B%7B.app%7D%7D%5D%20%7B%7B.content%7D%7D%60%22,%22queryType%22:%22range%22,%22datasource%22:%7B%22type%22:%22loki%22,%22uid%22:%22f648174e-7593-45cf-8fe8-8f8d5cf0fdde%22%7D,%22editorMode%22:%22code%22%7D%5D,%22range%22:%7B%22from%22:%22now-1h%22,%22to%22:%22now%22%7D%7D%7D&schemaVersion=1&orgId=1` +} + +function targetYarnApplicationLokiUrlByAppId(applicationId) { + return `${commonInfo().loki.hudi.url}/explore?panes=%7B%22LWF%22:%7B%22datasource%22:%22${commonInfo().loki.hudi.datasource}%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22expr%22:%22%7Bapp_id%3D%5C%22${applicationId}%5C%22%7D%5Cn%7C%20regexp%20%5C%22%5C%5C%5C%5Cd%7B4%7D-%28%3FP%3Ctime%3E%5C%5C%5C%5Cd%7B2%7D-%5C%5C%5C%5Cd%7B2%7D%5C%5C%5C%5Cs%2A%5C%5C%5C%5Cd%7B2%7D:%5C%5C%5C%5Cd%7B2%7D:%5C%5C%5C%5Cd%7B2%7D%29.%2B%23@%23%5C%5C%5C%5Cs%2A:%5C%5C%5C%5Cs%2A%28%3FP%3Ccontent%3E%5B%5C%5C%5C%5Cw%5C%5C%5C%5CW%5D%2B%29%5C%22%5Cn%7C%20line_format%20%60%7B%7B.time%7D%7D%20%5B%7B%7B.host%7D%7D%5D%20%5B%7B%7B.level%7D%7D%5D%20%5B%7B%7B.app%7D%7D%5D%20%7B%7B.content%7D%7D%60%22,%22queryType%22:%22range%22,%22datasource%22:%7B%22type%22:%22loki%22,%22uid%22:%22f648174e-7593-45cf-8fe8-8f8d5cf0fdde%22%7D,%22editorMode%22:%22code%22%7D%5D,%22range%22:%7B%22from%22:%22now-1h%22,%22to%22:%22now%22%7D%7D%7D&schemaVersion=1&orgId=1` } \ No newline at end of file diff --git a/service-web/src/main/resources/static/components/common.js b/service-web/src/main/resources/static/components/common.js index fd2fd2e..7435ef2 100644 --- a/service-web/src/main/resources/static/components/common.js +++ b/service-web/src/main/resources/static/components/common.js @@ -443,9 +443,38 @@ function yarnCrudColumns() { blank: true, }, { - label: '日志', - ...applicationLogDialog(), - } + disabledOn: '${id == null}', + disabledTip: '找不到id', + label: "日志", + type: "action", + level: "link", + tooltip: '打开Grafana日志', + onEvent: { + click: { + actions: [ + { + actionType: 'custom', + script: (context, doAction, event) => { + let isSyncApplication = context.props.data?.syncApplication ?? false + let isCompactionApplication = context.props.data?.compactionApplication ?? false + let flinkJobId = context.props.data?.flinkJobId ?? 0 + let alias = context.props.data?.alias ?? '' + let appId = context.props.data?.id ?? '' + let url = '' + if (isSyncApplication) { + url = targetHudiSyncLokiUrlByAlias(flinkJobId) + } else if (isCompactionApplication) { + url = targetHudiCompactionLokiUrlByAlias(alias) + } else { + url = targetYarnApplicationLokiUrlByAppId(appId) + } + window.open(url, '_blank') + }, + } + ] + } + } + }, ] } ]