Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit 164229c

Browse files
changes
1 parent 6e44d2d commit 164229c

28 files changed

+1924
-114
lines changed

apm/set-up-apm/apm-gdi.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ In the following table, follow the instrumentation steps for the language that e
109109

110110
* - Node.js
111111
- Splunk Distribution of OpenTelemetry JS
112-
- :ref:`get-started-nodejs`
112+
- :ref:`get-started-nodejs-3x`
113113

114114
* - Go
115115
- Splunk Distribution of OpenTelemetry Go

gdi/get-data-in/application/application.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ If you send your APM data directly to Splunk Observability Cloud without using t
8484
You can instrument applications in each of these languages using official Splunk instrumentation:
8585

8686
- :ref:`Java <get-started-java>`
87-
- :ref:`Node.js <get-started-nodejs>`
87+
- :ref:`Node.js <get-started-nodejs-3x>`
8888
- :ref:`.NET <get-started-dotnet-otel>`
8989
- :ref:`Go <get-started-go>`
9090
- :ref:`Python <get-started-python>`
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
.. _nodejs-3x-breaking-changes:
2+
3+
*****************************************************
4+
Splunk OpenTelemetry JS version 3.0 breaking changes
5+
*****************************************************
6+
7+
.. meta::
8+
:description: Learn about the latest changes for Splunk OpenTelemetry JS version 3.0.
9+
10+
The Splunk OpenTelemetry JS version 3.0 contains a set of breaking changes. Previous versions (version 2.15.0 and prior) are compatible with these new changes. For more information about previous versions, see :ref:`get-started-nodejs`.
11+
12+
Update to Splunk OpenTelemetry JS version 3.0
13+
==========================================================
14+
15+
To update your Splunk Distribution for OpenTelemetry JS agent to version 3.0, see :ref:`instrument-nodejs-applications-3x` and install the latest version of the Splunk OpenTelemetry JS agent.
16+
17+
Default port and protocol changes
18+
=================================
19+
20+
In the Node.js 3.x instrumentation, the default protocol changed from gRPC to http/protobuf.
21+
22+
If a custom configuration overrides the default endpoint setting, you must make sure of the following:
23+
24+
#. Verify that the Node.js agent configuration is correct:
25+
26+
#. Verify that you are using the correct port for the selected protocol:
27+
28+
* gRPC: 4317
29+
* http/protobuf: 4318
30+
31+
#. Verify that the custom endpoint configuration uses the correct port. For example: ``OTEL_EXPORTER_OTLP_ENDPOINT=http://<host>:4318``.
32+
33+
#. Verify that the custom protocol configuration uses the correct protocol. For example: ``OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf``.
34+
35+
#. In the OTel Collector configuration file, verify that the associated OTLP receiver protocols match those used by the Node.js agent. Here is an example OTLP receiver configuration in the OTel Collector file:
36+
37+
.. code-block:: yaml
38+
39+
otlp:
40+
protocols:
41+
grpc:
42+
endpoint: "${SPLUNK_LISTEN_INTERFACE}:4317"
43+
http:
44+
endpoint: "${SPLUNK_LISTEN_INTERFACE}:4318"
45+
46+
Troubleshooting
47+
======================
48+
49+
.. include:: /_includes/troubleshooting-components.rst

gdi/get-data-in/application/nodejs/configuration/advanced-nodejs-otel-configuration.rst

Lines changed: 17 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. _advanced-nodejs-otel-configuration:
1+
.. _advanced-nodejs-otel-configuration-3x:
22

33
***************************************************************************
44
Configure the Splunk Distribution of OTel JS for Splunk Observability Cloud
@@ -11,7 +11,7 @@ You can configure the Splunk Distribution of OpenTelemetry JS to suit your instr
1111

1212
The following sections describe all available settings for configuring OpenTelemetry for Node.js, including options for activating new features that are unique to the Splunk Distribution of OpenTelemetry JS.
1313

14-
.. _configuration-methods-nodejs:
14+
.. _configuration-methods-nodejs-3x:
1515

1616
Configuration methods
1717
===========================================================
@@ -55,7 +55,7 @@ You can also activate the collection of a specific data type by passing a boolea
5555
5656
.. note:: Function arguments take precedence over the corresponding environment variables.
5757

58-
.. _main-nodejs-agent-settings:
58+
.. _main-nodejs-agent-settings-3x:
5959

6060
General settings
6161
=========================================================================
@@ -66,7 +66,7 @@ The following settings are specific to the Splunk Distribution of OpenTelemetry
6666

6767
<div class="instrumentation" section="settings" group="category" filter="general" url="https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml" data-renaming='{"keys": "Identifier", "description": "Description", "instrumented_components": "Components", "signals": "Signals", "env": "Environment variable", "default": "Default", "type": "Type", "property": "Argument to start()"}'></div>
6868

69-
.. _instrumentation-configuration-nodejs:
69+
.. _instrumentation-configuration-nodejs-3x:
7070

7171
Instrumentations configuration
7272
=======================================================
@@ -87,7 +87,7 @@ For example, to turn off all default instrumentations and only turn on the ``bun
8787
The previous settings only apply to instrumentations loaded by the Splunk Distribution of OpenTelemetry JS by default. When using the programmatic API to supply a list of user-specified instrumentations, they have no effect.
8888

8989

90-
.. _trace-configuration-nodejs:
90+
.. _trace-configuration-nodejs-3x:
9191

9292
Trace configuration
9393
=======================================================
@@ -120,10 +120,10 @@ The following settings control tracing limits and attributes:
120120
- Maximum number of links per span. Default value is ``1000``.
121121
* - OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT
122122
- Not applicable
123-
- Maximum length of strings for attribute values. Values larger than the limit are truncated. Default value is ``1200``. Empty values are treated as infinity.
123+
- Maximum length of strings for attribute values. Values larger than the limit are truncated. Default value is ``12000``. Empty values are treated as infinity.
124124

125125

126-
.. _trace-sampling-settings-nodejs:
126+
.. _trace-sampling-settings-nodejs-3x:
127127

128128
Samplers configuration
129129
===============================================================
@@ -132,19 +132,20 @@ The following settings control trace sampling:
132132

133133
.. list-table::
134134
:header-rows: 1
135-
:widths: 30 70
135+
:widths: 20 40 40
136136
:width: 100%
137137

138138
* - Environment variable
139139
- Description
140+
- Default value
140141
* - OTEL_TRACES_SAMPLER
141142
- Sampler to use. The default value is ``parentbased_always_on``. Possible values are: ``always_on``, ``always_off``, ``parentbased_always_on``, ``parentbased_always_off``, ``traceidratio``, ``parentbased_traceidratio``. See :new-page:`Built-in samplers <https://github.com/open-telemetry/opentelemetry-js/blob/main/packages/opentelemetry-sdk-trace-base/README.md#built-in-samplers>` in the official OpenTelemetry documentation for more information.
142-
143+
- ``always_on``
143144
* - OTEL_TRACES_SAMPLER_ARG
144145
- Semicolon-separated list of rules for the ``rules`` sampler. For example, when setting the sampler to ``parentbased_traceidratio`` you can set the ratio using a number in the 0 to 1 range: |br| |br| ``OTEL_TRACES_SAMPLER_ARG=0.25``.
146+
- None
145147

146-
147-
.. _trace-exporters-settings-nodejs:
148+
.. _trace-exporters-settings-nodejs-3x:
148149

149150
Exporters configuration
150151
===============================================================
@@ -155,7 +156,7 @@ The following settings control trace exporters and their endpoints:
155156

156157
<div class="instrumentation" section="settings" group="category" filter="exporter" url="https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml" data-renaming='{"keys": "Identifier", "description": "Description", "instrumented_components": "Components", "signals": "Signals", "env": "Environment variable", "default": "Default", "type": "Type", "property": "Argument to start()"}'></div>
157158

158-
.. _jaeger-exporter-nodejs:
159+
.. _jaeger-exporter-nodejs-3x:
159160

160161
Jaeger exporter
161162
-------------------
@@ -180,7 +181,7 @@ To use the Jaeger exporter, add the ``@opentelemetry/exporter-jaeger`` package a
180181
181182
.. note:: To send data directly to Splunk Observability Cloud, see :ref:`export-directly-to-olly-cloud-nodejs`.
182183

183-
.. _trace-propagation-configuration-nodejs:
184+
.. _trace-propagation-configuration-nodejs-3x:
184185

185186
Propagators configuration
186187
=======================================================
@@ -203,7 +204,7 @@ For backward compatibility with the SignalFx Tracing Library for Node.js, use th
203204

204205
$env:OTEL_PROPAGATORS=b3multi
205206

206-
.. _profiling-configuration-nodejs:
207+
.. _profiling-configuration-nodejs-3x:
207208

208209
Node.js settings for AlwaysOn Profiling
209210
===============================================
@@ -228,7 +229,7 @@ To configure AlwaysOn Profiling programmatically, pass the arguments to the ``st
228229
229230
.. note:: For more information on AlwaysOn Profiling, see :ref:`profiling-intro`.
230231

231-
.. _metrics-configuration-nodejs:
232+
.. _metrics-configuration-nodejs-3x:
232233

233234
Metrics configuration
234235
===============================================================
@@ -241,22 +242,7 @@ The following settings activate runtime metrics collection:
241242

242243
.. note:: To pass settings as arguments, use the ``start()`` function.
243244

244-
Configuring an existing metrics client to send custom metrics
245-
---------------------------------------------------------------------
246-
247-
You can use an existing SignalFx client for sending custom metrics instead of creating and configuring a new one.
248-
249-
To configure an existing client, pass the following data to the ``start()`` function:
250-
251-
- ``signalfx``: A JavaScript object with optional ``client`` and ``dimensions`` fields. The ``dimensions`` object adds a predefined dimension for each data point. The format for ``dimensions`` is ``{key: value, ...}``.
252-
253-
The following is a list of dimensions added by default:
254-
255-
- ``service``: See ``serviceName`` in :ref:`trace-configuration-nodejs`.
256-
- ``metric_source``: ``splunk-otel-js``
257-
- ``node_version``: ``process.versions.node``, for example ``16.10.0``
258-
259-
.. _server-trace-information-nodejs:
245+
.. _server-trace-information-nodejs-3x:
260246

261247
Server trace information
262248
==============================================

gdi/get-data-in/application/nodejs/configuration/nodejs-otel-metrics.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. _nodejs-otel-metrics:
1+
.. _nodejs-otel-metrics-3x:
22

33
**********************************************************************
44
Metrics and attributes collected by the Splunk Distribution of OTel JS
@@ -11,14 +11,14 @@ The Splunk Distribution of OpenTelemetry JS collects runtime and custom metrics.
1111

1212
To learn about the different metric types, see :ref:`metric-types`.
1313

14-
.. _enable-nodejs-metrics:
14+
.. _enable-nodejs-metrics-3x:
1515

1616
Activate metrics collection
1717
====================================================
1818

1919
To collect Node.js metrics, see :ref:`metrics-configuration-nodejs`.
2020

21-
.. _nodejs-otel-runtime-metrics:
21+
.. _nodejs-otel-runtime-metrics-3x:
2222

2323
Runtime metrics
2424
================================================
@@ -71,7 +71,7 @@ The following runtime metrics are automatically collected and exported:
7171
- Gauge
7272
- Minimum event loop lag within the collection interval, in nanoseconds.
7373

74-
.. _nodejs-otel-metrics-migration:
74+
.. _nodejs-otel-metrics-migration-3x:
7575

7676
Migrate from SignalFx metrics for Node.js
7777
===========================================
@@ -150,7 +150,7 @@ With the release of version 2.0 of the Splunk Distribution of OpenTelemetry JS,
150150
* - ``process.runtime.nodejs.event_loop.lag.min``
151151
- ``nodejs.event_loop.lag.min``
152152

153-
.. _nodejs-otel-debug-metrics:
153+
.. _nodejs-otel-debug-metrics-3x:
154154

155155
Debug metrics
156156
=====================================

gdi/get-data-in/application/nodejs/get-started.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. _get-started-nodejs:
1+
.. _get-started-nodejs-3x:
22

33
***************************************************************
44
Instrument Node.js applications for Splunk Observability Cloud
@@ -17,10 +17,14 @@ Instrument Node.js applications for Splunk Observability Cloud
1717
Manual instrumentation <instrumentation/manual-instrumentation>
1818
Configure the Node.js agent <configuration/advanced-nodejs-otel-configuration>
1919
Performance overhead <performance>
20+
Version 2.X <version-2x/get-started>
21+
Splunk OTel JS 3.0 breaking changes <breaking-changes>
2022
Troubleshoot the Node.js agent <troubleshooting/common-nodejs-troubleshooting>
2123
About Splunk OTel JS <splunk-nodejs-otel-distribution>
2224
Migrate from the SFx Tracing Library <troubleshooting/migrate-signalfx-nodejs-agent-to-otel>
2325

26+
.. note:: The Splunk OpenTelemetry JS version 3.0 contains a set of breaking changes. To view these changes and learn how to update to version 3.0, see :ref:`nodejs-3x-breaking-changes`.
27+
2428
The Splunk Distribution of OpenTelemetry JS provides a Node.js SDK that automatically adds APM instrumentation to your Node.js application. The instrumentation captures traces, runtime metrics, and CPU and memory profiles and sends them to Splunk Observability Cloud.
2529

2630
To instrument your Node.js application, follow these steps:

gdi/get-data-in/application/nodejs/instrumentation/connect-traces-logs.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.. _correlate-traces-with-logs-nodejs:
1+
.. _correlate-traces-with-logs-nodejs-3x:
22

33
*******************************************************************
44
Connect Node.js trace data with logs for Splunk Observability Cloud
@@ -9,7 +9,7 @@ Connect Node.js trace data with logs for Splunk Observability Cloud
99

1010
You can configure Node.js logging libraries to include tracing attributes provided automatically by the Splunk Distribution of OpenTelemetry JS. Use the trace metadata to correlate traces with log events and explore Node.js application logs in Splunk Observability Cloud.
1111

12-
.. _nodejs-traces-logs-requirements:
12+
.. _nodejs-traces-logs-requirements-3x:
1313

1414
Supported logging libraries
1515
=====================================================
@@ -20,14 +20,14 @@ The Splunk Distribution of OpenTelemetry JS automatically supports the following
2020
- Pino
2121
- Winston
2222

23-
.. _nodejs-traces-logs-enable:
23+
.. _nodejs-traces-logs-enable-3x:
2424

2525
Activate logs injection
2626
=====================================================
2727

2828
Log injection is already activated for the supported libraries. To inject trace data into formatted logs, see the documentation for each library.
2929

30-
.. _nodejs-include-trace-data:
30+
.. _nodejs-include-trace-data-3x:
3131

3232
Include trace metadata in log statements
3333
===================================================

0 commit comments

Comments
 (0)