From 3315e9dab1fe89ca991e56eed95a89261c455ddd Mon Sep 17 00:00:00 2001 From: teodosii Date: Thu, 22 Dec 2022 15:06:55 +0200 Subject: [PATCH] just promises? dev dependency type reuse from sdk package --- grafana-plugin/package.json | 9 ++-- grafana-plugin/src/network/index.ts | 64 ++++++++++++++--------------- grafana-plugin/src/utils/faro.ts | 3 +- grafana-plugin/yarn.lock | 18 ++++---- 4 files changed, 46 insertions(+), 48 deletions(-) diff --git a/grafana-plugin/package.json b/grafana-plugin/package.json index 122584a4..ee4efd6f 100644 --- a/grafana-plugin/package.json +++ b/grafana-plugin/package.json @@ -40,9 +40,6 @@ "author": "Grafana Labs", "license": "Apache-2.0", "devDependencies": { - "@babel/preset-env": "^7.18.10", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-decorators": "^7.20.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", @@ -54,6 +51,10 @@ "@babel/plugin-transform-react-constant-elements": "^7.18.12", "@babel/plugin-transform-runtime": "^7.19.6", "@babel/plugin-transform-typescript": "^7.18.12", + "@babel/preset-env": "^7.18.10", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@grafana/eslint-config": "^5.0.0", "@grafana/toolkit": "^9.2.4", "@jest/globals": "^27.5.1", "@testing-library/jest-dom": "^5.16.5", @@ -102,8 +103,6 @@ }, "dependencies": { "@grafana/data": "^9.2.4", - "@grafana/eslint-config": "^5.0.0", - "@grafana/faro-core": " ^1.0.0-beta4", "@grafana/faro-web-sdk": "^1.0.0-beta4", "@grafana/faro-web-tracing": "^1.0.0-beta4", "@grafana/runtime": "9.3.0-beta1", diff --git a/grafana-plugin/src/network/index.ts b/grafana-plugin/src/network/index.ts index 29b9bb2e..e9c1930e 100644 --- a/grafana-plugin/src/network/index.ts +++ b/grafana-plugin/src/network/index.ts @@ -51,47 +51,47 @@ export const makeRequest = async (path: string, config: RequestConfig) span.setAttribute(SemanticAttributes.HTTP_METHOD, method); } - try { - // OTEL requests + return new Promise((resolve, reject) => { otel.context.with(otel.trace.setSpan(otel.context.active(), span), async () => { FaroHelper.faro.api.pushEvent('Sending request', { url }); - const response = await instance({ + instance({ method, url, params, data, validateStatus, - }); - - FaroHelper.faro.api.pushEvent('Request completed', { url }); - return response.data as RT; + }) + .then((response) => { + FaroHelper.faro.api.pushEvent('Request completed', { url }); + span.end(); + resolve(response.data as RT); + }) + .catch((ex) => { + FaroHelper.faro.api.pushEvent('Request failed', { url }); + FaroHelper.faro.api.pushError(ex); + span.setStatus({ code: SpanStatusCode.ERROR }); + span.end(); + reject(ex); + }); }); - } catch (ex) { - FaroHelper.faro.api.pushEvent('Request failed', { url }); - FaroHelper.faro.api.pushError(ex); - span.setStatus({ code: SpanStatusCode.ERROR }); - return Promise.reject(ex); - } finally { - span.end(); - } - } - - try { - // non-OTEL requests - const response = await instance({ - method, - url, - params, - data, - validateStatus, }); - - FaroHelper.faro?.api.pushEvent('Request completed', { url }); - return response.data as RT; - } catch (ex) { - FaroHelper.faro?.api.pushEvent('Request failed', { url }); - FaroHelper.faro?.api.pushError(ex); - return Promise.reject(ex); } + + return instance({ + method, + url, + params, + data, + validateStatus, + }) + .then((response) => { + FaroHelper.faro?.api.pushEvent('Request completed', { url }); + return response.data as RT; + }) + .catch((ex) => { + FaroHelper.faro?.api.pushEvent('Request failed', { url }); + FaroHelper.faro?.api.pushError(ex); + return Promise.reject(ex); + }); }; diff --git a/grafana-plugin/src/utils/faro.ts b/grafana-plugin/src/utils/faro.ts index b3268a20..98ec7cc2 100644 --- a/grafana-plugin/src/utils/faro.ts +++ b/grafana-plugin/src/utils/faro.ts @@ -1,5 +1,4 @@ -import { Faro } from '@grafana/faro-core'; -import { initializeFaro, getWebInstrumentations } from '@grafana/faro-web-sdk'; +import { Faro, initializeFaro, getWebInstrumentations } from '@grafana/faro-web-sdk'; import { TracingInstrumentation } from '@grafana/faro-web-tracing'; import { DocumentLoadInstrumentation } from '@opentelemetry/instrumentation-document-load'; import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch'; diff --git a/grafana-plugin/yarn.lock b/grafana-plugin/yarn.lock index e8eb8d4f..68b6f8de 100644 --- a/grafana-plugin/yarn.lock +++ b/grafana-plugin/yarn.lock @@ -1594,15 +1594,6 @@ eslint-plugin-react-hooks "4.3.0" typescript "4.6.4" -"@grafana/faro-core@ ^1.0.0-beta4", "@grafana/faro-core@^1.0.0-beta4": - version "1.0.0-beta4" - resolved "https://registry.yarnpkg.com/@grafana/faro-core/-/faro-core-1.0.0-beta4.tgz#2f38e18764c0a3c3f1af889d510a2896bcb742ab" - integrity sha512-tB7705aYCByw4CNWt3WNoV39+sZCudBMiStmiEKHzM17VRRLBjPcrMQTkVYu4zMkEAdWMuAdYhT3xjzHlQpXIA== - dependencies: - "@opentelemetry/api" "^1.3.0" - "@opentelemetry/api-metrics" "^0.33.0" - "@opentelemetry/otlp-transformer" "^0.34.0" - "@grafana/faro-core@^1.0.0-beta2": version "1.0.0-beta2" resolved "https://registry.yarnpkg.com/@grafana/faro-core/-/faro-core-1.0.0-beta2.tgz#97636677c1d687b0b238642a3978334652f263a5" @@ -1613,6 +1604,15 @@ "@opentelemetry/otlp-transformer" "^0.33.0" fast-deep-equal "^3.1.3" +"@grafana/faro-core@^1.0.0-beta4": + version "1.0.0-beta4" + resolved "https://registry.yarnpkg.com/@grafana/faro-core/-/faro-core-1.0.0-beta4.tgz#2f38e18764c0a3c3f1af889d510a2896bcb742ab" + integrity sha512-tB7705aYCByw4CNWt3WNoV39+sZCudBMiStmiEKHzM17VRRLBjPcrMQTkVYu4zMkEAdWMuAdYhT3xjzHlQpXIA== + dependencies: + "@opentelemetry/api" "^1.3.0" + "@opentelemetry/api-metrics" "^0.33.0" + "@opentelemetry/otlp-transformer" "^0.34.0" + "@grafana/faro-web-sdk@1.0.0-beta2": version "1.0.0-beta2" resolved "https://registry.yarnpkg.com/@grafana/faro-web-sdk/-/faro-web-sdk-1.0.0-beta2.tgz#d096a350d6366a108428a205753c797802eb480d"