From 583e602c91721af1a49f15df06917bcfdc969912 Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Mon, 13 Jan 2025 15:51:53 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fix:=20opentelemetry=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=8F=8A=E5=BC=95=E7=94=A8=E5=A4=84=E5=85=BC?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/src/api/index.js | 39 +++++++++++++++++-------------------- bklog/web/src/main.js | 32 +++++++++++++----------------- bklog/web/webpack.config.js | 5 +---- 3 files changed, 33 insertions(+), 43 deletions(-) diff --git a/bklog/web/src/api/index.js b/bklog/web/src/api/index.js index 2f2b7587e8..55c22645d8 100644 --- a/bklog/web/src/api/index.js +++ b/bklog/web/src/api/index.js @@ -38,7 +38,6 @@ import { makeMessage } from '@/common/util'; import i18n from '@/language/i18n'; import serviceList from '@/services/index.js'; import { showLoginModal } from '@blueking/login-modal'; -import { context, trace } from '@opentelemetry/api'; import axios from 'axios'; import { random } from '../common/util'; @@ -150,17 +149,15 @@ async function getPromise(method, url, data, userConfig = {}) { } promise = new Promise(async (resolve, reject) => { - context.with(trace.setSpan(context.active(), config.span), async () => { - try { - const axiosRequest = http.$request.request(url, data, config); - const response = await axiosRequest; - Object.assign(config, response.config || {}); - handleResponse({ config, response, resolve, reject }); - } catch (error) { - Object.assign(config, error.config); - reject(error); + try { + const axiosRequest = http.$request.request(url, data, config); + const response = await axiosRequest; + Object.assign(config, response.config || {}); + handleResponse({ config, response, resolve, reject }); + } catch (error) { + Object.assign(config, error.config); + reject(error); } - }); }).catch(error => handleReject(error, config)); // 添加请求队列 @@ -210,8 +207,9 @@ function handleReject(error, config) { // const service = getHttpService(url, serviceList); // const ajaxUrl = service ? service.url : ''; // console.error('Request error UrlPath:', ajaxUrl); - const traceparent = config.span._spanContext.traceId; + // const traceparent = config.span._spanContext.traceId; + const traceparent = config?.headers?.traceparent; http.queue.delete(config.requestId); // 捕获 http status 错误 @@ -288,13 +286,12 @@ function handleReject(error, config) { * @return {Promise} 本次 http 请求的 Promise */ function initConfig(method, url, userConfig) { - // const traceparent = `00-${random(32, 'abcdef0123456789')}-${random(16, 'abcdef0123456789')}-01`; - // const copyUserConfig = Object.assign({}, userConfig ?? {}); - // copyUserConfig.headers = { - // ...(userConfig.headers ?? {}), - // traceparent, - // }; - + const traceparent = `00-${random(32, 'abcdef0123456789')}-${random(16, 'abcdef0123456789')}-01`; + const copyUserConfig = Object.assign({}, userConfig ?? {}); + copyUserConfig.headers = { + ...(userConfig.headers ?? {}), + traceparent, + }; const defaultConfig = { ...getCancelToken(), // http 请求默认 id @@ -313,9 +310,9 @@ function initConfig(method, url, userConfig) { cancelPrevious: true, // 接口报错是否弹bkMessage弹窗 catchIsShowMessage: true, - span: trace.getTracer('bk-log').startSpan('api'), + // span: trace.getTracer('bk-log').startSpan('api'), }; - return Object.assign(defaultConfig, userConfig); + return Object.assign(defaultConfig, copyUserConfig); } /** diff --git a/bklog/web/src/main.js b/bklog/web/src/main.js index 0afd44074a..0939bb9e23 100644 --- a/bklog/web/src/main.js +++ b/bklog/web/src/main.js @@ -31,11 +31,7 @@ import Vue from 'vue'; import LogButton from '@/components/log-button'; import i18n from '@/language/i18n'; import docsLinkMixin from '@/mixins/docs-link-mixin'; -import { ZoneContextManager } from '@opentelemetry/context-zone'; -import { registerInstrumentations } from '@opentelemetry/instrumentation'; -import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request'; -// 接入OTLP -import { WebTracerProvider } from '@opentelemetry/sdk-trace-web'; + import { debounce } from 'lodash'; import App from './App'; @@ -50,20 +46,20 @@ import store from './store'; import './static/style.css'; -const provider = new WebTracerProvider(); -provider.register({ - contextManager: new ZoneContextManager(), -}); -registerInstrumentations({ - instrumentations: [ - new XMLHttpRequestInstrumentation({ - // propagateTraceHeaderCorsUrls: new RegExp('.*'), - }), - ], -}); -const tracer = provider.getTracer('bk-log'); +// const provider = new WebTracerProvider(); +// provider.register({ +// contextManager: new ZoneContextManager(), +// }); +// registerInstrumentations({ +// instrumentations: [ +// new XMLHttpRequestInstrumentation({ +// // propagateTraceHeaderCorsUrls: new RegExp('.*'), +// }), +// ], +// }); +// const tracer = provider.getTracer('bk-log'); Vue.prototype.$renderHeader = renderHeader; -Vue.prototype.tracer = tracer; +// Vue.prototype.tracer = tracer; try { const id = window.TAM_AEGIS_KEY; diff --git a/bklog/web/webpack.config.js b/bklog/web/webpack.config.js index 4151c99045..7b238915c2 100644 --- a/bklog/web/webpack.config.js +++ b/bklog/web/webpack.config.js @@ -83,10 +83,7 @@ const logPluginConfig = { window.BCS_WEB_CONSOLE_DOMAIN = '\${BCS_WEB_CONSOLE_DOMAIN}' window.VERSION = '\${VERSION}' window.BK_SHARED_RES_URL = '\${BK_SHARED_RES_URL}' - - % if TAM_AEGIS_KEY != "" : - - % endif\n`, + `, }; if (fs.existsSync(path.resolve(__dirname, './local.settings.js'))) { const localConfig = require('./local.settings'); From 2bffb15e05b03e6bfcde18eac643f5895cea11f3 Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Mon, 13 Jan 2025 17:41:30 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix:=20opentelemetry=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=8F=8A=E5=BC=95=E7=94=A8=E5=A4=84=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=20#=20Reviewed,=20transaction=20id:=2029123?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/package-lock.json | 293 +----------------------------------- bklog/web/package.json | 8 +- bklog/web/src/api/index.js | 2 - bklog/web/src/main.js | 13 -- 4 files changed, 3 insertions(+), 313 deletions(-) diff --git a/bklog/web/package-lock.json b/bklog/web/package-lock.json index edf3f72149..3f330d0c9c 100644 --- a/bklog/web/package-lock.json +++ b/bklog/web/package-lock.json @@ -27,13 +27,6 @@ "@codemirror/language": "6.10.2", "@codemirror/state": "6.4.1", "@codemirror/view": "6.33.0", - "@opentelemetry/api": "1.8.0", - "@opentelemetry/context-zone": "1.23.0", - "@opentelemetry/instrumentation": "0.50.0", - "@opentelemetry/instrumentation-http": "0.50.0", - "@opentelemetry/instrumentation-xml-http-request": "0.50.0", - "@opentelemetry/sdk-trace-base": "1.23.0", - "@opentelemetry/sdk-trace-web": "1.23.0", "@vue/babel-helper-vue-jsx-merge-props": "1.4.0", "@vue/babel-preset-jsx": "1.4.0", "axios": "1.6.0", @@ -55,7 +48,6 @@ "monaco-editor": "0.33.0", "monaco-editor-webpack-plugin": "7.0.1", "monaco-yaml": "4.0.0-alpha.3", - "pixi.js": "^8.6.6", "postcss-loader": "8.1.1", "qs": "6.11.2", "resize-detector": "0.3.0", @@ -4211,171 +4203,6 @@ "node": ">= 8" } }, - "node_modules/@opentelemetry/api": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", - "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-logs": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.50.0.tgz", - "integrity": "sha512-JdZuKrhOYggqOpUljAq4WWNi5nB10PmgoF0y2CvedLGXd0kSawb/UBnWT8gg1ND3bHCNHStAIVT0ELlxJJRqrA==", - "dependencies": { - "@opentelemetry/api": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/context-zone": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone/-/context-zone-1.23.0.tgz", - "integrity": "sha512-7piNTrpH+gZNMDDOHIJXCSwp0Xslh3R96HWH5HwXw+4PykR4+jVoXvd6jziQxudX9rFAfu2B64A10DHs4ZWrfA==", - "dependencies": { - "@opentelemetry/context-zone-peer-dep": "1.23.0", - "zone.js": "^0.11.0 || ^0.13.0 || ^0.14.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@opentelemetry/context-zone-peer-dep": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-zone-peer-dep/-/context-zone-peer-dep-1.23.0.tgz", - "integrity": "sha512-3ia5w2y3CGHIhMSggttliGbeRBWclIyMMXdfRCcit1NHg1ocieA9qYxyUEetbOvPrQpoti3O3k+5eyQUv7r8nw==", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0", - "zone.js": "^0.10.2 || ^0.11.0 || ^0.13.0 || ^0.14.0" - } - }, - "node_modules/@opentelemetry/core": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.23.0.tgz", - "integrity": "sha512-hdQ/a9TMzMQF/BO8Cz1juA43/L5YGtCSiKoOHmrTEf7VMDAZgy8ucpWx3eQTnQ3gBloRcWtzvcrMZABC3PTSKQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.23.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.50.0.tgz", - "integrity": "sha512-bhGhbJiZKpuu7wTaSak4hyZcFPlnDeuSF/2vglze8B4w2LubcSbbOnkVTzTs5SXtzh4Xz8eRjaNnAm+u2GYufQ==", - "dependencies": { - "@opentelemetry/api-logs": "0.50.0", - "@types/shimmer": "^1.0.2", - "import-in-the-middle": "1.7.1", - "require-in-the-middle": "^7.1.1", - "semver": "^7.5.2", - "shimmer": "^1.2.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.50.0.tgz", - "integrity": "sha512-bsd6Nv0FtN9C6M6vX/kgPzvJY9UhJc4CZZNvqDbsfVQv3/MWvPrYgthf41AhrehqeDnpfn/QGzNKtdWUduGanQ==", - "dependencies": { - "@opentelemetry/core": "1.23.0", - "@opentelemetry/instrumentation": "0.50.0", - "@opentelemetry/semantic-conventions": "1.23.0", - "semver": "^7.5.2" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.3.0" - } - }, - "node_modules/@opentelemetry/instrumentation-xml-http-request": { - "version": "0.50.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-xml-http-request/-/instrumentation-xml-http-request-0.50.0.tgz", - "integrity": "sha512-o9z6SDQByqc3GvmUcy6Npt/SAIrv2Pk0Hm0Hl54B3Ny8WUrTsrlt6MULx8d+EjuifE4uVo8op8DekmvKJ1FHoQ==", - "dependencies": { - "@opentelemetry/core": "1.23.0", - "@opentelemetry/instrumentation": "0.50.0", - "@opentelemetry/sdk-trace-web": "1.23.0", - "@opentelemetry/semantic-conventions": "1.23.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.23.0.tgz", - "integrity": "sha512-iPRLfVfcEQynYGo7e4Di+ti+YQTAY0h5mQEUJcHlU9JOqpb4x965O6PZ+wMcwYVY63G96KtdS86YCM1BF1vQZg==", - "dependencies": { - "@opentelemetry/core": "1.23.0", - "@opentelemetry/semantic-conventions": "1.23.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.23.0.tgz", - "integrity": "sha512-PzBmZM8hBomUqvCddF/5Olyyviayka44O5nDWq673np3ctnvwMOvNrsUORZjKja1zJbwEuD9niAGbnVrz3jwRQ==", - "dependencies": { - "@opentelemetry/core": "1.23.0", - "@opentelemetry/resources": "1.23.0", - "@opentelemetry/semantic-conventions": "1.23.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-web": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.23.0.tgz", - "integrity": "sha512-tx9N3hIkd6k567BeujBnpXYdhu3ptYVk0ZkhdcjyQ3I8ZDJ+/JkVtaVNLAuf8hp1buTqNDmxSipALMxEmK2fnw==", - "dependencies": { - "@opentelemetry/core": "1.23.0", - "@opentelemetry/sdk-trace-base": "1.23.0", - "@opentelemetry/semantic-conventions": "1.23.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.9.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.23.0.tgz", - "integrity": "sha512-MiqFvfOzfR31t8cc74CTP1OZfz7MbqpAnLCra8NqQoaHJX6ncIRTdYOQYBDQ2uFISDq0WY8Y9dDTWvsgzzBYRg==", - "engines": { - "node": ">=14" - } - }, "node_modules/@parcel/watcher": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", @@ -4430,11 +4257,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@pixi/colord": { - "version": "2.9.6", - "resolved": "https://mirrors.tencent.com/npm/@pixi/colord/-/colord-2.9.6.tgz", - "integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==" - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -4572,16 +4394,6 @@ "@types/node": "*" } }, - "node_modules/@types/css-font-loading-module": { - "version": "0.0.12", - "resolved": "https://mirrors.tencent.com/npm/@types/css-font-loading-module/-/css-font-loading-module-0.0.12.tgz", - "integrity": "sha512-x2tZZYkSxXqWvTDgveSynfjq/T2HyiZHXb00j/+gy19yp70PHCizM48XFdjBCWH7eHBD0R5i/pw9yMBP/BH5uA==" - }, - "node_modules/@types/earcut": { - "version": "2.1.4", - "resolved": "https://mirrors.tencent.com/npm/@types/earcut/-/earcut-2.1.4.tgz", - "integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ==" - }, "node_modules/@types/echarts": { "version": "4.9.22", "resolved": "https://registry.npmjs.org/@types/echarts/-/echarts-4.9.22.tgz", @@ -4780,11 +4592,6 @@ "@types/send": "*" } }, - "node_modules/@types/shimmer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", - "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" - }, "node_modules/@types/sockjs": { "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", @@ -5446,11 +5253,6 @@ "@xtuc/long": "4.2.2" } }, - "node_modules/@webgpu/types": { - "version": "0.1.52", - "resolved": "https://mirrors.tencent.com/npm/@webgpu/types/-/types-0.1.52.tgz", - "integrity": "sha512-eI883Nlag2hGIkhXxAnq8s4APpqXWuPL3Gbn2ghiU12UjLvfCbVqHK4XfXl3eLRTatqcMmeK7jws7IwWsGfbzw==" - }, "node_modules/@webpack-cli/configtest": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", @@ -5492,14 +5294,6 @@ } } }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://mirrors.tencent.com/npm/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -5585,15 +5379,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "deprecated": "package has been renamed to acorn-import-attributes", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -6658,11 +6443,6 @@ "node": ">=8" } }, - "node_modules/cjs-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", - "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==" - }, "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -8277,11 +8057,6 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://mirrors.tencent.com/npm/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -9195,7 +8970,8 @@ "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true }, "node_modules/events": { "version": "3.3.0", @@ -10775,17 +10551,6 @@ "node": ">=4" } }, - "node_modules/import-in-the-middle": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.7.1.tgz", - "integrity": "sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==", - "dependencies": { - "acorn": "^8.8.2", - "acorn-import-assertions": "^1.9.0", - "cjs-module-lexer": "^1.2.2", - "module-details-from-path": "^1.0.3" - } - }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -11564,11 +11329,6 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/ismobilejs": { - "version": "1.1.1", - "resolved": "https://mirrors.tencent.com/npm/ismobilejs/-/ismobilejs-1.1.1.tgz", - "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==" - }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", @@ -12699,11 +12459,6 @@ "node": ">=10" } }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, "node_modules/monaco-editor": { "version": "0.33.0", "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.33.0.tgz", @@ -13661,11 +13416,6 @@ "node": ">=0.10.0" } }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://mirrors.tencent.com/npm/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==" - }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -13833,22 +13583,6 @@ "node": ">= 6" } }, - "node_modules/pixi.js": { - "version": "8.6.6", - "resolved": "https://mirrors.tencent.com/npm/pixi.js/-/pixi.js-8.6.6.tgz", - "integrity": "sha512-o5pw7G2yuIrnBx0G4npBlmFp+XGNcapI/Ufs62rRj/4XKxc1Zo74YJr/BtEXcXTraTKd+pQvYOLvnfxRjxBMvQ==", - "dependencies": { - "@pixi/colord": "^2.9.6", - "@types/css-font-loading-module": "^0.0.12", - "@types/earcut": "^2.1.4", - "@webgpu/types": "^0.1.40", - "@xmldom/xmldom": "^0.8.10", - "earcut": "^2.2.4", - "eventemitter3": "^5.0.1", - "ismobilejs": "^1.1.1", - "parse-svg-path": "^0.1.2" - } - }, "node_modules/pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -16422,19 +16156,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-in-the-middle": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.4.0.tgz", - "integrity": "sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==", - "dependencies": { - "debug": "^4.3.5", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -17071,11 +16792,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -21302,11 +21018,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zone.js": { - "version": "0.14.10", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", - "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==" - }, "node_modules/zrender": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.0.tgz", diff --git a/bklog/web/package.json b/bklog/web/package.json index 586f34711f..2a4be4ce01 100644 --- a/bklog/web/package.json +++ b/bklog/web/package.json @@ -36,13 +36,7 @@ "@codemirror/language": "6.10.2", "@codemirror/state": "6.4.1", "@codemirror/view": "6.33.0", - "@opentelemetry/api": "1.8.0", - "@opentelemetry/context-zone": "1.23.0", - "@opentelemetry/instrumentation": "0.50.0", - "@opentelemetry/instrumentation-http": "0.50.0", - "@opentelemetry/instrumentation-xml-http-request": "0.50.0", - "@opentelemetry/sdk-trace-base": "1.23.0", - "@opentelemetry/sdk-trace-web": "1.23.0", + "@vue/babel-helper-vue-jsx-merge-props": "1.4.0", "@vue/babel-preset-jsx": "1.4.0", "axios": "1.6.0", diff --git a/bklog/web/src/api/index.js b/bklog/web/src/api/index.js index 55c22645d8..da2a918da5 100644 --- a/bklog/web/src/api/index.js +++ b/bklog/web/src/api/index.js @@ -207,7 +207,6 @@ function handleReject(error, config) { // const service = getHttpService(url, serviceList); // const ajaxUrl = service ? service.url : ''; // console.error('Request error UrlPath:', ajaxUrl); - // const traceparent = config.span._spanContext.traceId; const traceparent = config?.headers?.traceparent; http.queue.delete(config.requestId); @@ -310,7 +309,6 @@ function initConfig(method, url, userConfig) { cancelPrevious: true, // 接口报错是否弹bkMessage弹窗 catchIsShowMessage: true, - // span: trace.getTracer('bk-log').startSpan('api'), }; return Object.assign(defaultConfig, copyUserConfig); } diff --git a/bklog/web/src/main.js b/bklog/web/src/main.js index 0939bb9e23..b3d62b57f2 100644 --- a/bklog/web/src/main.js +++ b/bklog/web/src/main.js @@ -46,20 +46,7 @@ import store from './store'; import './static/style.css'; -// const provider = new WebTracerProvider(); -// provider.register({ -// contextManager: new ZoneContextManager(), -// }); -// registerInstrumentations({ -// instrumentations: [ -// new XMLHttpRequestInstrumentation({ -// // propagateTraceHeaderCorsUrls: new RegExp('.*'), -// }), -// ], -// }); -// const tracer = provider.getTracer('bk-log'); Vue.prototype.$renderHeader = renderHeader; -// Vue.prototype.tracer = tracer; try { const id = window.TAM_AEGIS_KEY; From f3f5d88446457389dec41820d732ed099d029850 Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Thu, 23 Jan 2025 17:15:35 +0800 Subject: [PATCH 3/8] =?UTF-8?q?merge:=20=E5=90=88=E5=B9=B6=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/src/store/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bklog/web/src/store/index.js b/bklog/web/src/store/index.js index 30317529d7..f9a6ee4cc4 100644 --- a/bklog/web/src/store/index.js +++ b/bklog/web/src/store/index.js @@ -41,7 +41,8 @@ import { getStorageIndexItem, } from '@/common/util'; import { handleTransformToTimestamp } from '@/components/time-range/utils'; -import axios from 'axios'; +// import axios from 'axios'; +import { axiosInstance } from '@/api'; import Vuex from 'vuex'; import { deepClone } from '../components/monitor-echarts/utils'; @@ -1201,7 +1202,7 @@ const store = new Vuex.Store({ }; } - return axios(params) + return axiosInstance(params) .then(resp => { if (resp.data && !resp.message) { return readBlobRespToJson(resp.data).then(({ code, data, result, message }) => { From e9a581e4bfeb35cc86c461449b6d91d7d56af801 Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Thu, 23 Jan 2025 17:15:56 +0800 Subject: [PATCH 4/8] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9axios=E9=80=BB?= =?UTF-8?q?=E8=BE=91=20#=20Reviewed,=20transaction=20id:=2029831?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/src/api/index.js | 29 ++++++++++++++++++++--------- bklog/web/src/common/util.js | 14 +++++++------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/bklog/web/src/api/index.js b/bklog/web/src/api/index.js index 11808f4b75..ee53f23e68 100644 --- a/bklog/web/src/api/index.js +++ b/bklog/web/src/api/index.js @@ -69,11 +69,11 @@ axiosInstance.interceptors.request.use( if (window.IS_EXTERNAL && JSON.parse(window.IS_EXTERNAL) && store.state.spaceUid) { config.headers['X-Bk-Space-Uid'] = store.state.spaceUid; } - if (window.__IS_MONITOR_COMPONENT__) { + // if (window.__IS_MONITOR_COMPONENT__) { // 监控上层并没有使用 OT 这里直接自己生成traceparent id const traceparent = `00-${random(32, 'abcdef0123456789')}-${random(16, 'abcdef0123456789')}-01`; config.headers.Traceparent = traceparent; - } + // } return config; }, error => Promise.reject(error), @@ -83,8 +83,19 @@ axiosInstance.interceptors.request.use( * response interceptor */ axiosInstance.interceptors.response.use( - response => response.data, - error => Promise.reject(error), + response => { + // 打印请求后的 traceparent + // const traceparent = response.config.headers.Traceparent; + // console.log('请求后的 traceparent:', response); + + return response.data; + }, + error => { + // 如果请求失败,打印traceparent + const traceparent = error.config && error.config.headers.Traceparent; + console.error('请求失败时的 traceparent:', traceparent); + return Promise.reject(error); + } ); const http = { @@ -285,12 +296,12 @@ function handleReject(error, config) { * @return {Promise} 本次 http 请求的 Promise */ function initConfig(method, url, userConfig) { - const traceparent = `00-${random(32, 'abcdef0123456789')}-${random(16, 'abcdef0123456789')}-01`; + // const traceparent = `00-${random(32, 'abcdef0123456789')}-${random(16, 'abcdef0123456789')}-01`; const copyUserConfig = Object.assign({}, userConfig ?? {}); - copyUserConfig.headers = { - ...(userConfig.headers ?? {}), - traceparent, - }; + // copyUserConfig.headers = { + // ...(userConfig.headers ?? {}), + // traceparent, + // }; const defaultConfig = { ...getCancelToken(), // http 请求默认 id diff --git a/bklog/web/src/common/util.js b/bklog/web/src/common/util.js index 988d634e05..939ef9b8b8 100644 --- a/bklog/web/src/common/util.js +++ b/bklog/web/src/common/util.js @@ -669,13 +669,13 @@ export const makeMessage = (message, traceId) => { ${traceId || '--'} : ${message} `; - message && - console.log(` - ------------------【日志】------------------ - 【TraceID】:${traceId} - 【Message】:${message} - ---------------------------------------------- - `); + // message && + // console.log(` + // ------------------【日志】------------------ + // 【TraceID】:${traceId} + // 【Message】:${message} + // ---------------------------------------------- + // `); return resMsg; }; From f990c91882498e9bf49b38e188f0d149e66b4b26 Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Thu, 23 Jan 2025 17:23:36 +0800 Subject: [PATCH 5/8] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9axios=E9=80=BB?= =?UTF-8?q?=E8=BE=91=20#=20Reviewed,=20transaction=20id:=2029832?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/src/api/index.js | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/bklog/web/src/api/index.js b/bklog/web/src/api/index.js index ee53f23e68..2473a09031 100644 --- a/bklog/web/src/api/index.js +++ b/bklog/web/src/api/index.js @@ -83,19 +83,8 @@ axiosInstance.interceptors.request.use( * response interceptor */ axiosInstance.interceptors.response.use( - response => { - // 打印请求后的 traceparent - // const traceparent = response.config.headers.Traceparent; - // console.log('请求后的 traceparent:', response); - - return response.data; - }, - error => { - // 如果请求失败,打印traceparent - const traceparent = error.config && error.config.headers.Traceparent; - console.error('请求失败时的 traceparent:', traceparent); - return Promise.reject(error); - } + response => response.data, + error => Promise.reject(error), ); const http = { From 63ee5da0e5aa8b776c95d4ad33d52dff2c10703e Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Fri, 7 Feb 2025 10:30:20 +0800 Subject: [PATCH 6/8] =?UTF-8?q?feat:=20=E5=93=8D=E5=BA=94=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=99=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/src/api/index.js | 42 ++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/bklog/web/src/api/index.js b/bklog/web/src/api/index.js index 2473a09031..73554388fb 100644 --- a/bklog/web/src/api/index.js +++ b/bklog/web/src/api/index.js @@ -83,8 +83,39 @@ axiosInstance.interceptors.request.use( * response interceptor */ axiosInstance.interceptors.response.use( - response => response.data, - error => Promise.reject(error), + response => { + // const traceparent = response.config.headers.Traceparent || response.config.headers.traceparent; + // console.log('请求后的 traceparent:', traceparent); + + new Promise(async (resolve, reject) => { + try { + const config = initConfig('', '', {}); + handleResponse({ config, response: response.data, resolve, reject }); + } catch (error) { + console.error('处理响应时出错:', error); + return reject(error); + } + }).catch(error => { + console.log(error); + + const config = initConfig('', '', {}); + // handleReject(error, config); + // return Promise.reject(error); // 确保错误被传递下去 + }); + return response.data + }, + error => { + console.log('jinlaile'); + + const traceparent = error.config && (error.config.headers.Traceparent || error.config.headers.traceparent); + console.error('请求失败时的 traceparent:', traceparent); + + // 直接调用 handleReject 处理网络错误或其他 Axios 错误 + const config = initConfig('', '', {}); + handleReject(error, config); + + return Promise.reject(error); + } ); const http = { @@ -152,13 +183,16 @@ async function getPromise(method, url, data, userConfig = {}) { try { const axiosRequest = http.$request.request(url, data, config); const response = await axiosRequest; + // console.log(response); + Object.assign(config, response.config || {}); handleResponse({ config, response, resolve, reject }); } catch (error) { Object.assign(config, error.config); reject(error); - } - }).catch(error => handleReject(error, config)); + } + }) + // .catch(error => handleReject(error, config)); // 添加请求队列 http.queue.set(config); From e19f1a338a44d270c1bc31f4fa8588839d2c932e Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Fri, 7 Feb 2025 19:54:31 +0800 Subject: [PATCH 7/8] =?UTF-8?q?feat:=20=E5=93=8D=E5=BA=94=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=99=A8=E4=BF=AE=E6=94=B9=20#=20Reviewed,=20transact?= =?UTF-8?q?ion=20id:=2029914?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/src/api/index.js | 47 +++++++++++++----------------------- bklog/web/src/common/util.js | 19 +++++++++++++++ 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/bklog/web/src/api/index.js b/bklog/web/src/api/index.js index 73554388fb..58d63c3d6d 100644 --- a/bklog/web/src/api/index.js +++ b/bklog/web/src/api/index.js @@ -34,12 +34,11 @@ import Vue from 'vue'; import { messageError } from '@/common/bkmagic'; import { bus } from '@/common/bus'; -import { makeMessage } from '@/common/util'; +import { makeMessage, blobToJson } from '@/common/util'; import i18n from '@/language/i18n'; import serviceList from '@/services/index.js'; import { showLoginModal } from '@blueking/login-modal'; import axios from 'axios'; - import { random } from '../common/util'; import HttpRequst from './_httpRequest'; import CachedPromise from './cached-promise'; @@ -70,9 +69,9 @@ axiosInstance.interceptors.request.use( config.headers['X-Bk-Space-Uid'] = store.state.spaceUid; } // if (window.__IS_MONITOR_COMPONENT__) { - // 监控上层并没有使用 OT 这里直接自己生成traceparent id - const traceparent = `00-${random(32, 'abcdef0123456789')}-${random(16, 'abcdef0123456789')}-01`; - config.headers.Traceparent = traceparent; + // 监控上层并没有使用 OT 这里直接自己生成traceparent id + const traceparent = `00-${random(32, 'abcdef0123456789')}-${random(16, 'abcdef0123456789')}-01`; + config.headers.Traceparent = traceparent; // } return config; }, @@ -83,38 +82,27 @@ axiosInstance.interceptors.request.use( * response interceptor */ axiosInstance.interceptors.response.use( - response => { - // const traceparent = response.config.headers.Traceparent || response.config.headers.traceparent; - // console.log('请求后的 traceparent:', traceparent); - + async response => { + const responseCopy = response.data instanceof Blob? await blobToJson(response.data): response.data + const traceparent = response.config.headers.Traceparent || response.config.headers.traceparent; + const config = initConfig('', '', {headers:{traceparent}}); new Promise(async (resolve, reject) => { try { - const config = initConfig('', '', {}); - handleResponse({ config, response: response.data, resolve, reject }); + handleResponse({ config, response: responseCopy, resolve, reject }); } catch (error) { - console.error('处理响应时出错:', error); return reject(error); } - }).catch(error => { - console.log(error); - - const config = initConfig('', '', {}); - // handleReject(error, config); - // return Promise.reject(error); // 确保错误被传递下去 + }).catch(async error => { + await handleReject(error, config); + }).catch(rejectError => { + console.error('处理拒绝时出错:', rejectError); }); return response.data }, error => { - console.log('jinlaile'); - const traceparent = error.config && (error.config.headers.Traceparent || error.config.headers.traceparent); console.error('请求失败时的 traceparent:', traceparent); - - // 直接调用 handleReject 处理网络错误或其他 Axios 错误 - const config = initConfig('', '', {}); - handleReject(error, config); - - return Promise.reject(error); + return error } ); @@ -183,16 +171,15 @@ async function getPromise(method, url, data, userConfig = {}) { try { const axiosRequest = http.$request.request(url, data, config); const response = await axiosRequest; - // console.log(response); - Object.assign(config, response.config || {}); handleResponse({ config, response, resolve, reject }); } catch (error) { Object.assign(config, error.config); reject(error); } - }) - // .catch(error => handleReject(error, config)); + }).catch( + // error => handleReject(error, config) + ); // 添加请求队列 http.queue.set(config); diff --git a/bklog/web/src/common/util.js b/bklog/web/src/common/util.js index 939ef9b8b8..22090c4587 100644 --- a/bklog/web/src/common/util.js +++ b/bklog/web/src/common/util.js @@ -575,7 +575,26 @@ export function readBlobResponse(response) { export function readBlobRespToJson(resp) { return readBlobResponse(resp).then(resText => Promise.resolve(JSONBigNumber.parse(resText))); } +export function blobToJson(blob) { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + + reader.onload = function(event) { + try { + const jsonObject = JSON.parse(event.target.result); + resolve(jsonObject); + } catch (error) { + reject(new Error("Failed to parse JSON: " + error.message)); + } + }; + reader.onerror = function() { + reject(new Error("Failed to read blob")); + }; + + reader.readAsText(blob); + }); +} export function bigNumberToString(value) { // eslint-disable-next-line @typescript-eslint/prefer-optional-chain return (value || {})._isBigNumber ? (value.toString().length < 16 ? Number(value) : value.toString()) : value; From e147e1fc5606714d35fd99322829bc1c907fda05 Mon Sep 17 00:00:00 2001 From: jidanjuan Date: Fri, 7 Feb 2025 20:01:44 +0800 Subject: [PATCH 8/8] =?UTF-8?q?feat:=20=E5=93=8D=E5=BA=94=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=99=A8=E4=BF=AE=E6=94=B9=20#=20Reviewed,=20transact?= =?UTF-8?q?ion=20id:=2029915?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bklog/web/src/api/index.js | 7 +------ bklog/web/src/common/util.js | 14 +++++++------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/bklog/web/src/api/index.js b/bklog/web/src/api/index.js index 58d63c3d6d..204427b822 100644 --- a/bklog/web/src/api/index.js +++ b/bklog/web/src/api/index.js @@ -95,15 +95,10 @@ axiosInstance.interceptors.response.use( }).catch(async error => { await handleReject(error, config); }).catch(rejectError => { - console.error('处理拒绝时出错:', rejectError); }); return response.data }, - error => { - const traceparent = error.config && (error.config.headers.Traceparent || error.config.headers.traceparent); - console.error('请求失败时的 traceparent:', traceparent); - return error - } + error => error ); const http = { diff --git a/bklog/web/src/common/util.js b/bklog/web/src/common/util.js index 22090c4587..a1b38cd985 100644 --- a/bklog/web/src/common/util.js +++ b/bklog/web/src/common/util.js @@ -688,13 +688,13 @@ export const makeMessage = (message, traceId) => { ${traceId || '--'} : ${message} `; - // message && - // console.log(` - // ------------------【日志】------------------ - // 【TraceID】:${traceId} - // 【Message】:${message} - // ---------------------------------------------- - // `); + message && + console.log(` + ------------------【日志】------------------ + 【TraceID】:${traceId} + 【Message】:${message} + ---------------------------------------------- + `); return resMsg; };