Skip to content

Commit 1573820

Browse files
authored
Merge branch 'master' into undefined-null
2 parents 2fc0108 + 894c8d8 commit 1573820

File tree

41 files changed

+229
-128
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+229
-128
lines changed

.circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ cache_2: &cache_2
3131
- packages/opentelemetry-plugin-http/node_modules
3232
- packages/opentelemetry-plugin-https/node_modules
3333
- packages/opentelemetry-exporter-collector/node_modules
34-
- packages/opentelemetry-plugin-xml-http-request/node_modules
34+
- packages/opentelemetry-instrumentation-xml-http-request/node_modules
3535
- packages/opentelemetry-resource-detector-aws/node_modules
3636
- packages/opentelemetry-resource-detector-gcp/node_modules
3737
- packages/opentelemetry-resources/node_modules

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ These plugins are hosted at <https://github.com/open-telemetry/opentelemetry-js-
206206

207207
##### Core
208208

209-
- [@opentelemetry/plugin-xml-http-request][otel-plugin-xml-http-request]
209+
- [@opentelemetry/instrumentation-xml-http-request][otel-instrumentation-xml-http-request]
210210
- [@opentelemetry/plugin-fetch][otel-plugin-fetch]
211211

212212
##### Contrib
@@ -248,7 +248,7 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
248248
[otel-plugin-grpc-js]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-plugin-grpc-js
249249
[otel-plugin-http]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-plugin-http
250250
[otel-plugin-https]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-plugin-https
251-
[otel-plugin-xml-http-request]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-plugin-xml-http-request
251+
[otel-instrumentation-xml-http-request]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-instrumentation-xml-http-request
252252

253253
[otel-shim-opentracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-shim-opentracing
254254
[otel-tracing]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-tracing

examples/tracer-web/examples/user-interaction/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
</head>
2222

2323
<body>
24-
Example of using Web Tracer with UserInteractionPlugin and XMLHttpRequestPlugin with console exporter and collector exporter
24+
Example of using Web Tracer with UserInteractionPlugin and XMLHttpRequestInstrumentation with console exporter and collector exporter
2525
<script type="text/javascript" src="user-interaction.js"></script>
2626
<br/>
2727
<button id="btnAdd" class="btnAddClass">Add button</button>

examples/tracer-web/examples/user-interaction/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing';
22
import { WebTracerProvider } from '@opentelemetry/web';
3-
import { XMLHttpRequestPlugin } from '@opentelemetry/plugin-xml-http-request';
43
import { UserInteractionPlugin } from '@opentelemetry/plugin-user-interaction';
54
import { ZoneContextManager } from '@opentelemetry/context-zone';
65
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
76
import { B3Propagator } from '@opentelemetry/propagator-b3';
7+
import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';
88

99
const providerWithZone = new WebTracerProvider({
1010
plugins: [
1111
new UserInteractionPlugin(),
12-
new XMLHttpRequestPlugin({
12+
new XMLHttpRequestInstrumentation({
1313
ignoreUrls: [/localhost/],
1414
propagateTraceHeaderCorsUrls: [
1515
'http://localhost:8090',

examples/tracer-web/examples/xml-http-request/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing';
22
import { WebTracerProvider } from '@opentelemetry/web';
3-
import { XMLHttpRequestPlugin } from '@opentelemetry/plugin-xml-http-request';
3+
import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';
44
import { ZoneContextManager } from '@opentelemetry/context-zone';
55
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector';
66
import { B3Propagator } from '@opentelemetry/propagator-b3';
77

88
const providerWithZone = new WebTracerProvider({
99
plugins: [
10-
new XMLHttpRequestPlugin({
10+
new XMLHttpRequestInstrumentation({
1111
ignoreUrls: [/localhost:8090\/sockjs-node/],
1212
propagateTraceHeaderCorsUrls: [
1313
'https://httpbin.org/get',

examples/tracer-web/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"@opentelemetry/plugin-document-load": "^0.9.0",
4444
"@opentelemetry/plugin-fetch": "^0.12.0",
4545
"@opentelemetry/plugin-user-interaction": "^0.9.0",
46-
"@opentelemetry/plugin-xml-http-request": "^0.12.0",
46+
"@opentelemetry/instrumentation-xml-http-request": "^0.12.0",
4747
"@opentelemetry/tracing": "^0.12.0",
4848
"@opentelemetry/web": "^0.12.0"
4949
},

metapackages/plugins-web-core/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This package depends on all core web plugins maintained by OpenTelemetry authors
99

1010
## Plugins
1111

12-
- [@opentelemetry/plugin-xml-http-request][otel-plugin-xml-http-request]
12+
- [@opentelemetry/instrumentation-xml-http-request][otel-instrumentation-xml-http-request]
1313

1414
## Useful links
1515

@@ -30,4 +30,4 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
3030
[npm-url]: https://www.npmjs.com/package/@opentelemetry/plugins-web-core
3131
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fplugins-web-core.svg
3232

33-
[otel-plugin-xml-http-request]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-plugin-xml-http-request
33+
[otel-instrumentation-xml-http-request]: https://github.com/open-telemetry/opentelemetry-js/tree/master/packages/opentelemetry-instrumentation-xml-http-request

metapackages/plugins-web-core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
1717
},
1818
"dependencies": {
19-
"@opentelemetry/plugin-xml-http-request": "^0.12.0"
19+
"@opentelemetry/instrumentation-xml-http-request": "^0.12.0"
2020
}
2121
}

packages/opentelemetry-core/src/utils/environment.ts

+18-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,16 @@ export interface ENVIRONMENT {
2525
OTEL_LOG_LEVEL?: LogLevel;
2626
OTEL_NO_PATCH_MODULES?: string;
2727
OTEL_SAMPLING_PROBABILITY?: number;
28+
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT?: number;
29+
OTEL_SPAN_EVENT_COUNT_LIMIT?: number;
30+
OTEL_SPAN_LINK_COUNT_LIMIT?: number;
2831
}
2932

3033
const ENVIRONMENT_NUMBERS: Partial<keyof ENVIRONMENT>[] = [
3134
'OTEL_SAMPLING_PROBABILITY',
35+
'OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT',
36+
'OTEL_SPAN_EVENT_COUNT_LIMIT',
37+
'OTEL_SPAN_LINK_COUNT_LIMIT',
3238
];
3339

3440
/**
@@ -38,6 +44,9 @@ export const DEFAULT_ENVIRONMENT: Required<ENVIRONMENT> = {
3844
OTEL_NO_PATCH_MODULES: '',
3945
OTEL_LOG_LEVEL: LogLevel.INFO,
4046
OTEL_SAMPLING_PROBABILITY: 1,
47+
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: 1000,
48+
OTEL_SPAN_EVENT_COUNT_LIMIT: 1000,
49+
OTEL_SPAN_LINK_COUNT_LIMIT: 1000,
4150
};
4251

4352
/**
@@ -57,8 +66,15 @@ function parseNumber(
5766
) {
5867
if (typeof values[name] !== 'undefined') {
5968
const value = Number(values[name] as string);
60-
if (!isNaN(value) && value >= min && value <= max) {
61-
environment[name] = value;
69+
70+
if (!isNaN(value)) {
71+
if (value < min) {
72+
environment[name] = min;
73+
} else if (value > max) {
74+
environment[name] = max;
75+
} else {
76+
environment[name] = value;
77+
}
6278
}
6379
}
6480
}

packages/opentelemetry-core/test/utils/environment.test.ts

+20
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,31 @@ describe('environment', () => {
7777
OTEL_NO_PATCH_MODULES: 'a,b,c',
7878
OTEL_LOG_LEVEL: 'ERROR',
7979
OTEL_SAMPLING_PROBABILITY: '0.5',
80+
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT: 10,
81+
OTEL_SPAN_EVENT_COUNT_LIMIT: 20,
82+
OTEL_SPAN_LINK_COUNT_LIMIT: 30,
8083
});
8184
const env = getEnv();
8285
assert.strictEqual(env.OTEL_NO_PATCH_MODULES, 'a,b,c');
8386
assert.strictEqual(env.OTEL_LOG_LEVEL, LogLevel.ERROR);
8487
assert.strictEqual(env.OTEL_SAMPLING_PROBABILITY, 0.5);
88+
assert.strictEqual(env.OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT, 10);
89+
assert.strictEqual(env.OTEL_SPAN_EVENT_COUNT_LIMIT, 20);
90+
assert.strictEqual(env.OTEL_SPAN_LINK_COUNT_LIMIT, 30);
91+
});
92+
93+
it('should match invalid values to closest valid equivalent', () => {
94+
mockEnvironment({
95+
OTEL_SAMPLING_PROBABILITY: '-0.1',
96+
});
97+
const minEnv = getEnv();
98+
assert.strictEqual(minEnv.OTEL_SAMPLING_PROBABILITY, 0);
99+
100+
mockEnvironment({
101+
OTEL_SAMPLING_PROBABILITY: '1.1',
102+
});
103+
const maxEnv = getEnv();
104+
assert.strictEqual(maxEnv.OTEL_SAMPLING_PROBABILITY, 1);
85105
});
86106

87107
it('should parse OTEL_LOG_LEVEL despite casing', () => {

packages/opentelemetry-plugin-xml-http-request/README.md renamed to packages/opentelemetry-instrumentation-xml-http-request/README.md

+22-9
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,38 @@ This module provides auto instrumentation for web using XMLHttpRequest .
1111
## Installation
1212

1313
```bash
14-
npm install --save @opentelemetry/plugin-xml-http-request
14+
npm install --save @opentelemetry/instrumentation-xml-http-request
1515
```
1616

1717
## Usage
1818

1919
```js
2020
import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing';
2121
import { WebTracer } from '@opentelemetry/web';
22-
import { XMLHttpRequestPlugin } from '@opentelemetry/plugin-xml-http-request';
22+
import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';
2323
import { ZoneContextManager } from '@opentelemetry/context-zone';
2424

25+
// this is still possible
2526
const webTracerWithZone = new WebTracer({
2627
contextManager: new ZoneContextManager(),
2728
plugins: [
28-
new XMLHttpRequestPlugin({
29+
new XMLHttpRequestInstrumentation({
2930
propagateTraceHeaderCorsUrls: ['http://localhost:8090']
3031
})
3132
]
3233
});
34+
/////////////////////////////////////////
35+
36+
// or plugin can be also initialised separately and then set the tracer provider or meter provider
37+
const xmlHttpRequestInstrumentation = new XMLHttpRequestInstrumentation({
38+
propagateTraceHeaderCorsUrls: ['http://localhost:8090']
39+
});
40+
const webTracerWithZone = new WebTracer({
41+
contextManager: new ZoneContextManager(),
42+
});
43+
xmlHttpRequestInstrumentation.setTracerProvider(webTracerWithZone);
44+
/////////////////////////////////////////
45+
3346
webTracerWithZone.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
3447

3548
// and some test
@@ -61,9 +74,9 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
6174
[gitter-url]: https://gitter.im/open-telemetry/opentelemetry-node?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
6275
[license-url]: https://github.com/open-telemetry/opentelemetry-js/blob/master/LICENSE
6376
[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat
64-
[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-plugin-xml-http-request
65-
[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-plugin-xml-http-request
66-
[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-plugin-xml-http-request
67-
[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-plugin-xml-http-request&type=dev
68-
[npm-url]: https://www.npmjs.com/package/@opentelemetry/plugin-xml-http-request
69-
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fplugin-xml-http-request.svg
77+
[dependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/status.svg?path=packages/opentelemetry-instrumentation-xml-http-request
78+
[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-instrumentation-xml-http-request
79+
[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-instrumentation-xml-http-request
80+
[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-instrumentation-xml-http-request&type=dev
81+
[npm-url]: https://www.npmjs.com/package/@opentelemetry/instrumentation-xml-http-request
82+
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Finstrumentation-xml-http-request.svg

packages/opentelemetry-plugin-xml-http-request/package.json renamed to packages/opentelemetry-instrumentation-xml-http-request/package.json

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@opentelemetry/plugin-xml-http-request",
2+
"name": "@opentelemetry/instrumentation-xml-http-request",
33
"version": "0.12.0",
44
"description": "OpenTelemetry XMLHttpRequest automatic instrumentation package.",
55
"main": "build/src/index.js",
@@ -50,7 +50,6 @@
5050
"@opentelemetry/tracing": "^0.12.0",
5151
"@types/mocha": "8.0.2",
5252
"@types/node": "14.0.27",
53-
"@types/shimmer": "1.0.1",
5453
"@types/sinon": "9.0.4",
5554
"@types/webpack-env": "1.15.2",
5655
"babel-loader": "8.1.0",
@@ -77,9 +76,9 @@
7776
},
7877
"dependencies": {
7978
"@opentelemetry/api": "^0.12.0",
79+
"@opentelemetry/instrumentation": "^0.12.0",
8080
"@opentelemetry/core": "^0.12.0",
8181
"@opentelemetry/semantic-conventions": "^0.12.0",
82-
"@opentelemetry/web": "^0.12.0",
83-
"shimmer": "^1.2.1"
82+
"@opentelemetry/web": "^0.12.0"
8483
}
8584
}

0 commit comments

Comments
 (0)