diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5560a120..753b4c81 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,14 +15,10 @@ jobs:
fail-fast: false
matrix:
container: ['node:16.0.0']
- node_api_target: ['18.0.0']
+ node_api_target: ['18.0.0', '20.0.0', '21.2.0', '22.0.0']
include:
- - container: 'node:16.0.0'
- node_api_target: '20.0.0'
- - container: 'node:16.0.0'
- node_api_target: '21.2.0'
- - container: 'node:16.0.0'
- node_api_target: '22.0.0'
+ - container: 'node:18.0.0'
+ node_api_target: '23.0.0'
container: ${{ matrix.container }}
steps:
- name: Checkout
@@ -43,14 +39,10 @@ jobs:
fail-fast: false
matrix:
container: ['node:16.0.0']
- node_api_target: ['18.0.0']
+ node_api_target: ['18.0.0', '20.0.0', '21.2.0', '22.0.0']
include:
- - container: 'node:16.0.0'
- node_api_target: '20.0.0'
- - container: 'node:16.0.0'
- node_api_target: '21.2.0'
- - container: 'node:16.0.0'
- node_api_target: '22.0.0'
+ - container: 'node:18.0.0'
+ node_api_target: '23.0.0'
container: ${{ matrix.container }}
steps:
- name: Checkout
@@ -70,10 +62,10 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [windows-2019, macos-12]
- node_api_target: ['18.0.0', '20.0.0', '21.2.0', '22.0.0']
+ os: [windows-2019, macos-13]
+ node_api_target: ['18.0.0', '20.0.0', '21.2.0', '22.0.0', '23.0.0']
include:
- - os: macos-12
+ - os: macos-13
python_version: '3.11'
runs-on: ${{ matrix.os }}
steps:
@@ -135,7 +127,7 @@ jobs:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest']
- nodejs: ['18', '20', '21', '22']
+ nodejs: ['18', '20', '21', '22', '23']
include:
- os: 'macos-latest'
python_version: '3.11'
@@ -147,6 +139,8 @@ jobs:
nodejs: '21.7.2'
- os: 'windows-2019'
nodejs: '22.10.0'
+ - os: 'windows-2019'
+ nodejs: '23.0.0'
steps:
- name: Checkout
uses: actions/checkout@v3
@@ -172,7 +166,7 @@ jobs:
fail-fast: false
matrix:
os: ['ARM64']
- nodejs: ['18', '20', '21', '22']
+ nodejs: ['18', '20', '21', '22', '23']
container: node:${{ matrix.nodejs }}
steps:
- name: Checkout
diff --git a/Dockerfile b/Dockerfile
index 8cf00f71..63deaa3c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,7 +3,7 @@ WORKDIR /splunk-otel-js
COPY . .
RUN npm install
RUN npm run compile
-RUN npm run prebuild:os '14.0.0' '15.0.0' '16.0.0' '17.0.1' '18.0.0'
+RUN npm run prebuild:os '18.0.0' '20.0.0' '21.2.0' '22.0.0'
RUN npm pack && tar xf splunk-otel-$(npm view @splunk/otel version).tgz
RUN npm prune --omit=dev && cp -r node_modules/ package
@@ -13,7 +13,7 @@ WORKDIR /splunk-otel-js
COPY . .
RUN npm install
RUN npm run compile
-RUN npm run prebuild:os '14.0.0' '15.0.0' '16.0.0' '17.0.1' '18.0.0'
+RUN npm run prebuild:os '18.0.0' '20.0.0' '21.2.0' '22.0.0'
RUN npm pack && tar xf splunk-otel-$(npm view @splunk/otel version).tgz
RUN npm prune --omit=dev && cp -r node_modules/ package
@@ -22,7 +22,7 @@ WORKDIR /splunk-otel-js
COPY . .
RUN npm install
RUN npm run compile
-RUN npm run prebuild:os '14.0.0' '15.0.0' '16.0.0' '17.0.1' '18.0.0'
+RUN npm run prebuild:os '18.0.0' '20.0.0' '21.2.0' '22.0.0'
RUN npm pack && tar xf splunk-otel-$(npm view @splunk/otel version).tgz
RUN npm prune --omit=dev && cp -r node_modules/ package
diff --git a/README.md b/README.md
index 5a41d022..39512f64 100644
--- a/README.md
+++ b/README.md
@@ -19,8 +19,7 @@ The Splunk Distribution of [OpenTelemetry JS](https://github.com/open-telemetry/
This distribution comes with the following defaults:
- [W3C tracecontext and baggage propagation](https://www.w3.org/TR/trace-context)
-- [OTLP exporter](https://www.npmjs.com/package/@opentelemetry/exporter-trace-otlp-grpc)
- configured to send spans to a locally running OpenTelemetry Collector over gRPC
+- [OTLP exporter](https://www.npmjs.com/package/@opentelemetry/exporter-trace-otlp-proto) configured to send spans to a locally running OpenTelemetry Collector over HTTP.
- Many bundled [instrumentations](#default-instrumentation-packages)
If you're using the SignalFx Tracing Library for Node and want to migrate to the Splunk Distribution of OpenTelemetry Node, see [Migrate from the SignalFx Tracing Library for NodeJS](https://quickdraw.splunk.com/redirect/?product=Observability&version=current&location=nodejs.application.migrate) in the official documentation.
@@ -82,7 +81,7 @@ You can find more instrumentation packages in the [OpenTelemetry Registry](https
For troubleshooting issues with the Splunk Distribution of OpenTelemetry JS, see [Troubleshoot Node.js instrumentation for Splunk Observability Cloud](https://quickdraw.splunk.com/redirect/?product=Observability&version=current&location=nodejs.application.tshoot) in the official documentation.
-> Examples and developer documentation for version 1.x is available at [/tree/1.x](https://github.com/signalfx/splunk-otel-js/tree/1.x).
+> Examples and developer documentation for version 2.x is available at [/tree/2.x](https://github.com/signalfx/splunk-otel-js/tree/2.x).
# License
diff --git a/RELEASING.md b/RELEASING.md
index 36b6c346..685f83ff 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -34,5 +34,3 @@ Once the PR is approved, you need to merge it. The rest of the process is automa
Go to the internal Splunk mirror of this repository and verify that the pipeline job for your new version was successful.
Go to [https://www.npmjs.com/package/@splunk/otel](https://www.npmjs.com/package/@splunk/otel) and verify the new package was published. It may take a few minutes for the npmjs.com web interface to reflect the new package but it should be installable instantly.
-
-Navigate to all `examples/*`, install dependencies and manually verify that the examples are working as expected per README. `@splunk/otel` version in package.json in `examples/*` is updated while [generating changelog](#step-2).
diff --git a/docs/advanced-config.md b/docs/advanced-config.md
index 5a21d3e5..5a626e03 100644
--- a/docs/advanced-config.md
+++ b/docs/advanced-config.md
@@ -56,7 +56,7 @@ This distribution supports all the configuration options supported by the compon
| `OTEL_ATTRIBUTE_COUNT_LIMIT` | | Stable | Maximum allowed span attribute count
| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | `12000`\* | Stable | Maximum allowed attribute value size
| `OTEL_EXPORTER_OTLP_ENDPOINT`
`endpoint` | `http://localhost:4318` | Stable | The OTLP endpoint to export to.
-| `OTEL_LOG_LEVEL` | | Stable | Log level to use in diagnostics logging. **Does not set the logger.**
+| `OTEL_LOG_LEVEL` | | Stable | Log level to use in diagnostics logging.
| `OTEL_PROPAGATORS`
`tracing.propagators` | `tracecontext,baggage` | Stable | Comma-delimited list of propagators to use. Valid keys: `baggage`, `tracecontext`, `b3multi`, `b3`.
| `OTEL_RESOURCE_ATTRIBUTES` | | Stable | Comma-separated list of resource attributes added to every reported span. Example
`key1=val1,key2=val2`
| `OTEL_SERVICE_NAME`
`serviceName` | `unnamed-node-service` | Stable | The service name of this Node service.
@@ -65,6 +65,7 @@ This distribution supports all the configuration options supported by the compon
| `OTEL_SPAN_EVENT_COUNT_LIMIT` | `128` | Stable |
| `OTEL_SPAN_LINK_COUNT_LIMIT` | `1000`\* | Stable |
| `OTEL_TRACES_EXPORTER`
`tracing.spanExporterFactory` | `otlp` | Stable | Chooses the trace exporters. Shortcut for setting `spanExporterFactory`. Comma-delimited list of exporters. Currently supported values: `otlp`, `console`, `none`.
+| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | `http/protobuf` | Stable | Metric exporter protocol. Supported values: `http/protobuf`, `grpc`.
| `OTEL_TRACES_SAMPLER` | `parentbased_always_on` | Stable | Sampler to be used for traces. See [Sampling](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#sampling)
| `OTEL_TRACES_SAMPLER_ARG` | | Stable | String value to be used as the sampler argument. Only be used if OTEL_TRACES_SAMPLER is set.
| `SPLUNK_ACCESS_TOKEN`
`accessToken` | | Stable | The optional access token for exporting signal data directly to SignalFx API.
@@ -78,8 +79,6 @@ This distribution supports all the configuration options supported by the compon
The following config options can be set by passing them as tracing arguments to `start()`.
-- `tracing.tracerConfig`: A JS object that is merged into the default tracer config replacing any existing keys. It's passed to the tracer provider during initialization. This can be used to customize the tracer provider or tracer. Must satisfy [`TracerConfig` interface](https://github.com/open-telemetry/opentelemetry-js/blob/71ba83a0dc51118e08e3148c788b81fe711003e7/packages/opentelemetry-tracing/src/types.ts#L26)
-
- `tracing.resourceFactory`: A function that is invoked with the default resource detected from the environment. Can be used to change the detected attributes or return a completely new resource.
- `tracing.spanExporterFactory`: A function that accepts the tracing options. Returns a new instance of SpanExporter. When set, this function is used to create a new exporter and the returned exporter will be used in the pipeline.
@@ -92,6 +91,9 @@ The following config options can be set by passing them as tracing arguments to
- `tracing.captureHttpRequestUriParams`: Either a list of keys (case-sensitive) of HTTP query parameters to capture or a function that gets invoked with the current span and query parameters to set a custom span attribute. When using the former, parameters are set as span attributes as `http.request.param.${key}`. Attribute keys are normalized at capture time, meaning `.` is replaced with `_` to avoid any attribute namespacing issues.
+- `tracing.tracerConfig`: An object that is merged into the default tracer config replacing any existing keys. It's passed to the tracer provider during initialization. This can be used to customize the tracer provider or tracer. Must satisfy [`TracerConfig` interface](https://open-telemetry.github.io/opentelemetry-js/interfaces/_opentelemetry_sdk_trace_base.TracerConfig.html)
+
+
### Metrics
| Environment variable
``start()`` argument | Default value | Support | Notes
diff --git a/examples/mixed/README.md b/examples/mixed/README.md
index b4f8674f..3fc90186 100644
--- a/examples/mixed/README.md
+++ b/examples/mixed/README.md
@@ -6,7 +6,7 @@ This example showcases a more extensive integration with OpenTelemetry(OTel):
2. manual instrumentation: [index.js](./index.js) manually creates spans for custom "work",
3. log injection: the example is using a logging library `pino` for structured logging, `trace_id` and `span_id` properties are added to every log line automatically.
-By default it requires OTel Collector to be running with OTLP reciever open on `localhost:4317`.
+By default it requires OTel Collector to be running with OTLP reciever open on `localhost:4318`.
```shell
# Exposing ports for OTLP/gRPC and OTLP/HTTP from collector
diff --git a/package-lock.json b/package-lock.json
index 15df0252..1e84fa47 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@splunk/otel",
- "version": "2.13.0",
+ "version": "2.15.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@splunk/otel",
- "version": "2.13.0",
+ "version": "2.15.0",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
@@ -105,7 +105,7 @@
"winston": "3.10.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"peerDependencies": {
"@opentelemetry/api": "^1.3.0"
diff --git a/package.json b/package.json
index 3df78a83..6114859b 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@splunk/otel",
- "version": "2.13.0",
+ "version": "2.15.0",
"description": "The Splunk distribution of OpenTelemetry Node Instrumentation provides a Node agent that automatically instruments your Node application to capture and report distributed traces to Splunk APM.",
"repository": "git@github.com:signalfx/splunk-otel-js.git",
"author": "Splunk ",
@@ -37,7 +37,7 @@
"stats"
],
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"files": [
"binding.gyp",
diff --git a/scripts/prebuild-os.js b/scripts/prebuild-os.js
index 30322fb1..0481c913 100644
--- a/scripts/prebuild-os.js
+++ b/scripts/prebuild-os.js
@@ -4,15 +4,12 @@ let targets = process.argv.slice(2);
if (targets.length == 0) {
targets = [
- '14.0.0',
- '15.0.0',
- '16.0.0',
- '17.0.1',
'18.0.0',
'19.0.0',
'20.0.0',
'21.2.0',
- '22.0.0'
+ '22.0.0',
+ '23.0.0'
];
}
diff --git a/src/types.ts b/src/types.ts
index cfa37cdd..f623af28 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -22,7 +22,6 @@ export type ResourceFactory = (resource: Resource) => Resource;
export type EnvVarKey =
| 'OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT'
- | 'OTEL_BSP_SCHEDULE_DELAY'
| 'OTEL_EXPORTER_OTLP_CERTIFICATE'
| 'OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE'
| 'OTEL_EXPORTER_OTLP_CLIENT_KEY'
diff --git a/src/utils.ts b/src/utils.ts
index 7913d9d6..d7b10dcc 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -248,7 +248,7 @@ export function listEnvVars() {
property: '',
description:
'The delay in milliseconds between 2 consecutive bath span processor exports.',
- default: '500',
+ default: '5000',
type: 'number',
category: 'instrumentation',
},
@@ -283,7 +283,7 @@ export function listEnvVars() {
name: 'OTEL_EXPORTER_OTLP_ENDPOINT',
property: 'endpoint',
description: 'The OTLP endpoint to export to.',
- default: 'http://localhost:4317',
+ default: 'http://localhost:4318',
type: 'string',
category: 'exporter',
},
@@ -292,7 +292,7 @@ export function listEnvVars() {
property: '',
description:
'Chooses the trace exporter protocol. Allowed values are grpc and http/protobuf',
- default: 'grpc',
+ default: 'http/protobuf',
type: 'string',
category: 'exporter',
},
@@ -301,7 +301,7 @@ export function listEnvVars() {
property: 'metrics.metricReaderFactory',
description:
'Chooses the metric exporter protocol. Allowed values are grpc and http/protobuf',
- default: 'grpc',
+ default: 'http/protobuf',
type: 'string',
category: 'exporter',
},
@@ -309,7 +309,7 @@ export function listEnvVars() {
name: 'OTEL_EXPORTER_OTLP_PROTOCOL',
property: '',
description: 'The protocol to use for OTLP exports.',
- default: 'grpc',
+ default: 'http/protobuf',
type: 'string',
category: 'exporter',
},
@@ -317,7 +317,7 @@ export function listEnvVars() {
name: 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT',
property: '',
description: 'The traces OTLP endpoint to export to.',
- default: 'http://localhost:4317',
+ default: 'http://localhost:4318',
type: 'string',
category: 'exporter',
},
@@ -439,7 +439,7 @@ export function listEnvVars() {
name: 'SPLUNK_PROFILER_LOGS_ENDPOINT',
property: 'profiling.endpoint',
description: 'The collector endpoint for profiler logs.',
- default: 'http://localhost:4317',
+ default: 'http://localhost:4318',
type: 'string',
category: 'profiler',
},
diff --git a/src/version.ts b/src/version.ts
index 8a0eb0c6..07f7fae1 100644
--- a/src/version.ts
+++ b/src/version.ts
@@ -14,4 +14,4 @@
* limitations under the License.
*/
-export const VERSION = '2.13.0';
+export const VERSION = '2.15.0';