@opentelemetry/otlp-exporter-base 0.203.0 → 0.205.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/configuration/convert-legacy-node-http-options.d.ts +2 -2
- package/build/esm/configuration/convert-legacy-node-http-options.js +18 -21
- package/build/esm/configuration/convert-legacy-node-http-options.js.map +1 -1
- package/build/esm/configuration/create-legacy-browser-delegate.d.ts +2 -0
- package/build/esm/configuration/create-legacy-browser-delegate.js +11 -5
- package/build/esm/configuration/create-legacy-browser-delegate.js.map +1 -1
- package/build/esm/configuration/legacy-node-configuration.d.ts +25 -2
- package/build/esm/configuration/legacy-node-configuration.js.map +1 -1
- package/build/esm/configuration/otlp-http-configuration.d.ts +0 -5
- package/build/esm/configuration/otlp-http-configuration.js +3 -6
- package/build/esm/configuration/otlp-http-configuration.js.map +1 -1
- package/build/esm/configuration/otlp-node-http-configuration.d.ts +28 -0
- package/build/esm/configuration/otlp-node-http-configuration.js +43 -0
- package/build/esm/configuration/otlp-node-http-configuration.js.map +1 -0
- package/build/esm/configuration/{otlp-http-env-configuration.d.ts → otlp-node-http-env-configuration.d.ts} +3 -3
- package/build/{esnext/configuration/otlp-http-env-configuration.js → esm/configuration/otlp-node-http-env-configuration.js} +9 -9
- package/build/esm/configuration/otlp-node-http-env-configuration.js.map +1 -0
- package/build/esm/index-node-http.d.ts +1 -0
- package/build/esm/index-node-http.js +1 -0
- package/build/esm/index-node-http.js.map +1 -1
- package/build/esm/otlp-browser-http-export-delegate.d.ts +4 -0
- package/build/esm/otlp-browser-http-export-delegate.js +9 -0
- package/build/esm/otlp-browser-http-export-delegate.js.map +1 -1
- package/build/esm/otlp-http-export-delegate.d.ts +2 -2
- package/build/esm/otlp-http-export-delegate.js.map +1 -1
- package/build/esm/transport/fetch-transport.d.ts +11 -0
- package/build/esm/transport/fetch-transport.js +82 -0
- package/build/esm/transport/fetch-transport.js.map +1 -0
- package/build/esm/transport/http-exporter-transport.d.ts +2 -2
- package/build/esm/transport/http-exporter-transport.js +15 -11
- package/build/esm/transport/http-exporter-transport.js.map +1 -1
- package/build/esm/transport/http-transport-types.d.ts +0 -7
- package/build/esm/transport/http-transport-types.js.map +1 -1
- package/build/esm/transport/http-transport-utils.d.ts +4 -4
- package/build/esm/transport/http-transport-utils.js +2 -24
- package/build/esm/transport/http-transport-utils.js.map +1 -1
- package/build/esm/transport/node-http-transport-types.d.ts +6 -0
- package/build/esm/transport/node-http-transport-types.js +17 -0
- package/build/esm/transport/node-http-transport-types.js.map +1 -0
- package/build/esm/transport/xhr-transport.d.ts +6 -0
- package/build/esm/transport/xhr-transport.js +2 -0
- package/build/esm/transport/xhr-transport.js.map +1 -1
- package/build/esm/version.d.ts +1 -1
- package/build/esm/version.js +1 -1
- package/build/esm/version.js.map +1 -1
- package/build/esnext/configuration/convert-legacy-node-http-options.d.ts +2 -2
- package/build/esnext/configuration/convert-legacy-node-http-options.js +18 -21
- package/build/esnext/configuration/convert-legacy-node-http-options.js.map +1 -1
- package/build/esnext/configuration/create-legacy-browser-delegate.d.ts +2 -0
- package/build/esnext/configuration/create-legacy-browser-delegate.js +11 -5
- package/build/esnext/configuration/create-legacy-browser-delegate.js.map +1 -1
- package/build/esnext/configuration/legacy-node-configuration.d.ts +25 -2
- package/build/esnext/configuration/legacy-node-configuration.js.map +1 -1
- package/build/esnext/configuration/otlp-http-configuration.d.ts +0 -5
- package/build/esnext/configuration/otlp-http-configuration.js +3 -6
- package/build/esnext/configuration/otlp-http-configuration.js.map +1 -1
- package/build/esnext/configuration/otlp-node-http-configuration.d.ts +28 -0
- package/build/esnext/configuration/otlp-node-http-configuration.js +43 -0
- package/build/esnext/configuration/otlp-node-http-configuration.js.map +1 -0
- package/build/{src/configuration/otlp-http-env-configuration.d.ts → esnext/configuration/otlp-node-http-env-configuration.d.ts} +3 -3
- package/build/{esm/configuration/otlp-http-env-configuration.js → esnext/configuration/otlp-node-http-env-configuration.js} +9 -9
- package/build/esnext/configuration/otlp-node-http-env-configuration.js.map +1 -0
- package/build/esnext/index-node-http.d.ts +1 -0
- package/build/esnext/index-node-http.js +1 -0
- package/build/esnext/index-node-http.js.map +1 -1
- package/build/esnext/otlp-browser-http-export-delegate.d.ts +4 -0
- package/build/esnext/otlp-browser-http-export-delegate.js +9 -0
- package/build/esnext/otlp-browser-http-export-delegate.js.map +1 -1
- package/build/esnext/otlp-http-export-delegate.d.ts +2 -2
- package/build/esnext/otlp-http-export-delegate.js.map +1 -1
- package/build/esnext/transport/fetch-transport.d.ts +11 -0
- package/build/esnext/transport/fetch-transport.js +82 -0
- package/build/esnext/transport/fetch-transport.js.map +1 -0
- package/build/esnext/transport/http-exporter-transport.d.ts +2 -2
- package/build/esnext/transport/http-exporter-transport.js +15 -11
- package/build/esnext/transport/http-exporter-transport.js.map +1 -1
- package/build/esnext/transport/http-transport-types.d.ts +0 -7
- package/build/esnext/transport/http-transport-types.js.map +1 -1
- package/build/esnext/transport/http-transport-utils.d.ts +4 -4
- package/build/esnext/transport/http-transport-utils.js +2 -24
- package/build/esnext/transport/http-transport-utils.js.map +1 -1
- package/build/esnext/transport/node-http-transport-types.d.ts +6 -0
- package/build/esnext/transport/node-http-transport-types.js +17 -0
- package/build/esnext/transport/node-http-transport-types.js.map +1 -0
- package/build/esnext/transport/xhr-transport.d.ts +6 -0
- package/build/esnext/transport/xhr-transport.js +2 -0
- package/build/esnext/transport/xhr-transport.js.map +1 -1
- package/build/esnext/version.d.ts +1 -1
- package/build/esnext/version.js +1 -1
- package/build/esnext/version.js.map +1 -1
- package/build/src/configuration/convert-legacy-node-http-options.d.ts +2 -2
- package/build/src/configuration/convert-legacy-node-http-options.js +18 -21
- package/build/src/configuration/convert-legacy-node-http-options.js.map +1 -1
- package/build/src/configuration/create-legacy-browser-delegate.d.ts +2 -0
- package/build/src/configuration/create-legacy-browser-delegate.js +13 -6
- package/build/src/configuration/create-legacy-browser-delegate.js.map +1 -1
- package/build/src/configuration/legacy-node-configuration.d.ts +25 -2
- package/build/src/configuration/legacy-node-configuration.js.map +1 -1
- package/build/src/configuration/otlp-http-configuration.d.ts +0 -5
- package/build/src/configuration/otlp-http-configuration.js +3 -6
- package/build/src/configuration/otlp-http-configuration.js.map +1 -1
- package/build/src/configuration/otlp-node-http-configuration.d.ts +28 -0
- package/build/src/configuration/otlp-node-http-configuration.js +49 -0
- package/build/src/configuration/otlp-node-http-configuration.js.map +1 -0
- package/build/{esnext/configuration/otlp-http-env-configuration.d.ts → src/configuration/otlp-node-http-env-configuration.d.ts} +3 -3
- package/build/src/configuration/{otlp-http-env-configuration.js → otlp-node-http-env-configuration.js} +10 -10
- package/build/src/configuration/otlp-node-http-env-configuration.js.map +1 -0
- package/build/src/index-node-http.d.ts +1 -0
- package/build/src/index-node-http.js +3 -1
- package/build/src/index-node-http.js.map +1 -1
- package/build/src/otlp-browser-http-export-delegate.d.ts +4 -0
- package/build/src/otlp-browser-http-export-delegate.js +11 -1
- package/build/src/otlp-browser-http-export-delegate.js.map +1 -1
- package/build/src/otlp-http-export-delegate.d.ts +2 -2
- package/build/src/otlp-http-export-delegate.js.map +1 -1
- package/build/src/transport/fetch-transport.d.ts +11 -0
- package/build/src/transport/fetch-transport.js +86 -0
- package/build/src/transport/fetch-transport.js.map +1 -0
- package/build/src/transport/http-exporter-transport.d.ts +2 -2
- package/build/src/transport/http-exporter-transport.js +15 -11
- package/build/src/transport/http-exporter-transport.js.map +1 -1
- package/build/src/transport/http-transport-types.d.ts +0 -7
- package/build/src/transport/http-transport-types.js.map +1 -1
- package/build/src/transport/http-transport-utils.d.ts +4 -4
- package/build/src/transport/http-transport-utils.js +3 -26
- package/build/src/transport/http-transport-utils.js.map +1 -1
- package/build/src/transport/node-http-transport-types.d.ts +6 -0
- package/build/src/transport/node-http-transport-types.js +18 -0
- package/build/src/transport/node-http-transport-types.js.map +1 -0
- package/build/src/transport/xhr-transport.d.ts +6 -0
- package/build/src/transport/xhr-transport.js +2 -0
- package/build/src/transport/xhr-transport.js.map +1 -1
- package/build/src/version.d.ts +1 -1
- package/build/src/version.js +1 -1
- package/build/src/version.js.map +1 -1
- package/package.json +12 -13
- package/build/esm/configuration/otlp-http-env-configuration.js.map +0 -1
- package/build/esnext/configuration/otlp-http-env-configuration.js.map +0 -1
- package/build/src/configuration/otlp-http-env-configuration.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport-types.js","sourceRoot":"","sources":["../../../src/transport/http-transport-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\
|
|
1
|
+
{"version":3,"file":"http-transport-types.js","sourceRoot":"","sources":["../../../src/transport/http-transport-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface HttpRequestParameters {\n url: string;\n headers: () => Record<string, string>;\n compression: 'gzip' | 'none';\n}\n"]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import * as http from 'http';
|
|
4
|
-
import * as https from 'https';
|
|
3
|
+
import type * as http from 'http';
|
|
4
|
+
import type * as https from 'https';
|
|
5
5
|
import { HttpRequestParameters } from './http-transport-types';
|
|
6
6
|
import { ExportResponse } from '../export-response';
|
|
7
7
|
/**
|
|
8
8
|
* Sends data using http
|
|
9
|
+
* @param request
|
|
9
10
|
* @param params
|
|
10
11
|
* @param agent
|
|
11
12
|
* @param data
|
|
12
13
|
* @param onDone
|
|
13
14
|
* @param timeoutMillis
|
|
14
15
|
*/
|
|
15
|
-
export declare function sendWithHttp(params: HttpRequestParameters, agent: http.Agent | https.Agent, data: Uint8Array, onDone: (response: ExportResponse) => void, timeoutMillis: number): void;
|
|
16
|
+
export declare function sendWithHttp(request: typeof https.request | typeof http.request, params: HttpRequestParameters, agent: http.Agent | https.Agent, data: Uint8Array, onDone: (response: ExportResponse) => void, timeoutMillis: number): void;
|
|
16
17
|
export declare function compressAndSend(req: http.ClientRequest, compression: 'gzip' | 'none', data: Uint8Array, onError: (error: Error) => void): void;
|
|
17
|
-
export declare function createHttpAgent(rawUrl: string, agentOptions: http.AgentOptions | https.AgentOptions): http.Agent;
|
|
18
18
|
//# sourceMappingURL=http-transport-utils.d.ts.map
|
|
@@ -1,33 +1,17 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright The OpenTelemetry Authors
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import * as http from 'http';
|
|
17
|
-
import * as https from 'https';
|
|
18
1
|
import * as zlib from 'zlib';
|
|
19
2
|
import { Readable } from 'stream';
|
|
20
3
|
import { isExportRetryable, parseRetryAfterToMills, } from '../is-export-retryable';
|
|
21
4
|
import { OTLPExporterError } from '../types';
|
|
22
5
|
/**
|
|
23
6
|
* Sends data using http
|
|
7
|
+
* @param request
|
|
24
8
|
* @param params
|
|
25
9
|
* @param agent
|
|
26
10
|
* @param data
|
|
27
11
|
* @param onDone
|
|
28
12
|
* @param timeoutMillis
|
|
29
13
|
*/
|
|
30
|
-
export function sendWithHttp(params, agent, data, onDone, timeoutMillis) {
|
|
14
|
+
export function sendWithHttp(request, params, agent, data, onDone, timeoutMillis) {
|
|
31
15
|
const parsedUrl = new URL(params.url);
|
|
32
16
|
const options = {
|
|
33
17
|
hostname: parsedUrl.hostname,
|
|
@@ -39,7 +23,6 @@ export function sendWithHttp(params, agent, data, onDone, timeoutMillis) {
|
|
|
39
23
|
},
|
|
40
24
|
agent: agent,
|
|
41
25
|
};
|
|
42
|
-
const request = parsedUrl.protocol === 'http:' ? http.request : https.request;
|
|
43
26
|
const req = request(options, (res) => {
|
|
44
27
|
const responseData = [];
|
|
45
28
|
res.on('data', chunk => responseData.push(chunk));
|
|
@@ -102,9 +85,4 @@ function readableFromUint8Array(buff) {
|
|
|
102
85
|
readable.push(null);
|
|
103
86
|
return readable;
|
|
104
87
|
}
|
|
105
|
-
export function createHttpAgent(rawUrl, agentOptions) {
|
|
106
|
-
const parsedUrl = new URL(rawUrl);
|
|
107
|
-
const Agent = parsedUrl.protocol === 'http:' ? http.Agent : https.Agent;
|
|
108
|
-
return new Agent(agentOptions);
|
|
109
|
-
}
|
|
110
88
|
//# sourceMappingURL=http-transport-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport-utils.js","sourceRoot":"","sources":["../../../src/transport/http-transport-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http-transport-utils.js","sourceRoot":"","sources":["../../../src/transport/http-transport-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport type * as http from 'http';\nimport type * as https from 'https';\nimport * as zlib from 'zlib';\nimport { Readable } from 'stream';\nimport { HttpRequestParameters } from './http-transport-types';\nimport { ExportResponse } from '../export-response';\nimport {\n isExportRetryable,\n parseRetryAfterToMills,\n} from '../is-export-retryable';\nimport { OTLPExporterError } from '../types';\n\n/**\n * Sends data using http\n * @param request\n * @param params\n * @param agent\n * @param data\n * @param onDone\n * @param timeoutMillis\n */\nexport function sendWithHttp(\n request: typeof https.request | typeof http.request,\n params: HttpRequestParameters,\n agent: http.Agent | https.Agent,\n data: Uint8Array,\n onDone: (response: ExportResponse) => void,\n timeoutMillis: number\n): void {\n const parsedUrl = new URL(params.url);\n\n const options: http.RequestOptions | https.RequestOptions = {\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.pathname,\n method: 'POST',\n headers: {\n ...params.headers(),\n },\n agent: agent,\n };\n\n const req = request(options, (res: http.IncomingMessage) => {\n const responseData: Buffer[] = [];\n res.on('data', chunk => responseData.push(chunk));\n\n res.on('end', () => {\n if (res.statusCode && res.statusCode < 299) {\n onDone({\n status: 'success',\n data: Buffer.concat(responseData),\n });\n } else if (res.statusCode && isExportRetryable(res.statusCode)) {\n onDone({\n status: 'retryable',\n retryInMillis: parseRetryAfterToMills(res.headers['retry-after']),\n });\n } else {\n const error = new OTLPExporterError(\n res.statusMessage,\n res.statusCode,\n Buffer.concat(responseData).toString()\n );\n onDone({\n status: 'failure',\n error,\n });\n }\n });\n });\n\n req.setTimeout(timeoutMillis, () => {\n req.destroy();\n onDone({\n status: 'failure',\n error: new Error('Request Timeout'),\n });\n });\n\n req.on('error', (error: Error) => {\n onDone({\n status: 'failure',\n error,\n });\n });\n\n compressAndSend(req, params.compression, data, (error: Error) => {\n onDone({\n status: 'failure',\n error,\n });\n });\n}\n\nexport function compressAndSend(\n req: http.ClientRequest,\n compression: 'gzip' | 'none',\n data: Uint8Array,\n onError: (error: Error) => void\n) {\n let dataStream = readableFromUint8Array(data);\n\n if (compression === 'gzip') {\n req.setHeader('Content-Encoding', 'gzip');\n dataStream = dataStream\n .on('error', onError)\n .pipe(zlib.createGzip())\n .on('error', onError);\n }\n\n dataStream.pipe(req).on('error', onError);\n}\n\nfunction readableFromUint8Array(buff: string | Uint8Array): Readable {\n const readable = new Readable();\n readable.push(buff);\n readable.push(null);\n\n return readable;\n}\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HttpAgentFactory } from '../configuration/otlp-node-http-configuration';
|
|
2
|
+
import { HttpRequestParameters } from './http-transport-types';
|
|
3
|
+
export interface NodeHttpRequestParameters extends HttpRequestParameters {
|
|
4
|
+
agentFactory: HttpAgentFactory;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=node-http-transport-types.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright The OpenTelemetry Authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=node-http-transport-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-http-transport-types.js","sourceRoot":"","sources":["../../../src/transport/node-http-transport-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HttpAgentFactory } from '../configuration/otlp-node-http-configuration';\nimport { HttpRequestParameters } from './http-transport-types';\n\nexport interface NodeHttpRequestParameters extends HttpRequestParameters {\n agentFactory: HttpAgentFactory;\n}\n"]}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { IExporterTransport } from '../exporter-transport';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated favor the fetch transport
|
|
4
|
+
* @see {@link createFetchTransport}
|
|
5
|
+
*/
|
|
2
6
|
export interface XhrRequestParameters {
|
|
3
7
|
url: string;
|
|
4
8
|
headers: () => Record<string, string>;
|
|
5
9
|
}
|
|
6
10
|
/**
|
|
11
|
+
* @deprecated use {@link createFetchTransport} instead
|
|
12
|
+
*
|
|
7
13
|
* Creates an exporter transport that uses XHR to send the data
|
|
8
14
|
* @param parameters applied to each request made by transport
|
|
9
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr-transport.js","sourceRoot":"","sources":["../../../src/transport/xhr-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"xhr-transport.js","sourceRoot":"","sources":["../../../src/transport/xhr-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAahC,MAAM,YAAY;IACI;IAApB,YAAoB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAEzD,IAAI,CAAC,IAAgB,EAAE,aAAqB;QAC1C,OAAO,IAAI,OAAO,CAAiB,OAAO,CAAC,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBACzC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;gBAClB,OAAO,CAAC;oBACN,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,uBAAuB,CAAC;iBAC1C,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,GAAG,CAAC,kBAAkB,GAAG,GAAG,EAAE;gBAC5B,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;oBAC1C,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC1B,OAAO,CAAC;wBACN,MAAM,EAAE,SAAS;qBAClB,CAAC,CAAC;iBACJ;qBAAM,IAAI,GAAG,CAAC,MAAM,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;oBACtD,OAAO,CAAC;wBACN,MAAM,EAAE,WAAW;wBACnB,aAAa,EAAE,sBAAsB,CACnC,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CACrC;qBACF,CAAC,CAAC;iBACJ;qBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC3B,OAAO,CAAC;wBACN,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,8CAA8C,CAAC;qBACjE,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC;YAEF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE;gBACjB,OAAO,CAAC;oBACN,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,qBAAqB,CAAC;iBACxC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE;gBACjB,OAAO,CAAC;oBACN,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,qBAAqB,CAAC;iBACxC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,2CAA2C;IAC7C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAgC;IAEhC,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IExporterTransport } from '../exporter-transport';\nimport { ExportResponse } from '../export-response';\nimport { diag } from '@opentelemetry/api';\nimport {\n isExportRetryable,\n parseRetryAfterToMills,\n} from '../is-export-retryable';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type { createFetchTransport } from './fetch-transport';\n\n/**\n * @deprecated favor the fetch transport\n * @see {@link createFetchTransport}\n */\nexport interface XhrRequestParameters {\n url: string;\n headers: () => Record<string, string>;\n}\n\nclass XhrTransport implements IExporterTransport {\n constructor(private _parameters: XhrRequestParameters) {}\n\n send(data: Uint8Array, timeoutMillis: number): Promise<ExportResponse> {\n return new Promise<ExportResponse>(resolve => {\n const xhr = new XMLHttpRequest();\n xhr.timeout = timeoutMillis;\n xhr.open('POST', this._parameters.url);\n const headers = this._parameters.headers();\n Object.entries(headers).forEach(([k, v]) => {\n xhr.setRequestHeader(k, v);\n });\n\n xhr.ontimeout = _ => {\n resolve({\n status: 'failure',\n error: new Error('XHR request timed out'),\n });\n };\n\n xhr.onreadystatechange = () => {\n if (xhr.status >= 200 && xhr.status <= 299) {\n diag.debug('XHR success');\n resolve({\n status: 'success',\n });\n } else if (xhr.status && isExportRetryable(xhr.status)) {\n resolve({\n status: 'retryable',\n retryInMillis: parseRetryAfterToMills(\n xhr.getResponseHeader('Retry-After')\n ),\n });\n } else if (xhr.status !== 0) {\n resolve({\n status: 'failure',\n error: new Error('XHR request failed with non-retryable status'),\n });\n }\n };\n\n xhr.onabort = () => {\n resolve({\n status: 'failure',\n error: new Error('XHR request aborted'),\n });\n };\n xhr.onerror = () => {\n resolve({\n status: 'failure',\n error: new Error('XHR request errored'),\n });\n };\n\n xhr.send(data);\n });\n }\n\n shutdown() {\n // Intentionally left empty, nothing to do.\n }\n}\n\n/**\n * @deprecated use {@link createFetchTransport} instead\n *\n * Creates an exporter transport that uses XHR to send the data\n * @param parameters applied to each request made by transport\n */\nexport function createXhrTransport(\n parameters: XhrRequestParameters\n): IExporterTransport {\n return new XhrTransport(parameters);\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.205.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/build/esnext/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.205.0';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OTLPExporterNodeConfigBase } from './legacy-node-configuration';
|
|
2
|
-
import {
|
|
2
|
+
import { OtlpNodeHttpConfiguration } from './otlp-node-http-configuration';
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated this will be removed in 2.0
|
|
5
5
|
* @param config
|
|
@@ -7,5 +7,5 @@ import { OtlpHttpConfiguration } from './otlp-http-configuration';
|
|
|
7
7
|
* @param signalResourcePath
|
|
8
8
|
* @param requiredHeaders
|
|
9
9
|
*/
|
|
10
|
-
export declare function convertLegacyHttpOptions(config: OTLPExporterNodeConfigBase, signalIdentifier: string, signalResourcePath: string, requiredHeaders: Record<string, string>):
|
|
10
|
+
export declare function convertLegacyHttpOptions(config: OTLPExporterNodeConfigBase, signalIdentifier: string, signalResourcePath: string, requiredHeaders: Record<string, string>): OtlpNodeHttpConfiguration;
|
|
11
11
|
//# sourceMappingURL=convert-legacy-node-http-options.d.ts.map
|
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertLegacyHttpOptions = void 0;
|
|
4
|
-
const otlp_http_configuration_1 = require("./otlp-http-configuration");
|
|
5
|
-
const otlp_http_env_configuration_1 = require("./otlp-http-env-configuration");
|
|
6
4
|
const api_1 = require("@opentelemetry/api");
|
|
7
5
|
const shared_configuration_1 = require("./shared-configuration");
|
|
6
|
+
const otlp_node_http_configuration_1 = require("./otlp-node-http-configuration");
|
|
7
|
+
const index_node_http_1 = require("../index-node-http");
|
|
8
|
+
const otlp_node_http_env_configuration_1 = require("./otlp-node-http-env-configuration");
|
|
8
9
|
function convertLegacyAgentOptions(config) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
keepAlive: config.keepAlive,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
10
|
+
if (typeof config.httpAgentOptions === 'function') {
|
|
11
|
+
return config.httpAgentOptions;
|
|
12
|
+
}
|
|
13
|
+
let legacy = config.httpAgentOptions;
|
|
14
|
+
if (config.keepAlive != null) {
|
|
15
|
+
legacy = { keepAlive: config.keepAlive, ...legacy };
|
|
16
|
+
}
|
|
17
|
+
if (legacy != null) {
|
|
18
|
+
return (0, index_node_http_1.httpAgentFactoryFromOptions)(legacy);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return undefined;
|
|
24
22
|
}
|
|
25
|
-
return config.httpAgentOptions;
|
|
26
23
|
}
|
|
27
24
|
/**
|
|
28
25
|
* @deprecated this will be removed in 2.0
|
|
@@ -36,14 +33,14 @@ function convertLegacyHttpOptions(config, signalIdentifier, signalResourcePath,
|
|
|
36
33
|
if (config.metadata) {
|
|
37
34
|
api_1.diag.warn('Metadata cannot be set when using http');
|
|
38
35
|
}
|
|
39
|
-
return (0,
|
|
36
|
+
return (0, otlp_node_http_configuration_1.mergeOtlpNodeHttpConfigurationWithDefaults)({
|
|
40
37
|
url: config.url,
|
|
41
38
|
headers: (0, shared_configuration_1.wrapStaticHeadersInFunction)(config.headers),
|
|
42
39
|
concurrencyLimit: config.concurrencyLimit,
|
|
43
40
|
timeoutMillis: config.timeoutMillis,
|
|
44
41
|
compression: config.compression,
|
|
45
|
-
|
|
46
|
-
}, (0,
|
|
42
|
+
agentFactory: convertLegacyAgentOptions(config),
|
|
43
|
+
}, (0, otlp_node_http_env_configuration_1.getNodeHttpConfigurationFromEnvironment)(signalIdentifier, signalResourcePath), (0, otlp_node_http_configuration_1.getNodeHttpConfigurationDefaults)(requiredHeaders, signalResourcePath));
|
|
47
44
|
}
|
|
48
45
|
exports.convertLegacyHttpOptions = convertLegacyHttpOptions;
|
|
49
46
|
//# sourceMappingURL=convert-legacy-node-http-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-legacy-node-http-options.js","sourceRoot":"","sources":["../../../src/configuration/convert-legacy-node-http-options.ts"],"names":[],"mappings":";;;AAgBA,
|
|
1
|
+
{"version":3,"file":"convert-legacy-node-http-options.js","sourceRoot":"","sources":["../../../src/configuration/convert-legacy-node-http-options.ts"],"names":[],"mappings":";;;AAgBA,4CAA0C;AAC1C,iEAAqE;AACrE,iFAKwC;AACxC,wDAAiE;AACjE,yFAA6F;AAE7F,SAAS,yBAAyB,CAChC,MAAkC;IAElC,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;QACjD,OAAO,MAAM,CAAC,gBAAgB,CAAC;KAChC;IAED,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACrC,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE;QAC5B,MAAM,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;KACrD;IAED,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,OAAO,IAAA,6CAA2B,EAAC,MAAM,CAAC,CAAC;KAC5C;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACtC,MAAkC,EAClC,gBAAwB,EACxB,kBAA0B,EAC1B,eAAuC;IAEvC,8DAA8D;IAC9D,IAAK,MAAc,CAAC,QAAQ,EAAE;QAC5B,UAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;KACrD;IAED,OAAO,IAAA,yEAA0C,EAC/C;QACE,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,IAAA,kDAA2B,EAAC,MAAM,CAAC,OAAO,CAAC;QACpD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,yBAAyB,CAAC,MAAM,CAAC;KAChD,EACD,IAAA,0EAAuC,EACrC,gBAAgB,EAChB,kBAAkB,CACnB,EACD,IAAA,+DAAgC,EAAC,eAAe,EAAE,kBAAkB,CAAC,CACtE,CAAC;AACJ,CAAC;AA1BD,4DA0BC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { OTLPExporterNodeConfigBase } from './legacy-node-configuration';\nimport { diag } from '@opentelemetry/api';\nimport { wrapStaticHeadersInFunction } from './shared-configuration';\nimport {\n getNodeHttpConfigurationDefaults,\n HttpAgentFactory,\n mergeOtlpNodeHttpConfigurationWithDefaults,\n OtlpNodeHttpConfiguration,\n} from './otlp-node-http-configuration';\nimport { httpAgentFactoryFromOptions } from '../index-node-http';\nimport { getNodeHttpConfigurationFromEnvironment } from './otlp-node-http-env-configuration';\n\nfunction convertLegacyAgentOptions(\n config: OTLPExporterNodeConfigBase\n): HttpAgentFactory | undefined {\n if (typeof config.httpAgentOptions === 'function') {\n return config.httpAgentOptions;\n }\n\n let legacy = config.httpAgentOptions;\n if (config.keepAlive != null) {\n legacy = { keepAlive: config.keepAlive, ...legacy };\n }\n\n if (legacy != null) {\n return httpAgentFactoryFromOptions(legacy);\n } else {\n return undefined;\n }\n}\n\n/**\n * @deprecated this will be removed in 2.0\n * @param config\n * @param signalIdentifier\n * @param signalResourcePath\n * @param requiredHeaders\n */\nexport function convertLegacyHttpOptions(\n config: OTLPExporterNodeConfigBase,\n signalIdentifier: string,\n signalResourcePath: string,\n requiredHeaders: Record<string, string>\n): OtlpNodeHttpConfiguration {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((config as any).metadata) {\n diag.warn('Metadata cannot be set when using http');\n }\n\n return mergeOtlpNodeHttpConfigurationWithDefaults(\n {\n url: config.url,\n headers: wrapStaticHeadersInFunction(config.headers),\n concurrencyLimit: config.concurrencyLimit,\n timeoutMillis: config.timeoutMillis,\n compression: config.compression,\n agentFactory: convertLegacyAgentOptions(config),\n },\n getNodeHttpConfigurationFromEnvironment(\n signalIdentifier,\n signalResourcePath\n ),\n getNodeHttpConfigurationDefaults(requiredHeaders, signalResourcePath)\n );\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ISerializer } from '@opentelemetry/otlp-transformer';
|
|
2
|
+
import { createOtlpSendBeaconExportDelegate } from '../otlp-browser-http-export-delegate';
|
|
2
3
|
import { IOtlpExportDelegate } from '../otlp-export-delegate';
|
|
3
4
|
import { OTLPExporterConfigBase } from './legacy-base-configuration';
|
|
4
5
|
/**
|
|
@@ -9,4 +10,5 @@ import { OTLPExporterConfigBase } from './legacy-base-configuration';
|
|
|
9
10
|
* @param requiredHeaders
|
|
10
11
|
*/
|
|
11
12
|
export declare function createLegacyOtlpBrowserExportDelegate<Internal, Response>(config: OTLPExporterConfigBase, serializer: ISerializer<Internal, Response>, signalResourcePath: string, requiredHeaders: Record<string, string>): IOtlpExportDelegate<Internal>;
|
|
13
|
+
export declare function inferExportDelegateToUse(configHeaders: OTLPExporterConfigBase['headers']): typeof createOtlpSendBeaconExportDelegate;
|
|
12
14
|
//# sourceMappingURL=create-legacy-browser-delegate.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createLegacyOtlpBrowserExportDelegate = void 0;
|
|
3
|
+
exports.inferExportDelegateToUse = exports.createLegacyOtlpBrowserExportDelegate = void 0;
|
|
4
4
|
const otlp_browser_http_export_delegate_1 = require("../otlp-browser-http-export-delegate");
|
|
5
5
|
const convert_legacy_browser_http_options_1 = require("./convert-legacy-browser-http-options");
|
|
6
6
|
/**
|
|
@@ -11,14 +11,21 @@ const convert_legacy_browser_http_options_1 = require("./convert-legacy-browser-
|
|
|
11
11
|
* @param requiredHeaders
|
|
12
12
|
*/
|
|
13
13
|
function createLegacyOtlpBrowserExportDelegate(config, serializer, signalResourcePath, requiredHeaders) {
|
|
14
|
-
const
|
|
14
|
+
const createOtlpExportDelegate = inferExportDelegateToUse(config.headers);
|
|
15
15
|
const options = (0, convert_legacy_browser_http_options_1.convertLegacyBrowserHttpOptions)(config, signalResourcePath, requiredHeaders);
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
return createOtlpExportDelegate(options, serializer);
|
|
17
|
+
}
|
|
18
|
+
exports.createLegacyOtlpBrowserExportDelegate = createLegacyOtlpBrowserExportDelegate;
|
|
19
|
+
function inferExportDelegateToUse(configHeaders) {
|
|
20
|
+
if (!configHeaders && typeof navigator.sendBeacon === 'function') {
|
|
21
|
+
return otlp_browser_http_export_delegate_1.createOtlpSendBeaconExportDelegate;
|
|
22
|
+
}
|
|
23
|
+
else if (typeof globalThis.fetch !== 'undefined') {
|
|
24
|
+
return otlp_browser_http_export_delegate_1.createOtlpFetchExportDelegate;
|
|
18
25
|
}
|
|
19
26
|
else {
|
|
20
|
-
return
|
|
27
|
+
return otlp_browser_http_export_delegate_1.createOtlpXhrExportDelegate;
|
|
21
28
|
}
|
|
22
29
|
}
|
|
23
|
-
exports.
|
|
30
|
+
exports.inferExportDelegateToUse = inferExportDelegateToUse;
|
|
24
31
|
//# sourceMappingURL=create-legacy-browser-delegate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-legacy-browser-delegate.js","sourceRoot":"","sources":["../../../src/configuration/create-legacy-browser-delegate.ts"],"names":[],"mappings":";;;AAgBA,
|
|
1
|
+
{"version":3,"file":"create-legacy-browser-delegate.js","sourceRoot":"","sources":["../../../src/configuration/create-legacy-browser-delegate.ts"],"names":[],"mappings":";;;AAgBA,4FAI8C;AAC9C,+FAAwF;AAIxF;;;;;;GAMG;AACH,SAAgB,qCAAqC,CACnD,MAA8B,EAC9B,UAA2C,EAC3C,kBAA0B,EAC1B,eAAuC;IAEvC,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,IAAA,qEAA+B,EAC7C,MAAM,EACN,kBAAkB,EAClB,eAAe,CAChB,CAAC;IAEF,OAAO,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAfD,sFAeC;AAED,SAAgB,wBAAwB,CACtC,aAAgD;IAEhD,IAAI,CAAC,aAAa,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE;QAChE,OAAO,sEAAkC,CAAC;KAC3C;SAAM,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE;QAClD,OAAO,iEAA6B,CAAC;KACtC;SAAM;QACL,OAAO,+DAA2B,CAAC;KACpC;AACH,CAAC;AAVD,4DAUC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ISerializer } from '@opentelemetry/otlp-transformer';\nimport {\n createOtlpFetchExportDelegate,\n createOtlpSendBeaconExportDelegate,\n createOtlpXhrExportDelegate,\n} from '../otlp-browser-http-export-delegate';\nimport { convertLegacyBrowserHttpOptions } from './convert-legacy-browser-http-options';\nimport { IOtlpExportDelegate } from '../otlp-export-delegate';\nimport { OTLPExporterConfigBase } from './legacy-base-configuration';\n\n/**\n * @deprecated\n * @param config\n * @param serializer\n * @param signalResourcePath\n * @param requiredHeaders\n */\nexport function createLegacyOtlpBrowserExportDelegate<Internal, Response>(\n config: OTLPExporterConfigBase,\n serializer: ISerializer<Internal, Response>,\n signalResourcePath: string,\n requiredHeaders: Record<string, string>\n): IOtlpExportDelegate<Internal> {\n const createOtlpExportDelegate = inferExportDelegateToUse(config.headers);\n\n const options = convertLegacyBrowserHttpOptions(\n config,\n signalResourcePath,\n requiredHeaders\n );\n\n return createOtlpExportDelegate(options, serializer);\n}\n\nexport function inferExportDelegateToUse(\n configHeaders: OTLPExporterConfigBase['headers']\n) {\n if (!configHeaders && typeof navigator.sendBeacon === 'function') {\n return createOtlpSendBeaconExportDelegate;\n } else if (typeof globalThis.fetch !== 'undefined') {\n return createOtlpFetchExportDelegate;\n } else {\n return createOtlpXhrExportDelegate;\n }\n}\n"]}
|
|
@@ -2,14 +2,37 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import type * as http from 'http';
|
|
4
4
|
import type * as https from 'https';
|
|
5
|
-
import { OTLPExporterConfigBase } from './legacy-base-configuration';
|
|
5
|
+
import type { OTLPExporterConfigBase } from './legacy-base-configuration';
|
|
6
|
+
import type { HttpAgentFactory } from './otlp-node-http-configuration';
|
|
6
7
|
/**
|
|
7
8
|
* Collector Exporter node base config
|
|
8
9
|
*/
|
|
9
10
|
export interface OTLPExporterNodeConfigBase extends OTLPExporterConfigBase {
|
|
10
11
|
keepAlive?: boolean;
|
|
11
12
|
compression?: CompressionAlgorithm;
|
|
12
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Custom HTTP agent options or a factory function for creating agents.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* Prefer using `http.AgentOptions` or `https.AgentOptions` over a factory function wherever possible.
|
|
18
|
+
* If using a factory function (`HttpAgentFactory`), **do not import `http.Agent` or `https.Agent`
|
|
19
|
+
* statically at the top of the file**.
|
|
20
|
+
* Instead, use dynamic `import()` or `require()` to load the module. This ensures that the `http` or `https`
|
|
21
|
+
* module is not loaded before `@opentelemetry/instrumentation-http` can instrument it.
|
|
22
|
+
*
|
|
23
|
+
* @example <caption> Using agent options directly: </caption>
|
|
24
|
+
* httpAgentOptions: {
|
|
25
|
+
* keepAlive: true,
|
|
26
|
+
* maxSockets: 10
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* @example <caption> Using a factory with dynamic import: </caption>
|
|
30
|
+
* httpAgentOptions: async (protocol) => {
|
|
31
|
+
* const module = protocol === 'http:' ? await import('http') : await import('https');
|
|
32
|
+
* return new module.Agent({ keepAlive: true });
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
httpAgentOptions?: http.AgentOptions | https.AgentOptions | HttpAgentFactory;
|
|
13
36
|
}
|
|
14
37
|
export declare enum CompressionAlgorithm {
|
|
15
38
|
NONE = "none",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-node-configuration.js","sourceRoot":"","sources":["../../../src/configuration/legacy-node-configuration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;
|
|
1
|
+
{"version":3,"file":"legacy-node-configuration.js","sourceRoot":"","sources":["../../../src/configuration/legacy-node-configuration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAwCH,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,qCAAa,CAAA;AACf,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// NOTE: do not change these imports to be actual imports, otherwise they WILL break `@opentelemetry/instrumentation-http`\nimport type * as http from 'http';\nimport type * as https from 'https';\n\nimport type { OTLPExporterConfigBase } from './legacy-base-configuration';\nimport type { HttpAgentFactory } from './otlp-node-http-configuration';\n\n/**\n * Collector Exporter node base config\n */\nexport interface OTLPExporterNodeConfigBase extends OTLPExporterConfigBase {\n keepAlive?: boolean;\n compression?: CompressionAlgorithm;\n /**\n * Custom HTTP agent options or a factory function for creating agents.\n *\n * @remarks\n * Prefer using `http.AgentOptions` or `https.AgentOptions` over a factory function wherever possible.\n * If using a factory function (`HttpAgentFactory`), **do not import `http.Agent` or `https.Agent`\n * statically at the top of the file**.\n * Instead, use dynamic `import()` or `require()` to load the module. This ensures that the `http` or `https`\n * module is not loaded before `@opentelemetry/instrumentation-http` can instrument it.\n *\n * @example <caption> Using agent options directly: </caption>\n * httpAgentOptions: {\n * keepAlive: true,\n * maxSockets: 10\n * }\n *\n * @example <caption> Using a factory with dynamic import: </caption>\n * httpAgentOptions: async (protocol) => {\n * const module = protocol === 'http:' ? await import('http') : await import('https');\n * return new module.Agent({ keepAlive: true });\n * }\n */\n httpAgentOptions?: http.AgentOptions | https.AgentOptions | HttpAgentFactory;\n}\n\nexport enum CompressionAlgorithm {\n NONE = 'none',\n GZIP = 'gzip',\n}\n"]}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import { OtlpSharedConfiguration } from './shared-configuration';
|
|
4
|
-
import type * as http from 'http';
|
|
5
|
-
import type * as https from 'https';
|
|
6
2
|
export interface OtlpHttpConfiguration extends OtlpSharedConfiguration {
|
|
7
3
|
url: string;
|
|
8
4
|
headers: () => Record<string, string>;
|
|
9
|
-
agentOptions: http.AgentOptions | https.AgentOptions;
|
|
10
5
|
}
|
|
11
6
|
/**
|
|
12
7
|
* @param userProvidedConfiguration Configuration options provided by the user in code.
|
|
@@ -41,8 +41,9 @@ function validateUserProvidedUrl(url) {
|
|
|
41
41
|
return undefined;
|
|
42
42
|
}
|
|
43
43
|
try {
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
// NOTE: In non-browser environments, `globalThis.location` will be `undefined`.
|
|
45
|
+
const base = globalThis.location?.href;
|
|
46
|
+
return new URL(url, base).href;
|
|
46
47
|
}
|
|
47
48
|
catch {
|
|
48
49
|
throw new Error(`Configuration: Could not parse user-provided export URL: '${url}'`);
|
|
@@ -60,9 +61,6 @@ function mergeOtlpHttpConfigurationWithDefaults(userProvidedConfiguration, fallb
|
|
|
60
61
|
url: validateUserProvidedUrl(userProvidedConfiguration.url) ??
|
|
61
62
|
fallbackConfiguration.url ??
|
|
62
63
|
defaultConfiguration.url,
|
|
63
|
-
agentOptions: userProvidedConfiguration.agentOptions ??
|
|
64
|
-
fallbackConfiguration.agentOptions ??
|
|
65
|
-
defaultConfiguration.agentOptions,
|
|
66
64
|
};
|
|
67
65
|
}
|
|
68
66
|
exports.mergeOtlpHttpConfigurationWithDefaults = mergeOtlpHttpConfigurationWithDefaults;
|
|
@@ -71,7 +69,6 @@ function getHttpConfigurationDefaults(requiredHeaders, signalResourcePath) {
|
|
|
71
69
|
...(0, shared_configuration_1.getSharedConfigurationDefaults)(),
|
|
72
70
|
headers: () => requiredHeaders,
|
|
73
71
|
url: 'http://localhost:4318/' + signalResourcePath,
|
|
74
|
-
agentOptions: { keepAlive: true },
|
|
75
72
|
};
|
|
76
73
|
}
|
|
77
74
|
exports.getHttpConfigurationDefaults = getHttpConfigurationDefaults;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otlp-http-configuration.js","sourceRoot":"","sources":["../../../src/configuration/otlp-http-configuration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iEAIgC;AAChC,kCAAsD;
|
|
1
|
+
{"version":3,"file":"otlp-http-configuration.js","sourceRoot":"","sources":["../../../src/configuration/otlp-http-configuration.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iEAIgC;AAChC,kCAAsD;AAOtD,SAAS,YAAY,CACnB,mBAAsE,EACtE,eAAkE,EAClE,cAA4C;IAE5C,MAAM,eAAe,GAAG;QACtB,GAAG,cAAc,EAAE;KACpB,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,OAAO,GAAG,EAAE;QACV,0BAA0B;QAC1B,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;SAC3C;QAED,mCAAmC;QACnC,IAAI,mBAAmB,IAAI,IAAI,EAAE;YAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;SAC/C;QAED,0BAA0B;QAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAuB;IACtD,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IACD,IAAI;QACF,gFAAgF;QAChF,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;QACvC,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;KAChC;IAAC,MAAM;QACN,MAAM,IAAI,KAAK,CACb,6DAA6D,GAAG,GAAG,CACpE,CAAC;KACH;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,sCAAsC,CACpD,yBAAyD,EACzD,qBAAqD,EACrD,oBAA2C;IAE3C,OAAO;QACL,GAAG,IAAA,+DAAwC,EACzC,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,CACrB;QACD,OAAO,EAAE,YAAY,CACnB,IAAA,kCAA2B,EAAC,yBAAyB,CAAC,OAAO,CAAC,EAC9D,qBAAqB,CAAC,OAAO,EAC7B,oBAAoB,CAAC,OAAO,CAC7B;QACD,GAAG,EACD,uBAAuB,CAAC,yBAAyB,CAAC,GAAG,CAAC;YACtD,qBAAqB,CAAC,GAAG;YACzB,oBAAoB,CAAC,GAAG;KAC3B,CAAC;AACJ,CAAC;AArBD,wFAqBC;AAED,SAAgB,4BAA4B,CAC1C,eAAuC,EACvC,kBAA0B;IAE1B,OAAO;QACL,GAAG,IAAA,qDAA8B,GAAE;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe;QAC9B,GAAG,EAAE,wBAAwB,GAAG,kBAAkB;KACnD,CAAC;AACJ,CAAC;AATD,oEASC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getSharedConfigurationDefaults,\n mergeOtlpSharedConfigurationWithDefaults,\n OtlpSharedConfiguration,\n} from './shared-configuration';\nimport { validateAndNormalizeHeaders } from '../util';\n\nexport interface OtlpHttpConfiguration extends OtlpSharedConfiguration {\n url: string;\n headers: () => Record<string, string>;\n}\n\nfunction mergeHeaders(\n userProvidedHeaders: (() => Record<string, string>) | undefined | null,\n fallbackHeaders: (() => Record<string, string>) | undefined | null,\n defaultHeaders: () => Record<string, string>\n): () => Record<string, string> {\n const requiredHeaders = {\n ...defaultHeaders(),\n };\n const headers = {};\n\n return () => {\n // add fallback ones first\n if (fallbackHeaders != null) {\n Object.assign(headers, fallbackHeaders());\n }\n\n // override with user-provided ones\n if (userProvidedHeaders != null) {\n Object.assign(headers, userProvidedHeaders());\n }\n\n // override required ones.\n return Object.assign(headers, requiredHeaders);\n };\n}\n\nfunction validateUserProvidedUrl(url: string | undefined): string | undefined {\n if (url == null) {\n return undefined;\n }\n try {\n // NOTE: In non-browser environments, `globalThis.location` will be `undefined`.\n const base = globalThis.location?.href;\n return new URL(url, base).href;\n } catch {\n throw new Error(\n `Configuration: Could not parse user-provided export URL: '${url}'`\n );\n }\n}\n\n/**\n * @param userProvidedConfiguration Configuration options provided by the user in code.\n * @param fallbackConfiguration Fallback to use when the {@link userProvidedConfiguration} does not specify an option.\n * @param defaultConfiguration The defaults as defined by the exporter specification\n */\nexport function mergeOtlpHttpConfigurationWithDefaults(\n userProvidedConfiguration: Partial<OtlpHttpConfiguration>,\n fallbackConfiguration: Partial<OtlpHttpConfiguration>,\n defaultConfiguration: OtlpHttpConfiguration\n): OtlpHttpConfiguration {\n return {\n ...mergeOtlpSharedConfigurationWithDefaults(\n userProvidedConfiguration,\n fallbackConfiguration,\n defaultConfiguration\n ),\n headers: mergeHeaders(\n validateAndNormalizeHeaders(userProvidedConfiguration.headers),\n fallbackConfiguration.headers,\n defaultConfiguration.headers\n ),\n url:\n validateUserProvidedUrl(userProvidedConfiguration.url) ??\n fallbackConfiguration.url ??\n defaultConfiguration.url,\n };\n}\n\nexport function getHttpConfigurationDefaults(\n requiredHeaders: Record<string, string>,\n signalResourcePath: string\n): OtlpHttpConfiguration {\n return {\n ...getSharedConfigurationDefaults(),\n headers: () => requiredHeaders,\n url: 'http://localhost:4318/' + signalResourcePath,\n };\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { OtlpHttpConfiguration } from './otlp-http-configuration';
|
|
4
|
+
import type * as http from 'http';
|
|
5
|
+
import type * as https from 'https';
|
|
6
|
+
export type HttpAgentFactory = (protocol: string) => http.Agent | https.Agent | Promise<http.Agent> | Promise<https.Agent>;
|
|
7
|
+
export interface OtlpNodeHttpConfiguration extends OtlpHttpConfiguration {
|
|
8
|
+
/**
|
|
9
|
+
* Factory function for creating agents.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* Prefer using {@link httpAgentFactoryFromOptions} over manually writing a factory function wherever possible.
|
|
13
|
+
* If using a factory function (`HttpAgentFactory`), **do not import `http.Agent` or `https.Agent`
|
|
14
|
+
* statically at the top of the file**.
|
|
15
|
+
* Instead, use dynamic `import()` or `require()` to load the module. This ensures that the `http` or `https`
|
|
16
|
+
* module is not loaded before `@opentelemetry/instrumentation-http` can instrument it.
|
|
17
|
+
*/
|
|
18
|
+
agentFactory: HttpAgentFactory;
|
|
19
|
+
}
|
|
20
|
+
export declare function httpAgentFactoryFromOptions(options: http.AgentOptions | https.AgentOptions): HttpAgentFactory;
|
|
21
|
+
/**
|
|
22
|
+
* @param userProvidedConfiguration Configuration options provided by the user in code.
|
|
23
|
+
* @param fallbackConfiguration Fallback to use when the {@link userProvidedConfiguration} does not specify an option.
|
|
24
|
+
* @param defaultConfiguration The defaults as defined by the exporter specification
|
|
25
|
+
*/
|
|
26
|
+
export declare function mergeOtlpNodeHttpConfigurationWithDefaults(userProvidedConfiguration: Partial<OtlpNodeHttpConfiguration>, fallbackConfiguration: Partial<OtlpNodeHttpConfiguration>, defaultConfiguration: OtlpNodeHttpConfiguration): OtlpNodeHttpConfiguration;
|
|
27
|
+
export declare function getNodeHttpConfigurationDefaults(requiredHeaders: Record<string, string>, signalResourcePath: string): OtlpNodeHttpConfiguration;
|
|
28
|
+
//# sourceMappingURL=otlp-node-http-configuration.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNodeHttpConfigurationDefaults = exports.mergeOtlpNodeHttpConfigurationWithDefaults = exports.httpAgentFactoryFromOptions = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright The OpenTelemetry Authors
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
const otlp_http_configuration_1 = require("./otlp-http-configuration");
|
|
20
|
+
function httpAgentFactoryFromOptions(options) {
|
|
21
|
+
return async (protocol) => {
|
|
22
|
+
const module = protocol === 'http:' ? import('http') : import('https');
|
|
23
|
+
const { Agent } = await module;
|
|
24
|
+
return new Agent(options);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.httpAgentFactoryFromOptions = httpAgentFactoryFromOptions;
|
|
28
|
+
/**
|
|
29
|
+
* @param userProvidedConfiguration Configuration options provided by the user in code.
|
|
30
|
+
* @param fallbackConfiguration Fallback to use when the {@link userProvidedConfiguration} does not specify an option.
|
|
31
|
+
* @param defaultConfiguration The defaults as defined by the exporter specification
|
|
32
|
+
*/
|
|
33
|
+
function mergeOtlpNodeHttpConfigurationWithDefaults(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration) {
|
|
34
|
+
return {
|
|
35
|
+
...(0, otlp_http_configuration_1.mergeOtlpHttpConfigurationWithDefaults)(userProvidedConfiguration, fallbackConfiguration, defaultConfiguration),
|
|
36
|
+
agentFactory: userProvidedConfiguration.agentFactory ??
|
|
37
|
+
fallbackConfiguration.agentFactory ??
|
|
38
|
+
defaultConfiguration.agentFactory,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
exports.mergeOtlpNodeHttpConfigurationWithDefaults = mergeOtlpNodeHttpConfigurationWithDefaults;
|
|
42
|
+
function getNodeHttpConfigurationDefaults(requiredHeaders, signalResourcePath) {
|
|
43
|
+
return {
|
|
44
|
+
...(0, otlp_http_configuration_1.getHttpConfigurationDefaults)(requiredHeaders, signalResourcePath),
|
|
45
|
+
agentFactory: httpAgentFactoryFromOptions({ keepAlive: true }),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
exports.getNodeHttpConfigurationDefaults = getNodeHttpConfigurationDefaults;
|
|
49
|
+
//# sourceMappingURL=otlp-node-http-configuration.js.map
|