From c70adf7440ff30eae280476c198e43196b6a1d43 Mon Sep 17 00:00:00 2001 From: Subhrashis Das Date: Mon, 18 Nov 2024 11:29:33 +0530 Subject: [PATCH] chore: Switch from OTLP HTTP/protobuf (New Relic) to HTTP/JSON (Grafana) (#37404) ## Description > [!TIP] > _Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team)._ > > _Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR._ Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="" ### :mag: Cypress test results > [!WARNING] > Tests have not run on the HEAD 065cddccdcf3c98cb48ff201daf752708f24666c yet >
Fri, 15 Nov 2024 11:48:13 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit - **New Features** - Introduced new monitoring paths for telemetry data exports: `/monitoring/traces` and `/monitoring/metrics`. - Added a function to streamline URL management for telemetry exports. - **Bug Fixes** - Updated telemetry export protocols to enhance reliability and performance. - **Chores** - Updated multiple OpenTelemetry dependencies to their latest versions for improved functionality and security. --- app/client/package.json | 20 +- app/client/packages/rts/package.json | 7 +- .../packages/rts/src/instrumentation.ts | 8 +- app/client/src/UITelemetry/auto-otel-web.ts | 24 +- app/client/yarn.lock | 443 +++++++----------- .../fs/opt/appsmith/caddy-reconfigure.mjs | 22 + 6 files changed, 222 insertions(+), 302 deletions(-) diff --git a/app/client/package.json b/app/client/package.json index 9b822e0f11..dc06ada8d3 100644 --- a/app/client/package.json +++ b/app/client/package.json @@ -72,16 +72,16 @@ "@mantine/hooks": "^5.10.1", "@newrelic/browser-agent": "^1.255.0", "@opentelemetry/api": "^1.9.0", - "@opentelemetry/auto-instrumentations-web": "^0.41.0", - "@opentelemetry/context-zone": "1.25.1", - "@opentelemetry/core": "^1.26.0", - "@opentelemetry/exporter-metrics-otlp-http": "0.52.1", - "@opentelemetry/exporter-trace-otlp-proto": "0.52.1", - "@opentelemetry/instrumentation": "0.52.1", - "@opentelemetry/resources": "1.25.1", - "@opentelemetry/sdk-metrics": "1.25.1", - "@opentelemetry/sdk-trace-base": "1.25.1", - "@opentelemetry/sdk-trace-web": "1.25.1", + "@opentelemetry/auto-instrumentations-web": "^0.42.0", + "@opentelemetry/context-zone": "^1.27.0", + "@opentelemetry/core": "^1.27.0", + "@opentelemetry/exporter-metrics-otlp-http": "^0.54.2", + "@opentelemetry/exporter-trace-otlp-http": "^0.54.2", + "@opentelemetry/instrumentation": "^0.54.2", + "@opentelemetry/resources": "^1.27.0", + "@opentelemetry/sdk-metrics": "^1.27.0", + "@opentelemetry/sdk-trace-base": "^1.27.0", + "@opentelemetry/sdk-trace-web": "^1.27.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@react-spring/web": "^9.7.4", "@react-types/shared": "^3.23.0", diff --git a/app/client/packages/rts/package.json b/app/client/packages/rts/package.json index 53c429b9e2..a52d4bf068 100644 --- a/app/client/packages/rts/package.json +++ b/app/client/packages/rts/package.json @@ -15,8 +15,11 @@ "start": "./start-server.sh" }, "dependencies": { - "@opentelemetry/instrumentation-http": "^0.53.0", - "@opentelemetry/sdk-trace-node": "^1.26.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.54.2", + "@opentelemetry/instrumentation": "^0.54.2", + "@opentelemetry/instrumentation-http": "^0.54.2", + "@opentelemetry/resources": "^1.27.0", + "@opentelemetry/sdk-trace-node": "^1.27.0", "@opentelemetry/semantic-conventions": "^1.27.0", "@shared/ast": "workspace:^", "axios": "^1.7.4", diff --git a/app/client/packages/rts/src/instrumentation.ts b/app/client/packages/rts/src/instrumentation.ts index 24d40d408f..05769222ee 100644 --- a/app/client/packages/rts/src/instrumentation.ts +++ b/app/client/packages/rts/src/instrumentation.ts @@ -10,7 +10,11 @@ import { import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions"; import { registerInstrumentations } from "@opentelemetry/instrumentation"; import { HttpInstrumentation } from "@opentelemetry/instrumentation-http"; -import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto"; +import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; + +const APPSMITH_NEW_RELIC_OTEL_EXPORTER_OTLP_ENDPOINT = + process.env.APPSMITH_NEW_RELIC_OTEL_EXPORTER_OTLP_ENDPOINT || + "http://localhost:4318"; const provider = new NodeTracerProvider({ resource: new Resource({ @@ -21,7 +25,7 @@ const provider = new NodeTracerProvider({ }); const nrTracesExporter = new OTLPTraceExporter({ - url: `${process.env.APPSMITH_NEW_RELIC_OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`, + url: `${APPSMITH_NEW_RELIC_OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`, headers: { "api-key": `${process.env.APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY}`, }, diff --git a/app/client/src/UITelemetry/auto-otel-web.ts b/app/client/src/UITelemetry/auto-otel-web.ts index c7740666ca..3a2aa17b64 100644 --- a/app/client/src/UITelemetry/auto-otel-web.ts +++ b/app/client/src/UITelemetry/auto-otel-web.ts @@ -1,7 +1,7 @@ import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base"; import { WebTracerProvider } from "@opentelemetry/sdk-trace-web"; import { ZoneContextManager } from "@opentelemetry/context-zone"; -import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto"; +import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; import { Resource } from "@opentelemetry/resources"; import { ATTR_DEPLOYMENT_NAME, @@ -14,8 +14,8 @@ import { PeriodicExportingMetricReader, } from "@opentelemetry/sdk-metrics"; import { - OTLPMetricExporter, AggregationTemporalityPreference, + OTLPMetricExporter, } from "@opentelemetry/exporter-metrics-otlp-http"; import { metrics } from "@opentelemetry/api"; import { registerInstrumentations } from "@opentelemetry/instrumentation"; @@ -27,7 +27,7 @@ enum CompressionAlgorithm { GZIP = "gzip", } const { newRelic, observability } = getAppsmithConfigs(); -const { browserAgentEndpoint, otlpEndpoint, otlpLicenseKey } = newRelic; +const { browserAgentEndpoint, otlpLicenseKey } = newRelic; const { deploymentName, serviceInstanceId, serviceName } = observability; @@ -44,7 +44,7 @@ const tracerProvider = new WebTracerProvider({ }); const nrTracesExporter = new OTLPTraceExporter({ - url: `${otlpEndpoint}/v1/traces`, + url: addPathToCurrentUrl("/monitoring/traces"), compression: CompressionAlgorithm.GZIP, headers: { "api-key": otlpLicenseKey, @@ -74,7 +74,7 @@ tracerProvider.register({ const nrMetricsExporter = new OTLPMetricExporter({ compression: CompressionAlgorithm.GZIP, temporalityPreference: AggregationTemporalityPreference.DELTA, - url: `${otlpEndpoint}/v1/metrics`, + url: addPathToCurrentUrl("/monitoring/metrics"), headers: { "api-key": otlpLicenseKey, }, @@ -104,7 +104,8 @@ registerInstrumentations({ new PageLoadInstrumentation({ ignoreResourceUrls: [ browserAgentEndpoint, - otlpEndpoint, + addPathToCurrentUrl("/monitoring/traces"), + addPathToCurrentUrl("/monitoring/metrics"), smartlookBaseDomain, ], }), @@ -115,3 +116,14 @@ registerInstrumentations({ }), ], }); + +// Replaces the pathname of the current URL with the provided path. +function addPathToCurrentUrl(path: string) { + const origin = window.location.origin; + + const currentUrl = new URL(origin); + + currentUrl.pathname = path.startsWith("/") ? path : `/${path}`; + + return currentUrl.toString(); +} diff --git a/app/client/yarn.lock b/app/client/yarn.lock index a619b24ece..4efeef9b59 100644 --- a/app/client/yarn.lock +++ b/app/client/yarn.lock @@ -4762,99 +4762,68 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/api-logs@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/api-logs@npm:0.52.1" +"@opentelemetry/api-logs@npm:0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/api-logs@npm:0.54.2" dependencies: - "@opentelemetry/api": ^1.0.0 - checksum: 500cd35527580732921d198bd7007224402cb89fef791f0b64bea839c9f2ad796d54486ee9aee0ee6422ded3963cba793408086eda0adfec2bd1d66f9114d96c + "@opentelemetry/api": ^1.3.0 + checksum: 6af14100932147d2296c7de1a16e14be528e0cb85cde79884967a777c0f0e2610aa130b04e48e5deec0a442c5a3966863a9da82ac40631755014f45cec5c8973 languageName: node linkType: hard -"@opentelemetry/api-logs@npm:0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/api-logs@npm:0.53.0" - dependencies: - "@opentelemetry/api": ^1.0.0 - checksum: 3383ff75f94a77402370a655f8edf049f9864ad60140f70821a1b775ce43bdb9ca6fade533a1faf46dbca19f3189bcbf1f8805062f5a68bfe2a00281b1712d1f - languageName: node - linkType: hard - -"@opentelemetry/api@npm:^1.0.0, @opentelemetry/api@npm:^1.9.0": +"@opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.9.0": version: 1.9.0 resolution: "@opentelemetry/api@npm:1.9.0" checksum: 9e88e59d53ced668f3daaecfd721071c5b85a67dd386f1c6f051d1be54375d850016c881f656ffbe9a03bedae85f7e89c2f2b635313f9c9b195ad033cdc31020 languageName: node linkType: hard -"@opentelemetry/auto-instrumentations-web@npm:^0.41.0": - version: 0.41.0 - resolution: "@opentelemetry/auto-instrumentations-web@npm:0.41.0" +"@opentelemetry/auto-instrumentations-web@npm:^0.42.0": + version: 0.42.0 + resolution: "@opentelemetry/auto-instrumentations-web@npm:0.42.0" dependencies: - "@opentelemetry/instrumentation": ^0.53.0 - "@opentelemetry/instrumentation-document-load": ^0.40.0 - "@opentelemetry/instrumentation-fetch": ^0.53.0 - "@opentelemetry/instrumentation-user-interaction": ^0.40.0 - "@opentelemetry/instrumentation-xml-http-request": ^0.53.0 + "@opentelemetry/instrumentation": ^0.54.0 + "@opentelemetry/instrumentation-document-load": ^0.41.0 + "@opentelemetry/instrumentation-fetch": ^0.54.0 + "@opentelemetry/instrumentation-user-interaction": ^0.41.0 + "@opentelemetry/instrumentation-xml-http-request": ^0.54.0 peerDependencies: "@opentelemetry/api": ^1.3.0 zone.js: ^0.11.4 || ^0.13.0 || ^0.14.0 - checksum: 9e73bc3654bfe325154a2e26d713033a3a6c1e4341a5f3803af75b5c945d1844e2f83b129b42c69b660ca9caf5f16b666c12143ac51744c8d12ea550d29935d5 + checksum: 3f0e5c9273f27ac8833ce1fa000715548beaebcc0edee1dff129a5400de058b5607050e67e0cb41a5517d72098a2c6b7651f99f4db3ce1e78ea0e52e87920752 languageName: node linkType: hard -"@opentelemetry/context-async-hooks@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/context-async-hooks@npm:1.26.0" +"@opentelemetry/context-async-hooks@npm:1.27.0": + version: 1.27.0 + resolution: "@opentelemetry/context-async-hooks@npm:1.27.0" peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: f0fe5bfa3aeed99fbe7d6f6157e3bcc2e4450850a62ef60e551812f3e5aa72cb81e38de8c4e1b6934c93e18579a503664597f78e7e7d9904e271f59c939a3e02 + checksum: d0fb0dd9e9de9b5404c50b48aa982c096f1f58aa518e472a3e48bd8d404354700132005886a497b7067cae6e813dab374a6c1483e344e53e396274c5b00f2a31 languageName: node linkType: hard -"@opentelemetry/context-zone-peer-dep@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/context-zone-peer-dep@npm:1.25.1" +"@opentelemetry/context-zone-peer-dep@npm:1.27.0": + version: 1.27.0 + resolution: "@opentelemetry/context-zone-peer-dep@npm:1.27.0" peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" zone.js: ^0.10.2 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 - checksum: 32ea945cf48ffd89d0d41281c3c1b22560416ddb2edff4867a5cbc6d2983bf0f5d8624972becd9b65bb0418ae13e2fd9231c8dc8052c0d0b9432d29fc5940676 + checksum: 173f4fc06ea62e97593bae9f1d064bb28da5dedf408356527f70ef3f9ee45dcc43fa4593aaa870232b2dbd485a982cf4234f6b4282c7e62a40bc4a2ff5eab718 languageName: node linkType: hard -"@opentelemetry/context-zone@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/context-zone@npm:1.25.1" +"@opentelemetry/context-zone@npm:^1.27.0": + version: 1.27.0 + resolution: "@opentelemetry/context-zone@npm:1.27.0" dependencies: - "@opentelemetry/context-zone-peer-dep": 1.25.1 + "@opentelemetry/context-zone-peer-dep": 1.27.0 zone.js: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^0.14.0 - checksum: 2b9473b4d1de7bd1855edda1adee880dbbcae1141d6762c5a26ab9597dcb9fd17a3b89dff84aaa329bab12b464702826ad93d95d01f004371742ba2b5ca3f27d + checksum: c24c487bd00f4f7df50e7e767058a8583bb283c501c4ed6a059fad9193bec18d32c4498083117644829a787c46cd6af6c9f42f0e6a4157f0ce3bb69c3528ee04 languageName: node linkType: hard -"@opentelemetry/core@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/core@npm:1.25.1" - dependencies: - "@opentelemetry/semantic-conventions": 1.25.1 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: ba1672fde4a1cfd9b55bf6070db71b808702fe59c4a70cda52a6156b2c813827954a6b4d3c3641283d394ff75a69b6359a0487459b4d26cd7d714ab3d21bc780 - languageName: node - linkType: hard - -"@opentelemetry/core@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/core@npm:1.26.0" - dependencies: - "@opentelemetry/semantic-conventions": 1.27.0 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: e5b06b4d69605927b850109c6b898f00a6a921171b3bf62335a4e00b9a170c1b93ddef6d7f8cc480a551faeaf81074b594f4462a91d4fbc4b313e64ff9ebd717 - languageName: node - linkType: hard - -"@opentelemetry/core@npm:1.27.0, @opentelemetry/core@npm:^1.26.0, @opentelemetry/core@npm:^1.8.0": +"@opentelemetry/core@npm:1.27.0, @opentelemetry/core@npm:^1.27.0, @opentelemetry/core@npm:^1.8.0": version: 1.27.0 resolution: "@opentelemetry/core@npm:1.27.0" dependencies: @@ -4865,128 +4834,112 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/exporter-metrics-otlp-http@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/exporter-metrics-otlp-http@npm:0.52.1" +"@opentelemetry/exporter-metrics-otlp-http@npm:^0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/exporter-metrics-otlp-http@npm:0.54.2" dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/otlp-exporter-base": 0.52.1 - "@opentelemetry/otlp-transformer": 0.52.1 - "@opentelemetry/resources": 1.25.1 - "@opentelemetry/sdk-metrics": 1.25.1 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/otlp-exporter-base": 0.54.2 + "@opentelemetry/otlp-transformer": 0.54.2 + "@opentelemetry/resources": 1.27.0 + "@opentelemetry/sdk-metrics": 1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 9f557739502925f51670073389d208536ecbb7e8178267b2d9c65eba403f75af3946d226356a1df34395b2c17385106df5e1853e816a46f96a8b6515dbc1c6d0 + checksum: c55d88f1b8e2e8ae4adcd4c1ac7846f13a91bca150e16b90270a00d1b0cc177c115b3876527122d7f0f1ce3cb6a6f8176b96071cd4e210cadcc0a74821d6e9c3 languageName: node linkType: hard -"@opentelemetry/exporter-trace-otlp-proto@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/exporter-trace-otlp-proto@npm:0.52.1" +"@opentelemetry/exporter-trace-otlp-http@npm:^0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/exporter-trace-otlp-http@npm:0.54.2" dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/otlp-exporter-base": 0.52.1 - "@opentelemetry/otlp-transformer": 0.52.1 - "@opentelemetry/resources": 1.25.1 - "@opentelemetry/sdk-trace-base": 1.25.1 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/otlp-exporter-base": 0.54.2 + "@opentelemetry/otlp-transformer": 0.54.2 + "@opentelemetry/resources": 1.27.0 + "@opentelemetry/sdk-trace-base": 1.27.0 peerDependencies: - "@opentelemetry/api": ^1.0.0 - checksum: 1d46eb5055925fb1f4383bb65ccec7addcf53ab88f2f5e7393e4e99e72d4fe48a1d45027736d534aeb76e37c217f5a4f9deda51351afa614340196a28db55dab + "@opentelemetry/api": ^1.3.0 + checksum: 57df41eaf14575b079fff599ce348b233ad29d21bab184c1403a9e1a153309b78974c8537ccf1afa661515aacd726f2749597448a321af63b30cc1b6357fbfb5 languageName: node linkType: hard -"@opentelemetry/instrumentation-document-load@npm:^0.40.0": - version: 0.40.0 - resolution: "@opentelemetry/instrumentation-document-load@npm:0.40.0" +"@opentelemetry/instrumentation-document-load@npm:^0.41.0": + version: 0.41.0 + resolution: "@opentelemetry/instrumentation-document-load@npm:0.41.0" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.53.0 - "@opentelemetry/sdk-trace-base": ^1.0.0 + "@opentelemetry/instrumentation": ^0.54.0 "@opentelemetry/sdk-trace-web": ^1.15.0 "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 5a06eeb5b68623c655fa728cc2bb036cdd0270488abfa1fca5e733891f3ce5b22067b014c4f3317e957be3c89acab5c70f199eb82c409dd01605960908c34048 + checksum: 5b17317924f76c9877958b83d2c575db295cb8051b2ec8c1ab738d8d2106a059942606bb31e11a7dbff5453516bf360401cb32f6ab552dc461e54d2e130d9b09 languageName: node linkType: hard -"@opentelemetry/instrumentation-fetch@npm:^0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/instrumentation-fetch@npm:0.53.0" +"@opentelemetry/instrumentation-fetch@npm:^0.54.0": + version: 0.54.2 + resolution: "@opentelemetry/instrumentation-fetch@npm:0.54.2" dependencies: - "@opentelemetry/core": 1.26.0 - "@opentelemetry/instrumentation": 0.53.0 - "@opentelemetry/sdk-trace-web": 1.26.0 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/instrumentation": 0.54.2 + "@opentelemetry/sdk-trace-web": 1.27.0 "@opentelemetry/semantic-conventions": 1.27.0 peerDependencies: - "@opentelemetry/api": ^1.0.0 - checksum: 2c92c9ccccfa424adb3773424df42d64156b67bdbcc1a21fbe5f620370d68bbd64701279897a0807e0b259b4e7a9fdcfdc21fa064343793c592bd0d08c5483cf + "@opentelemetry/api": ^1.3.0 + checksum: de0cd3069a598ae2a1f82da01b8ed92d08658b6d9d3a761f8c311dfc25cf2a1fa446fbff6d631f79dfdc3472cabcbfe473469c787443a5f985597ab2c468a149 languageName: node linkType: hard -"@opentelemetry/instrumentation-http@npm:^0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/instrumentation-http@npm:0.53.0" +"@opentelemetry/instrumentation-http@npm:^0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/instrumentation-http@npm:0.54.2" dependencies: - "@opentelemetry/core": 1.26.0 - "@opentelemetry/instrumentation": 0.53.0 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/instrumentation": 0.54.2 "@opentelemetry/semantic-conventions": 1.27.0 + forwarded-parse: 2.1.2 semver: ^7.5.2 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 4ee569f7fc8c7ce50fabaff016d33577f36e63272b0634ac45806d70bffdf38fcf09db3cd9dd27c3150f6c4547fec673c356c419a6ed2399ff2849b9487a6e89 + checksum: 920904333ab99430aa7e0dc541aac1f3c813d1a79f1ee3f07d20390b9f89727e306beb38c54c63ce3299195cf42aab2354a41a39c236cb814a42ea590503e56f languageName: node linkType: hard -"@opentelemetry/instrumentation-user-interaction@npm:^0.40.0": - version: 0.40.0 - resolution: "@opentelemetry/instrumentation-user-interaction@npm:0.40.0" +"@opentelemetry/instrumentation-user-interaction@npm:^0.41.0": + version: 0.41.0 + resolution: "@opentelemetry/instrumentation-user-interaction@npm:0.41.0" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.53.0 + "@opentelemetry/instrumentation": ^0.54.0 "@opentelemetry/sdk-trace-web": ^1.8.0 peerDependencies: "@opentelemetry/api": ^1.3.0 zone.js: ^0.11.4 || ^0.13.0 || ^0.14.0 - checksum: 24ae06b6a6ab2df39dc1074e7edf8ddaa2009e0376bf5e2bcb5d355bdf96bb4aeb09dc861a110150702a251d30e9984ee2a0bd7ba57e820e0859977f5807f369 + checksum: e9888bd014abe7032337bba12e62ca3bd1dd1bc3961c84a8d18cc5d6cdf02286fc4bc1ac857c056e673741a44703bafe702f70a6dfb617e08bc93b206168bb36 languageName: node linkType: hard -"@opentelemetry/instrumentation-xml-http-request@npm:^0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/instrumentation-xml-http-request@npm:0.53.0" +"@opentelemetry/instrumentation-xml-http-request@npm:^0.54.0": + version: 0.54.2 + resolution: "@opentelemetry/instrumentation-xml-http-request@npm:0.54.2" dependencies: - "@opentelemetry/core": 1.26.0 - "@opentelemetry/instrumentation": 0.53.0 - "@opentelemetry/sdk-trace-web": 1.26.0 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/instrumentation": 0.54.2 + "@opentelemetry/sdk-trace-web": 1.27.0 "@opentelemetry/semantic-conventions": 1.27.0 - peerDependencies: - "@opentelemetry/api": ^1.0.0 - checksum: 61dd00e30fbf4de611a7d1fa63aa8b004a0624c566d043dc9970dcaaef8eeb1f67e39a224bffd0d05c437e0d08371ee569f1d273429c05eb155e8c854e3fa818 - languageName: node - linkType: hard - -"@opentelemetry/instrumentation@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/instrumentation@npm:0.52.1" - dependencies: - "@opentelemetry/api-logs": 0.52.1 - "@types/shimmer": ^1.0.2 - import-in-the-middle: ^1.8.1 - require-in-the-middle: ^7.1.1 - semver: ^7.5.2 - shimmer: ^1.2.1 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: e8b4f202dc9355ca46714349a5e1663346e162f79706eed38015edf38fc536330fde4cc19ed7d3d6b03258c890c1dc0ba6d658d7aac3f41f1803bd03699d2701 + checksum: a62ff9c8a6a60ea403e65971804f1ae884a17136f169ffbfd25d10eb22d38088a1f1c687793a365b0468216a9759a70129f14dd953872d01f617c7be4ab8e3e1 languageName: node linkType: hard -"@opentelemetry/instrumentation@npm:0.53.0, @opentelemetry/instrumentation@npm:^0.53.0": - version: 0.53.0 - resolution: "@opentelemetry/instrumentation@npm:0.53.0" +"@opentelemetry/instrumentation@npm:0.54.2, @opentelemetry/instrumentation@npm:^0.54.0, @opentelemetry/instrumentation@npm:^0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/instrumentation@npm:0.54.2" dependencies: - "@opentelemetry/api-logs": 0.53.0 + "@opentelemetry/api-logs": 0.54.2 "@types/shimmer": ^1.2.0 import-in-the-middle: ^1.8.1 require-in-the-middle: ^7.1.1 @@ -4994,86 +4947,62 @@ __metadata: shimmer: ^1.2.1 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: a386fe066eab71129a6edbc883ab407b1022850e8acc4750029a12e8730588a8b81442d0b008aaddb46f7614af40d19d331e7348790ca2d08ba8eed6d23ffdae + checksum: c8ebf9eab5dc16c51a937367f6c21e22068b863d44d72c8b1f7615750ad526218229c30ab3c90c376c2cc03ee17cae3949a6f6ed987486511a13a3bef100e6b6 languageName: node linkType: hard -"@opentelemetry/otlp-exporter-base@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/otlp-exporter-base@npm:0.52.1" +"@opentelemetry/otlp-exporter-base@npm:0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/otlp-exporter-base@npm:0.54.2" dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/otlp-transformer": 0.52.1 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/otlp-transformer": 0.54.2 peerDependencies: - "@opentelemetry/api": ^1.0.0 - checksum: a1629886907a393e24a91ef5adc389e093d3725dd2957bc29903442541b2a30673100b13c200c37fe0a2e2fec53ced8b47ad90064ebc49f2e9382c2b1719d3c3 + "@opentelemetry/api": ^1.3.0 + checksum: 97a6b0713ba1aebc44bfd90c129f950cdf34e75d13a933aecd6b257b3d90166dd1dbec3742ccfa163e78dd351f26a78a0fa5a983705a43510d08a88d2321525b languageName: node linkType: hard -"@opentelemetry/otlp-transformer@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/otlp-transformer@npm:0.52.1" +"@opentelemetry/otlp-transformer@npm:0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/otlp-transformer@npm:0.54.2" dependencies: - "@opentelemetry/api-logs": 0.52.1 - "@opentelemetry/core": 1.25.1 - "@opentelemetry/resources": 1.25.1 - "@opentelemetry/sdk-logs": 0.52.1 - "@opentelemetry/sdk-metrics": 1.25.1 - "@opentelemetry/sdk-trace-base": 1.25.1 + "@opentelemetry/api-logs": 0.54.2 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/resources": 1.27.0 + "@opentelemetry/sdk-logs": 0.54.2 + "@opentelemetry/sdk-metrics": 1.27.0 + "@opentelemetry/sdk-trace-base": 1.27.0 protobufjs: ^7.3.0 peerDependencies: - "@opentelemetry/api": ">=1.3.0 <1.10.0" - checksum: 0e083ee484a79506d8ce41a8dd5d2d4d7669c380ac1ef9c313c348a6af8384365d2b90d99165590cced6453ce9192c0fe270d9cc974e9240e8ca02a6cf70151d + "@opentelemetry/api": ^1.3.0 + checksum: 972a269cb9868d36703e78f1cf6f36026854d00dd3959e636d9ac8ce5eecb7225537d7dea97b786306d94e6cacf49e7e64e32e45e0d21a58b6b4126c53ec65be languageName: node linkType: hard -"@opentelemetry/propagator-b3@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/propagator-b3@npm:1.26.0" +"@opentelemetry/propagator-b3@npm:1.27.0": + version: 1.27.0 + resolution: "@opentelemetry/propagator-b3@npm:1.27.0" dependencies: - "@opentelemetry/core": 1.26.0 + "@opentelemetry/core": 1.27.0 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: c2e99a8ed2814cf5b8e6e2a79411f2f6d668b7d5fc8351e5302ea4149601a96ec655422cf59470c66d8a408850f8a6b5156bf7deac7afb07d3f7a935c51fff04 + checksum: 4bfe531e1fb5606d25d09e7b3c84188938e76618f8a0a098d57ebacf9f7bafaab24ba6e6e26cbb4c3da3ea8ecd31e2c68e86735ef48f45cdfc2e698c0b098249 languageName: node linkType: hard -"@opentelemetry/propagator-jaeger@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/propagator-jaeger@npm:1.26.0" +"@opentelemetry/propagator-jaeger@npm:1.27.0": + version: 1.27.0 + resolution: "@opentelemetry/propagator-jaeger@npm:1.27.0" dependencies: - "@opentelemetry/core": 1.26.0 + "@opentelemetry/core": 1.27.0 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: a0ac3888c86f1b4671c7ca520396b89b4c47fa9e9d976bd014472d2b7786e7c5bdf4823a6e2a900fed5ea5dfe23eda0bdf6740e77c1352f2c0f82b13a71c03df + checksum: 87ab8a15b57230e40b9f59e63a01a31d38bfef77cafb91543a1549c179a9d01fef73ce5cf58ad7c6ed0093ab3b4a64ea9ba00e9d257d4084447267fe39f9163d languageName: node linkType: hard -"@opentelemetry/resources@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/resources@npm:1.25.1" - dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/semantic-conventions": 1.25.1 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 806e5aabbc93afcab767dc84707f702ca51bbc93e4565eb69a8591ed2fe78439aca19c5ca0d9f044c85ed97b9efb35936fdb65bef01f5f3e68504002c8a07220 - languageName: node - linkType: hard - -"@opentelemetry/resources@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/resources@npm:1.26.0" - dependencies: - "@opentelemetry/core": 1.26.0 - "@opentelemetry/semantic-conventions": 1.27.0 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: f70b0fdf4fb00c950bc30084818c92a5339f1be5d709bd681ab14453e877d6bb9f700324b8e65a0eabfeea618d01ed071abf9088e00fa0bf7f3305b1abad22cb - languageName: node - linkType: hard - -"@opentelemetry/resources@npm:1.27.0": +"@opentelemetry/resources@npm:1.27.0, @opentelemetry/resources@npm:^1.27.0": version: 1.27.0 resolution: "@opentelemetry/resources@npm:1.27.0" dependencies: @@ -5085,59 +5014,32 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/sdk-logs@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/sdk-logs@npm:0.52.1" +"@opentelemetry/sdk-logs@npm:0.54.2": + version: 0.54.2 + resolution: "@opentelemetry/sdk-logs@npm:0.54.2" dependencies: - "@opentelemetry/api-logs": 0.52.1 - "@opentelemetry/core": 1.25.1 - "@opentelemetry/resources": 1.25.1 + "@opentelemetry/api-logs": 0.54.2 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/resources": 1.27.0 peerDependencies: "@opentelemetry/api": ">=1.4.0 <1.10.0" - checksum: 16bdccd8250d96df0ffcadb63b107135d207072c1da52d056f00b211ca56924413d53a529cc0e362d96bd1bf33aa801eba51b395c5cb290b8c66fb1b988a7ff6 + checksum: 5d428d872df5357750c7025018968a1a9971d2236388657ebcb4925197b8d13e6f93ea8fedb0d8d6b1ba44da91c1a045680b2b57ef45e7ee29a5bc08630948cb languageName: node linkType: hard -"@opentelemetry/sdk-metrics@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/sdk-metrics@npm:1.25.1" +"@opentelemetry/sdk-metrics@npm:1.27.0, @opentelemetry/sdk-metrics@npm:^1.27.0": + version: 1.27.0 + resolution: "@opentelemetry/sdk-metrics@npm:1.27.0" dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/resources": 1.25.1 - lodash.merge: ^4.6.2 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/resources": 1.27.0 peerDependencies: "@opentelemetry/api": ">=1.3.0 <1.10.0" - checksum: efd3902d30e75bfc16e4208ffc92096743148ed8cec84900d05f98cc17ff146c711c398c3a526589433509c82399641b0759b4ba9fffc12be2e5007a55af7517 + checksum: c8776577063a3a5199d5717247270daf5820ce6636530b5ea4b5a8d6b40170cec9bb6b56dacb5c118d2e90588af83d0ebbb13f4d370c7efe50f69d22e5d13463 languageName: node linkType: hard -"@opentelemetry/sdk-trace-base@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/sdk-trace-base@npm:1.25.1" - dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/resources": 1.25.1 - "@opentelemetry/semantic-conventions": 1.25.1 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 8ac97f7d8d36bf412c5f47ff98ded07c5dfd11602a6ae7657ec7b5f50bb6ddaa20fc682626afcf74e21b375dbad0d1d47c8e20204d5139431afec25165f6252b - languageName: node - linkType: hard - -"@opentelemetry/sdk-trace-base@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/sdk-trace-base@npm:1.26.0" - dependencies: - "@opentelemetry/core": 1.26.0 - "@opentelemetry/resources": 1.26.0 - "@opentelemetry/semantic-conventions": 1.27.0 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: a4f4ddf644fd0d79b2bd49e4377143688d2aa657643a470d8bed6696f26817598fb4e9f16ba2d8c237292af56f06eec56594a7b4cc417d4ea7e490a45a22113b - languageName: node - linkType: hard - -"@opentelemetry/sdk-trace-base@npm:1.27.0, @opentelemetry/sdk-trace-base@npm:^1.0.0": +"@opentelemetry/sdk-trace-base@npm:1.27.0, @opentelemetry/sdk-trace-base@npm:^1.27.0": version: 1.27.0 resolution: "@opentelemetry/sdk-trace-base@npm:1.27.0" dependencies: @@ -5150,49 +5052,23 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/sdk-trace-node@npm:^1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/sdk-trace-node@npm:1.26.0" +"@opentelemetry/sdk-trace-node@npm:^1.27.0": + version: 1.27.0 + resolution: "@opentelemetry/sdk-trace-node@npm:1.27.0" dependencies: - "@opentelemetry/context-async-hooks": 1.26.0 - "@opentelemetry/core": 1.26.0 - "@opentelemetry/propagator-b3": 1.26.0 - "@opentelemetry/propagator-jaeger": 1.26.0 - "@opentelemetry/sdk-trace-base": 1.26.0 + "@opentelemetry/context-async-hooks": 1.27.0 + "@opentelemetry/core": 1.27.0 + "@opentelemetry/propagator-b3": 1.27.0 + "@opentelemetry/propagator-jaeger": 1.27.0 + "@opentelemetry/sdk-trace-base": 1.27.0 semver: ^7.5.2 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 1d63bed8fc36496698919ccd25be3b7b0e0d0bf9478f413a26bdbfe0bf0d4166bf58bbbee2415fb2fe42d3008b5c32ec7e4e42f2cb6d18b665b349eb025c15eb + checksum: 2abbd609ebefc3c8ece87321281d3b31a59201e799e55cbde0ad0d87b7643e4e5ac47d83dcde2306d32780438b6eba49f57113bc56ed02e95b6fab1732780247 languageName: node linkType: hard -"@opentelemetry/sdk-trace-web@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/sdk-trace-web@npm:1.25.1" - dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/sdk-trace-base": 1.25.1 - "@opentelemetry/semantic-conventions": 1.25.1 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 6ad9e43c62d0cf49572779694dc87008d359455044c09acf60a21208265539310b66b0390d8ad5758e4399a9320ab41eac84a6170cef7f8466c0447b80206197 - languageName: node - linkType: hard - -"@opentelemetry/sdk-trace-web@npm:1.26.0": - version: 1.26.0 - resolution: "@opentelemetry/sdk-trace-web@npm:1.26.0" - dependencies: - "@opentelemetry/core": 1.26.0 - "@opentelemetry/sdk-trace-base": 1.26.0 - "@opentelemetry/semantic-conventions": 1.27.0 - peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: d8e0ae8f9088723fc250874290923dc81933b279958f04beb79ca7e312bf66a79b823d92dd06be4e707d6919030c2998f8a18167a47ee7281e573b3ef3cc9e10 - languageName: node - linkType: hard - -"@opentelemetry/sdk-trace-web@npm:^1.15.0, @opentelemetry/sdk-trace-web@npm:^1.8.0": +"@opentelemetry/sdk-trace-web@npm:1.27.0, @opentelemetry/sdk-trace-web@npm:^1.15.0, @opentelemetry/sdk-trace-web@npm:^1.27.0, @opentelemetry/sdk-trace-web@npm:^1.8.0": version: 1.27.0 resolution: "@opentelemetry/sdk-trace-web@npm:1.27.0" dependencies: @@ -5205,13 +5081,6 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/semantic-conventions@npm:1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/semantic-conventions@npm:1.25.1" - checksum: fea418a4b09c55121c6da11c49dd2105116533838c484aead17e8acf8029dad711e145849812f9c61f9e48fad8e2b6cf103d2c18847ca993032ce9b27c2f863d - languageName: node - linkType: hard - "@opentelemetry/semantic-conventions@npm:1.27.0, @opentelemetry/semantic-conventions@npm:^1.27.0": version: 1.27.0 resolution: "@opentelemetry/semantic-conventions@npm:1.27.0" @@ -11287,7 +11156,7 @@ __metadata: languageName: node linkType: hard -"@types/shimmer@npm:^1.0.2, @types/shimmer@npm:^1.2.0": +"@types/shimmer@npm:^1.2.0": version: 1.2.0 resolution: "@types/shimmer@npm:1.2.0" checksum: f081a31d826ce7bfe8cc7ba8129d2b1dffae44fd580eba4fcf741237646c4c2494ae6de2cada4b7713d138f35f4bc512dbf01311d813dee82020f97d7d8c491c @@ -12836,8 +12705,11 @@ __metadata: version: 0.0.0-use.local resolution: "appsmith-rts@workspace:packages/rts" dependencies: - "@opentelemetry/instrumentation-http": ^0.53.0 - "@opentelemetry/sdk-trace-node": ^1.26.0 + "@opentelemetry/exporter-trace-otlp-http": ^0.54.2 + "@opentelemetry/instrumentation": ^0.54.2 + "@opentelemetry/instrumentation-http": ^0.54.2 + "@opentelemetry/resources": ^1.27.0 + "@opentelemetry/sdk-trace-node": ^1.27.0 "@opentelemetry/semantic-conventions": ^1.27.0 "@shared/ast": "workspace:^" "@types/express": ^4.17.14 @@ -12888,16 +12760,16 @@ __metadata: "@newrelic/browser-agent": ^1.255.0 "@octokit/rest": ^20.0.1 "@opentelemetry/api": ^1.9.0 - "@opentelemetry/auto-instrumentations-web": ^0.41.0 - "@opentelemetry/context-zone": 1.25.1 - "@opentelemetry/core": ^1.26.0 - "@opentelemetry/exporter-metrics-otlp-http": 0.52.1 - "@opentelemetry/exporter-trace-otlp-proto": 0.52.1 - "@opentelemetry/instrumentation": 0.52.1 - "@opentelemetry/resources": 1.25.1 - "@opentelemetry/sdk-metrics": 1.25.1 - "@opentelemetry/sdk-trace-base": 1.25.1 - "@opentelemetry/sdk-trace-web": 1.25.1 + "@opentelemetry/auto-instrumentations-web": ^0.42.0 + "@opentelemetry/context-zone": ^1.27.0 + "@opentelemetry/core": ^1.27.0 + "@opentelemetry/exporter-metrics-otlp-http": ^0.54.2 + "@opentelemetry/exporter-trace-otlp-http": ^0.54.2 + "@opentelemetry/instrumentation": ^0.54.2 + "@opentelemetry/resources": ^1.27.0 + "@opentelemetry/sdk-metrics": ^1.27.0 + "@opentelemetry/sdk-trace-base": ^1.27.0 + "@opentelemetry/sdk-trace-web": ^1.27.0 "@opentelemetry/semantic-conventions": ^1.27.0 "@peculiar/webcrypto": ^1.4.3 "@react-spring/web": ^9.7.4 @@ -19438,6 +19310,13 @@ __metadata: languageName: node linkType: hard +"forwarded-parse@npm:2.1.2": + version: 2.1.2 + resolution: "forwarded-parse@npm:2.1.2" + checksum: fca4df8898248d123d9d29a9fdf48005dd757366c2c17c1e195e8311a9aa89caf9f5e592f58f7d3d635087675ff39e85c32c6205838510f6f1fa4109de519930 + languageName: node + linkType: hard + "forwarded@npm:0.2.0": version: 0.2.0 resolution: "forwarded@npm:0.2.0" diff --git a/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs b/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs index b4cc80762a..87b7a42cb1 100644 --- a/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs +++ b/deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs @@ -38,6 +38,14 @@ if (CUSTOM_DOMAIN !== "") { const frameAncestorsPolicy = (process.env.APPSMITH_ALLOWED_FRAME_ANCESTORS || "'self'") .replace(/;.*$/, "") +const monitoringParts = [{ + path: "/monitoring/traces", + rewrite: "/v1/traces", +}, { + path: "/monitoring/metrics", + rewrite: "/v1/metrics", +}]; + const parts = [] parts.push(` @@ -139,6 +147,20 @@ parts.push(` import reverse_proxy 8091 } +${ + monitoringParts.map((telemetry) => ` + handle ${telemetry.path} { + @unauthorized not header api-key "${process.env.APPSMITH_NEW_RELIC_OTLP_LICENSE_KEY}" + respond @unauthorized "Forbidden" 403 + + @method_not_allowed not method POST + respond @method_not_allowed "Method Not Allowed" 405 + + rewrite * ${telemetry.rewrite} + import reverse_proxy 4318 + }`).join("\n") +} + redir /supervisor /supervisor/ handle_path /supervisor/* { import reverse_proxy 9001