newrelic 13.12.0 → 13.14.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/NEWS.md +141 -58
- package/THIRD_PARTY_NOTICES.md +17 -17
- package/lib/aggregators/base-aggregator.js +2 -0
- package/lib/aggregators/profiling-aggregator.js +97 -0
- package/lib/collector/api.js +24 -16
- package/lib/collector/remote-method.js +3 -2
- package/lib/config/default.js +64 -9
- package/lib/errors/index.js +81 -21
- package/lib/harvester.js +18 -3
- package/lib/instrumentation/@azure/functions.js +45 -1
- package/lib/instrumentation/aws-sdk/v3/bedrock.js +10 -11
- package/lib/llm-events/aws-bedrock/bedrock-command.js +1 -1
- package/lib/llm-events/aws-bedrock/bedrock-response.js +1 -1
- package/lib/llm-events/aws-bedrock/chat-completion-message.js +40 -64
- package/lib/llm-events/aws-bedrock/chat-completion-summary.js +37 -43
- package/lib/llm-events/aws-bedrock/embedding.js +31 -29
- package/lib/llm-events/aws-bedrock/index.js +4 -9
- package/lib/llm-events/chat-completion-message.js +117 -0
- package/lib/llm-events/chat-completion-summary.js +111 -0
- package/lib/llm-events/embedding.js +75 -0
- package/lib/llm-events/error-message.js +2 -2
- package/lib/llm-events/event-base.js +105 -0
- package/lib/llm-events/google-genai/chat-completion-message.js +24 -30
- package/lib/llm-events/google-genai/chat-completion-summary.js +31 -11
- package/lib/llm-events/google-genai/embedding.js +25 -12
- package/lib/llm-events/google-genai/get-usage-tokens.js +26 -0
- package/lib/llm-events/google-genai/index.js +4 -12
- package/lib/llm-events/langchain/attach-attributes.js +41 -0
- package/lib/llm-events/langchain/chat-completion-message.js +39 -61
- package/lib/llm-events/langchain/chat-completion-summary.js +16 -28
- package/lib/llm-events/langchain/index.js +6 -9
- package/lib/llm-events/langchain/tool.js +30 -19
- package/lib/llm-events/langchain/vector-search-result.js +25 -25
- package/lib/llm-events/langchain/vector-search.js +25 -29
- package/lib/llm-events/langgraph/agent.js +13 -29
- package/lib/llm-events/openai/chat-completion-message.js +28 -36
- package/lib/llm-events/openai/chat-completion-summary.js +42 -11
- package/lib/llm-events/openai/embedding.js +30 -12
- package/lib/llm-events/openai/get-usage-tokens.js +20 -0
- package/lib/llm-events/tool.js +42 -0
- package/lib/otel/metrics/index.js +12 -2
- package/lib/profiling/index.js +59 -0
- package/lib/profiling/profilers/base.js +30 -0
- package/lib/spans/span-event.js +8 -8
- package/lib/subscribers/ai-monitoring/embedding.js +1 -1
- package/lib/subscribers/amqplib/connect.js +0 -1
- package/lib/subscribers/db.js +0 -2
- package/lib/subscribers/google-genai/config.js +20 -2
- package/lib/subscribers/google-genai/embed-content.js +11 -1
- package/lib/subscribers/google-genai/generate-content.js +37 -9
- package/lib/subscribers/langchain/runnable.js +7 -7
- package/lib/subscribers/langchain/tool.js +6 -4
- package/lib/subscribers/langchain/vectorstore.js +5 -5
- package/lib/subscribers/langgraph/graph-stream.js +3 -3
- package/lib/subscribers/mcp-sdk/client-request.js +7 -1
- package/lib/subscribers/openai/chat.js +28 -6
- package/lib/subscribers/openai/embeddings.js +3 -3
- package/lib/transaction/trace/partial-trace.js +9 -6
- package/lib/util/label-parser.js +1 -1
- package/package.json +2 -2
- package/lib/llm-events/aws-bedrock/event.js +0 -79
- package/lib/llm-events/event.js +0 -131
- package/lib/llm-events/google-genai/event.js +0 -36
- package/lib/llm-events/langchain/event.js +0 -86
- package/lib/llm-events/openai/event.js +0 -57
- package/lib/{llm-events/aws-bedrock → instrumentation/aws-sdk/v3}/converse-stream-handler.js +0 -0
- package/lib/{llm-events/aws-bedrock → instrumentation/aws-sdk/v3}/stream-handler.js +0 -0
- package/lib/llm-events/aws-bedrock/{utils.js → stringify-message.js} +5 -5
package/NEWS.md
CHANGED
|
@@ -1,61 +1,142 @@
|
|
|
1
|
-
### v13.
|
|
2
|
-
|
|
3
|
-
#### Features
|
|
4
|
-
|
|
5
|
-
* Added
|
|
6
|
-
* Added
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* Updated
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* Added
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
### v13.14.0 (2026-02-24)
|
|
2
|
+
|
|
3
|
+
#### Features
|
|
4
|
+
|
|
5
|
+
* Added ability to delay the start of the Profiler and run for n milliseconds before shutting down. ([#3758](https://github.com/newrelic/node-newrelic/pull/3758)) ([8503d25](https://github.com/newrelic/node-newrelic/commit/8503d252dce31fa5ba0cbb4f146511155de48f88))
|
|
6
|
+
* Added functionality to ingest logs from Azure Functions App automatically ([#3772](https://github.com/newrelic/node-newrelic/pull/3772)) ([0c70ba2](https://github.com/newrelic/node-newrelic/commit/0c70ba20d2c03af03605ebc12baadbfd00c8733d))
|
|
7
|
+
* Added support for error causes ([#3769](https://github.com/newrelic/node-newrelic/pull/3769)) ([7c5aae3](https://github.com/newrelic/node-newrelic/commit/7c5aae3ac8b14e781a0740ffc57c2b2defc4300b))
|
|
8
|
+
|
|
9
|
+
#### Bug fixes
|
|
10
|
+
|
|
11
|
+
* Updated `@google/genai` subscriber to handle the new `embedContentInternal` method in 1.42.0 ([#3771](https://github.com/newrelic/node-newrelic/pull/3771)) ([e96c974](https://github.com/newrelic/node-newrelic/commit/e96c974a1aa8c15caebd66004c939c43f61cc0e2))
|
|
12
|
+
|
|
13
|
+
#### Code refactoring
|
|
14
|
+
|
|
15
|
+
* AWS Bedrock llm events refactor ([#3759](https://github.com/newrelic/node-newrelic/pull/3759)) ([7ff953d](https://github.com/newrelic/node-newrelic/commit/7ff953dbda4529591438811b8b58cfada3767f80))
|
|
16
|
+
* Google Gen AI LLM event refactor ([#3748](https://github.com/newrelic/node-newrelic/pull/3748)) ([f1e3a0e](https://github.com/newrelic/node-newrelic/commit/f1e3a0e57ea26370ce5021010ab6fe793dd5c594))
|
|
17
|
+
* LangGraph LlmAgent event, remove old LlmEvent base ([#3761](https://github.com/newrelic/node-newrelic/pull/3761)) ([39d1d9a](https://github.com/newrelic/node-newrelic/commit/39d1d9a59ca467d71d4a7db4cf437d743a24939b))
|
|
18
|
+
* Updated the reparenting logic for compact mode of partial traces to assign parent id to entry span ([#3768](https://github.com/newrelic/node-newrelic/pull/3768)) ([5196318](https://github.com/newrelic/node-newrelic/commit/5196318713cbeba113936a902ff4f092c33109cb))
|
|
19
|
+
|
|
20
|
+
#### Documentation
|
|
21
|
+
|
|
22
|
+
* Updated compatibility report ([#3774](https://github.com/newrelic/node-newrelic/pull/3774)) ([5d04bba](https://github.com/newrelic/node-newrelic/commit/5d04bba57ddb23b2aa1861cf46e393adae2c43ca))
|
|
23
|
+
|
|
24
|
+
#### Miscellaneous chores
|
|
25
|
+
|
|
26
|
+
* Added API key to enable support for GH action ([#3760](https://github.com/newrelic/node-newrelic/pull/3760)) ([a521e80](https://github.com/newrelic/node-newrelic/commit/a521e8065c525312d1170bfa725610d708b011e3))
|
|
27
|
+
* Added call to agent metadata workflow - step 1 ([#3750](https://github.com/newrelic/node-newrelic/pull/3750)) ([90eeaec](https://github.com/newrelic/node-newrelic/commit/90eeaec0e4de28c779ccab7a8f4b03448e8448bd))
|
|
28
|
+
* Added span id to all debug/trace level logs in `span.applyPartialTraceRules` ([#3766](https://github.com/newrelic/node-newrelic/pull/3766)) ([8c57230](https://github.com/newrelic/node-newrelic/commit/8c57230f3d580ace1cb5eb1611dc78f85bbe36f1))
|
|
29
|
+
* Renamed file and fix cache output ([#3757](https://github.com/newrelic/node-newrelic/pull/3757)) ([1ac00ea](https://github.com/newrelic/node-newrelic/commit/1ac00ea4718fb6e95502961d777e11c8ae71dde9))
|
|
30
|
+
* Set up metadata action to run with releases ([#3762](https://github.com/newrelic/node-newrelic/pull/3762)) ([66efb13](https://github.com/newrelic/node-newrelic/commit/66efb13b9bde33a28fb4256cb70bf313e10774bc))
|
|
31
|
+
* Updated `@langchain/core` version for langchain-openai tests ([#3763](https://github.com/newrelic/node-newrelic/pull/3763)) ([c27213e](https://github.com/newrelic/node-newrelic/commit/c27213e6ca3048463158fcfecb7e1cfcf87d4922))
|
|
32
|
+
|
|
33
|
+
### v13.13.0 (2026-02-17)
|
|
34
|
+
|
|
35
|
+
## Feature Release
|
|
36
|
+
|
|
37
|
+
With this release, we are making available our Node.js Hybrid Agent.
|
|
38
|
+
The Node.js Hybrid Agent provides a future-proof observability solution with
|
|
39
|
+
integrated support for OpenTelemetry Tracing, Metrics, and Logs APIs. Key
|
|
40
|
+
enhancements like Span Links and Events on Spans are now available, ensuring
|
|
41
|
+
seamless interoperability in mixed-mode environments. It is designed to bridge
|
|
42
|
+
the gap for Node.js teams looking to adopt OpenTelemetry standards while
|
|
43
|
+
maintaining backwards compatibility with their existing New Relic dashboards.
|
|
44
|
+
|
|
45
|
+
A full product announcement, and documentation for this feature, is
|
|
46
|
+
coming soon. Please [subscribe to our news releases](https://newrelic.com/blog)
|
|
47
|
+
to be kept up-to-date.
|
|
48
|
+
|
|
49
|
+
#### Features
|
|
50
|
+
|
|
51
|
+
* Added `delay` and `duration` to profiling config ([#3754](https://github.com/newrelic/node-newrelic/pull/3754)) ([a7f06e0](https://github.com/newrelic/node-newrelic/commit/a7f06e016ee6e8488fb5364e118cdebaf8a3af0f))
|
|
52
|
+
* Added `ProfilingAggregator` that will be used to collect and send `pprof_data` telemetry ([#3732](https://github.com/newrelic/node-newrelic/pull/3732)) ([738045c](https://github.com/newrelic/node-newrelic/commit/738045c955b1ca82e60c4b3a1a9799e8257c0d51))
|
|
53
|
+
* Added profiling configuration ([#3733](https://github.com/newrelic/node-newrelic/pull/3733)) ([2b4d7d8](https://github.com/newrelic/node-newrelic/commit/2b4d7d898dea12d8d7f89f3024e56bf5e44d5b8b))
|
|
54
|
+
* Added ProfilingManager class, used to orchestrate profilers ([#3738](https://github.com/newrelic/node-newrelic/pull/3738)) ([105da3b](https://github.com/newrelic/node-newrelic/commit/105da3b788f8e47099a47857e9e490103c6163d4))
|
|
55
|
+
* Updated `RemoteMethod` to handle sending `pprof_data` through the collector ([#3734](https://github.com/newrelic/node-newrelic/pull/3734)) ([868e5bd](https://github.com/newrelic/node-newrelic/commit/868e5bdd102211b9569fef40efef77cfdd3719d2))
|
|
56
|
+
* Updated the profiling config properties ([#3742](https://github.com/newrelic/node-newrelic/pull/3742)) ([fa55881](https://github.com/newrelic/node-newrelic/commit/fa55881fafe45499461c89e70ce8c3d03d4cc8af))
|
|
57
|
+
|
|
58
|
+
#### Code refactoring
|
|
59
|
+
|
|
60
|
+
* LangChain LLM event refactor ([#3745](https://github.com/newrelic/node-newrelic/pull/3745)) ([b2612ec](https://github.com/newrelic/node-newrelic/commit/b2612ec1a95f68c19290025f4279cd0f06f6c7d1))
|
|
61
|
+
* OpenAI LLM event refactor ([#3726](https://github.com/newrelic/node-newrelic/pull/3726)) ([0ccad21](https://github.com/newrelic/node-newrelic/commit/0ccad2102d8f52da5ea77161534697f98c18c21e))
|
|
62
|
+
|
|
63
|
+
#### Documentation
|
|
64
|
+
|
|
65
|
+
* Updated compatibility report ([#3743](https://github.com/newrelic/node-newrelic/pull/3743)) ([4a7cafc](https://github.com/newrelic/node-newrelic/commit/4a7cafc9c72aa3a947f7a27f69ceb50424d30163)) ([#3739](https://github.com/newrelic/node-newrelic/pull/3739)) ([59ff976](https://github.com/newrelic/node-newrelic/commit/59ff9768e33e029dea469739ed790407665cf135)) ([#3730](https://github.com/newrelic/node-newrelic/pull/3730)) ([dea410b](https://github.com/newrelic/node-newrelic/commit/dea410bbaab9d940030e0e7eca72b1329effe004)) ([#3703](https://github.com/newrelic/node-newrelic/pull/3703)) ([532729a](https://github.com/newrelic/node-newrelic/commit/532729a3955454a7bb9ee282630af78379233037))
|
|
66
|
+
|
|
67
|
+
#### Miscellaneous chores
|
|
68
|
+
|
|
69
|
+
* Added subcomponent attribute to LangChain tool traces ([#3706](https://github.com/newrelic/node-newrelic/pull/3706)) ([c5469ea](https://github.com/newrelic/node-newrelic/commit/c5469eaa40a9600f56390f6251bc6c3ea2e30d08))
|
|
70
|
+
* Added subcomponent attribute to mcp-sdk invocations ([#3749](https://github.com/newrelic/node-newrelic/pull/3749)) ([70b7f41](https://github.com/newrelic/node-newrelic/commit/70b7f4115370857836ecd172f2ce041b66376bae))
|
|
71
|
+
* Enabled all OTEL signals by default when OTEL is enabled ([#3712](https://github.com/newrelic/node-newrelic/pull/3712)) ([15b82c2](https://github.com/newrelic/node-newrelic/commit/15b82c298937af4309cf3f9d0e88060b5b1c044c))
|
|
72
|
+
* Fixed `@langchain/community` peer dep conflict ([#3741](https://github.com/newrelic/node-newrelic/pull/3741)) ([202d2b3](https://github.com/newrelic/node-newrelic/commit/202d2b35b01182160f3dfa014e0abcff6ca0d6d2))
|
|
73
|
+
* Removed `@langchain/core` peer dep from LangGraph test matrix ([#3737](https://github.com/newrelic/node-newrelic/pull/3737)) ([8ba2616](https://github.com/newrelic/node-newrelic/commit/8ba2616afc21e2f4d1b98c6ccf448e6edbd86114))
|
|
74
|
+
* Renamed OTEL metrics config params to snake_case from camelCas… ([#3711](https://github.com/newrelic/node-newrelic/pull/3711)) ([4f59108](https://github.com/newrelic/node-newrelic/commit/4f591088888ae724136d409ee93438ecd81a5539))
|
|
75
|
+
* Updated `ai-support.json` to include LangGraph ([#3705](https://github.com/newrelic/node-newrelic/pull/3705)) ([aa0ba22](https://github.com/newrelic/node-newrelic/commit/aa0ba2296c13aee7090a532f504ccad2d30c6cd4))
|
|
76
|
+
* Updated eslint configuration ([#3740](https://github.com/newrelic/node-newrelic/pull/3740)) ([d306374](https://github.com/newrelic/node-newrelic/commit/d3063748b8ef6f2fa74dd7791d846e9597a8f525))
|
|
77
|
+
|
|
78
|
+
#### Tests
|
|
79
|
+
|
|
80
|
+
* Updated mcp streaming tests to generate sessions to reuse transport for all streaming tests ([#3729](https://github.com/newrelic/node-newrelic/pull/3729)) ([1772fd5](https://github.com/newrelic/node-newrelic/commit/1772fd599236ce22e970442288f302cf06f93798))
|
|
81
|
+
|
|
82
|
+
### v13.12.0 (2026-02-02)
|
|
83
|
+
|
|
84
|
+
#### Features
|
|
85
|
+
|
|
86
|
+
* Added instrumentation support for `@langchain/langgraph` ([#3645](https://github.com/newrelic/node-newrelic/pull/3645)) ([f339675](https://github.com/newrelic/node-newrelic/commit/f3396754fb182a3f0af09488a8abb1981b6f3e3f))
|
|
87
|
+
* Added `timestamp` to `LlmChatCompletionSummary` messages
|
|
88
|
+
* Added `timestamp` to AWS Bedrock `LlmChatCompletionSummary` ([#3702](https://github.com/newrelic/node-newrelic/pull/3702)) ([430d1dd](https://github.com/newrelic/node-newrelic/commit/430d1dd5ef847203045486a054142df3a02c7c1c))
|
|
89
|
+
* Added `timestamp` to Google Gen AI `LlmChatCompletionSummary` ([#3690](https://github.com/newrelic/node-newrelic/pull/3690)) ([7748e26](https://github.com/newrelic/node-newrelic/commit/7748e26aceb7b050b13dc686c852513026f043ac))
|
|
90
|
+
* Added `timestamp` to LangChain `LlmChatCompletionSummary` ([#3701](https://github.com/newrelic/node-newrelic/pull/3701)) ([7472118](https://github.com/newrelic/node-newrelic/commit/747211814396e4bf52dc63d249c0ec045b35457a))
|
|
91
|
+
* Added compact mode for span links ([#3681](https://github.com/newrelic/node-newrelic/pull/3681)) ([6ff6961](https://github.com/newrelic/node-newrelic/commit/6ff6961e6b46feb14638da97a95d0891a0d88645))
|
|
92
|
+
|
|
93
|
+
#### Bug fixes
|
|
94
|
+
|
|
95
|
+
* Updated langchain tool instrumentation to properly redefine the segment name on every call ([#3691](https://github.com/newrelic/node-newrelic/pull/3691)) ([4df6068](https://github.com/newrelic/node-newrelic/commit/4df6068d23b5da276486bd3d3f0c3af4b748c4a8))
|
|
96
|
+
|
|
97
|
+
#### Documentation
|
|
98
|
+
|
|
99
|
+
* Updated compatibility report ([#3699](https://github.com/newrelic/node-newrelic/pull/3699)) ([40b6b81](https://github.com/newrelic/node-newrelic/commit/40b6b813e7b6490c2e866a33cb1a7492b35d2a36))
|
|
100
|
+
|
|
101
|
+
### v13.11.0 (2026-01-29)
|
|
102
|
+
|
|
103
|
+
#### Features
|
|
104
|
+
|
|
105
|
+
* Added `timestamp` to AIM `LlmChatCompletionMessage` messages
|
|
106
|
+
* Added `timestamp` to AWS Bedrock `LlmChatCompletionMessage` ([#3685](https://github.com/newrelic/node-newrelic/pull/3685)) ([ea297c8](https://github.com/newrelic/node-newrelic/commit/ea297c86772c1ae377a16e636db8bbcf53ef1547))
|
|
107
|
+
* Added `timestamp` to Google Gen AI `LlmChatCompletionMessage` ([#3686](https://github.com/newrelic/node-newrelic/pull/3686)) ([f4dd09e](https://github.com/newrelic/node-newrelic/commit/f4dd09ec332c47396277f6aaeff2f6f15daad97a))
|
|
108
|
+
* Added `timestamp` to LangChain input `LlmChatCompletionMessage` ([#3658](https://github.com/newrelic/node-newrelic/pull/3658)) ([0bce235](https://github.com/newrelic/node-newrelic/commit/0bce235ce02f772bc089bf947afadf312c735c1b))
|
|
109
|
+
* Added timestamp to OpenAI `LlmChatCompletionSummary` ([#3689](https://github.com/newrelic/node-newrelic/pull/3689)) ([55b0310](https://github.com/newrelic/node-newrelic/commit/55b03100323eefb3578816cff69f2b919e4b7bdd))
|
|
110
|
+
* Additional support for partial granularity traces (Not available for production use)
|
|
111
|
+
* Added essential tracing mode for span links ([#3670](https://github.com/newrelic/node-newrelic/pull/3670)) ([83dfb84](https://github.com/newrelic/node-newrelic/commit/83dfb84b842e0245392425ce61e92a2789fcaf06))
|
|
112
|
+
* Updated `Supportability/Nodejs/PartialGranularity/NrIds/Dropped` metric to only keep track of spans that got dropped when `nr.ids` execeeded 63 spans. ([#3684](https://github.com/newrelic/node-newrelic/pull/3684)) ([9797cf3](https://github.com/newrelic/node-newrelic/commit/9797cf38aa2808b29da9623158edb221b1819548))
|
|
113
|
+
|
|
114
|
+
#### Bug fixes
|
|
115
|
+
|
|
116
|
+
* Added defensive code in `lib/subscribers/middleware-wrapper.js` to prevent crash when attempting to associate an error on an incoming http request ([#3697](https://github.com/newrelic/node-newrelic/pull/3697)) ([658e78b](https://github.com/newrelic/node-newrelic/commit/658e78ba564eae996d790bb3334bda6847c7e2bd))
|
|
117
|
+
* Updated `pg` instrumentation to properly capture the TraceSegment duration for promise based queries ([#3695](https://github.com/newrelic/node-newrelic/pull/3695)) ([0051697](https://github.com/newrelic/node-newrelic/commit/005169776a3f3fe9d988174857b3c96e6131aea3))
|
|
118
|
+
|
|
119
|
+
#### Code refactoring
|
|
120
|
+
|
|
121
|
+
* Added AIM abstract subscribers and updated all AIM subscribers to use them ([#3676](https://github.com/newrelic/node-newrelic/pull/3676)) ([08cd38b](https://github.com/newrelic/node-newrelic/commit/08cd38b5b34b4f1a2636ccc12d359484af6b3e83))
|
|
122
|
+
|
|
123
|
+
#### Documentation
|
|
124
|
+
|
|
125
|
+
* Updated compatibility report ([#3675](https://github.com/newrelic/node-newrelic/pull/3675)) ([cc898f4](https://github.com/newrelic/node-newrelic/commit/cc898f4d8b0f520e120f330ff9e90fe7baaebedc))
|
|
126
|
+
|
|
127
|
+
#### Miscellaneous chores
|
|
128
|
+
|
|
129
|
+
* Added TimedEvent limit of 100 ([#3683](https://github.com/newrelic/node-newrelic/pull/3683)) ([0d595d8](https://github.com/newrelic/node-newrelic/commit/0d595d8579b5a58e49908bc24321ce7b526ddff2))
|
|
130
|
+
* Added supportability metrics `Supportability/Nodejs/SpanEvent/<Links|Events>/Dropped` when limit of 100 is exceeded ([#3688](https://github.com/newrelic/node-newrelic/pull/3688)) ([a247d31](https://github.com/newrelic/node-newrelic/commit/a247d31fc9c24752be50a73d4ddfc7a088a68ce6))
|
|
131
|
+
* Removed eslint disable next line for `sonarjs/no-dead-store` ([#3692](https://github.com/newrelic/node-newrelic/pull/3692)) ([593fa15](https://github.com/newrelic/node-newrelic/commit/593fa15a033437b95fe375cf6034b8453c7d2b36))
|
|
132
|
+
|
|
133
|
+
#### Continuous Integration
|
|
134
|
+
* Fixed CI issue when sec-agent present ([#3677](https://github.com/newrelic/node-newrelic/pull/3677)) ([23da654](https://github.com/newrelic/node-newrelic/commit/23da6547e72f49bf798046330e8cfa74a0b4d2af))
|
|
135
|
+
|
|
136
|
+
#### Tests
|
|
137
|
+
|
|
138
|
+
* Assert that span events drop in partial traces ([#3680](https://github.com/newrelic/node-newrelic/pull/3680)) ([25e3781](https://github.com/newrelic/node-newrelic/commit/25e3781098343b9ca9e4aed0cd5c9e0f94266926))
|
|
139
|
+
|
|
59
140
|
### v13.10.0 (2026-01-20)
|
|
60
141
|
|
|
61
142
|
#### Features
|
|
@@ -8317,4 +8398,6 @@ Special thanks to Ryan Copley (@RyanCopley) for the contribution.
|
|
|
8317
8398
|
|
|
8318
8399
|
|
|
8319
8400
|
|
|
8401
|
+
|
|
8402
|
+
|
|
8320
8403
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -722,7 +722,7 @@ This product includes source derived from [@grpc/proto-loader](https://github.co
|
|
|
722
722
|
|
|
723
723
|
### @newrelic/security-agent
|
|
724
724
|
|
|
725
|
-
This product includes source derived from [@newrelic/security-agent](https://github.com/newrelic/csec-node-agent) ([v3.0.
|
|
725
|
+
This product includes source derived from [@newrelic/security-agent](https://github.com/newrelic/csec-node-agent) ([v3.0.1](https://github.com/newrelic/csec-node-agent/tree/v3.0.1)), distributed under the [UNKNOWN License](https://github.com/newrelic/csec-node-agent/blob/v3.0.1/LICENSE):
|
|
726
726
|
|
|
727
727
|
```
|
|
728
728
|
## New Relic Software License v1.0
|
|
@@ -1186,7 +1186,7 @@ This product includes source derived from [@opentelemetry/api](https://github.co
|
|
|
1186
1186
|
|
|
1187
1187
|
### @opentelemetry/core
|
|
1188
1188
|
|
|
1189
|
-
This product includes source derived from [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js) ([v2.
|
|
1189
|
+
This product includes source derived from [@opentelemetry/core](https://github.com/open-telemetry/opentelemetry-js) ([v2.5.0](https://github.com/open-telemetry/opentelemetry-js/tree/v2.5.0)), distributed under the [Apache-2.0 License](https://github.com/open-telemetry/opentelemetry-js/blob/v2.5.0/LICENSE):
|
|
1190
1190
|
|
|
1191
1191
|
```
|
|
1192
1192
|
Apache License
|
|
@@ -1604,7 +1604,7 @@ This product includes source derived from [@opentelemetry/exporter-metrics-otlp-
|
|
|
1604
1604
|
|
|
1605
1605
|
### @opentelemetry/resources
|
|
1606
1606
|
|
|
1607
|
-
This product includes source derived from [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) ([v2.
|
|
1607
|
+
This product includes source derived from [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) ([v2.5.0](https://github.com/open-telemetry/opentelemetry-js/tree/v2.5.0)), distributed under the [Apache-2.0 License](https://github.com/open-telemetry/opentelemetry-js/blob/v2.5.0/LICENSE):
|
|
1608
1608
|
|
|
1609
1609
|
```
|
|
1610
1610
|
Apache License
|
|
@@ -2022,7 +2022,7 @@ This product includes source derived from [@opentelemetry/sdk-logs](https://gith
|
|
|
2022
2022
|
|
|
2023
2023
|
### @opentelemetry/sdk-metrics
|
|
2024
2024
|
|
|
2025
|
-
This product includes source derived from [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) ([v2.
|
|
2025
|
+
This product includes source derived from [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) ([v2.5.0](https://github.com/open-telemetry/opentelemetry-js/tree/v2.5.0)), distributed under the [Apache-2.0 License](https://github.com/open-telemetry/opentelemetry-js/blob/v2.5.0/LICENSE):
|
|
2026
2026
|
|
|
2027
2027
|
```
|
|
2028
2028
|
Apache License
|
|
@@ -2231,7 +2231,7 @@ This product includes source derived from [@opentelemetry/sdk-metrics](https://g
|
|
|
2231
2231
|
|
|
2232
2232
|
### @opentelemetry/sdk-trace-base
|
|
2233
2233
|
|
|
2234
|
-
This product includes source derived from [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) ([v2.
|
|
2234
|
+
This product includes source derived from [@opentelemetry/sdk-trace-base](https://github.com/open-telemetry/opentelemetry-js) ([v2.5.0](https://github.com/open-telemetry/opentelemetry-js/tree/v2.5.0)), distributed under the [Apache-2.0 License](https://github.com/open-telemetry/opentelemetry-js/blob/v2.5.0/LICENSE):
|
|
2235
2235
|
|
|
2236
2236
|
```
|
|
2237
2237
|
Apache License
|
|
@@ -2960,7 +2960,7 @@ SOFTWARE.
|
|
|
2960
2960
|
|
|
2961
2961
|
### @aws-sdk/client-s3
|
|
2962
2962
|
|
|
2963
|
-
This product includes source derived from [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3) ([v3.
|
|
2963
|
+
This product includes source derived from [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3) ([v3.982.0](https://github.com/aws/aws-sdk-js-v3/tree/v3.982.0)), distributed under the [Apache-2.0 License](https://github.com/aws/aws-sdk-js-v3/blob/v3.982.0/LICENSE):
|
|
2964
2964
|
|
|
2965
2965
|
```
|
|
2966
2966
|
Apache License
|
|
@@ -3169,7 +3169,7 @@ This product includes source derived from [@aws-sdk/client-s3](https://github.co
|
|
|
3169
3169
|
|
|
3170
3170
|
### @aws-sdk/s3-request-presigner
|
|
3171
3171
|
|
|
3172
|
-
This product includes source derived from [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3) ([v3.
|
|
3172
|
+
This product includes source derived from [@aws-sdk/s3-request-presigner](https://github.com/aws/aws-sdk-js-v3) ([v3.982.0](https://github.com/aws/aws-sdk-js-v3/tree/v3.982.0)), distributed under the [Apache-2.0 License](https://github.com/aws/aws-sdk-js-v3/blob/v3.982.0/LICENSE):
|
|
3173
3173
|
|
|
3174
3174
|
```
|
|
3175
3175
|
Apache License
|
|
@@ -3407,7 +3407,7 @@ SOFTWARE.
|
|
|
3407
3407
|
|
|
3408
3408
|
### @newrelic/eslint-config
|
|
3409
3409
|
|
|
3410
|
-
This product includes source derived from [@newrelic/eslint-config](https://github.com/newrelic/eslint-config-newrelic) ([v0.
|
|
3410
|
+
This product includes source derived from [@newrelic/eslint-config](https://github.com/newrelic/eslint-config-newrelic) ([v0.7.0](https://github.com/newrelic/eslint-config-newrelic/tree/v0.7.0)), distributed under the [Apache-2.0 License](https://github.com/newrelic/eslint-config-newrelic/blob/v0.7.0/LICENSE):
|
|
3411
3411
|
|
|
3412
3412
|
```
|
|
3413
3413
|
Apache License
|
|
@@ -5637,19 +5637,19 @@ MIT License
|
|
|
5637
5637
|
|
|
5638
5638
|
Copyright (c) <year> <copyright holders>
|
|
5639
5639
|
|
|
5640
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
5641
|
-
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
5642
|
-
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
5643
|
-
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
5640
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
5641
|
+
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
5642
|
+
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
5643
|
+
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
5644
5644
|
following conditions:
|
|
5645
5645
|
|
|
5646
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
5646
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
5647
5647
|
portions of the Software.
|
|
5648
5648
|
|
|
5649
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
5650
|
-
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
5651
|
-
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
5652
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
5649
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
5650
|
+
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
5651
|
+
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
5652
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
5653
5653
|
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
5654
5654
|
```
|
|
5655
5655
|
|
|
@@ -160,6 +160,8 @@ class Aggregator extends EventEmitter {
|
|
|
160
160
|
|
|
161
161
|
this.defaultPeriod = this.periodMs = opts.periodMs
|
|
162
162
|
this.defaultLimit = this.limit = opts.limit
|
|
163
|
+
this.delay = opts.delay ?? 0
|
|
164
|
+
this.duration = opts.duration ?? 0
|
|
163
165
|
this.runId = opts.runId
|
|
164
166
|
this.isAsync = opts.isAsync || false
|
|
165
167
|
// function to pass in to determine if we can start a given aggregator
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 New Relic Corporation. All rights reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
'use strict'
|
|
7
|
+
|
|
8
|
+
const logger = require('../logger').child({ component: 'pprof_aggregator' })
|
|
9
|
+
const BaseAggregator = require('./base-aggregator')
|
|
10
|
+
const ProfilingManager = require('#agentlib/profiling/index.js')
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Serves as a means for transmitting pprof data as it is being collected.
|
|
14
|
+
* This doesn't really work as an "aggregator". It instead leverages the `BaseAggregator`
|
|
15
|
+
* to integrate with the `Harvester` and `Collector`
|
|
16
|
+
*
|
|
17
|
+
* The `ProfilingAggregator` aggregator overrides the base `start` method.
|
|
18
|
+
* It sets up the interval based on configuration but instead of calling `send`,
|
|
19
|
+
* it calls `collectData` which instructs the Profiler to collect profiling data
|
|
20
|
+
* for every registered profiler(cpu, heap at the moment if enabled)
|
|
21
|
+
*
|
|
22
|
+
* @private
|
|
23
|
+
* @class
|
|
24
|
+
*/
|
|
25
|
+
class ProfilingAggregator extends BaseAggregator {
|
|
26
|
+
constructor(opts = {}, agent) {
|
|
27
|
+
const { collector, harvester } = agent
|
|
28
|
+
opts.method = opts.method || 'pprof_data'
|
|
29
|
+
super(opts, collector, harvester)
|
|
30
|
+
this.agent = agent
|
|
31
|
+
this.profilingManager = new ProfilingManager(agent)
|
|
32
|
+
this.pprofData = null
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// simply returns what was given from the profiler collect method
|
|
36
|
+
_toPayloadSync() {
|
|
37
|
+
return this.pprofData
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* This overrides the default `start` method
|
|
42
|
+
* as we want to collect profiling data for `cpu` and/or `heap`
|
|
43
|
+
* and send the gzipped binary encoded data for each profiler
|
|
44
|
+
*/
|
|
45
|
+
start() {
|
|
46
|
+
this.profilingManager.register()
|
|
47
|
+
const started = this.profilingManager.start()
|
|
48
|
+
if (!started) {
|
|
49
|
+
return
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
logger.trace(`${this.method} aggregator started.`)
|
|
53
|
+
|
|
54
|
+
if (!this.sendTimer) {
|
|
55
|
+
this.sendTimer = setInterval(this.collectData.bind(this), this.periodMs)
|
|
56
|
+
this.sendTimer.unref()
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
stop() {
|
|
61
|
+
super.stop()
|
|
62
|
+
this.profilingManager.stop()
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Called on an interval. Iterates over all registered profilers
|
|
67
|
+
* and collects data for the given time period. Then asynchronously
|
|
68
|
+
* calls send which takes care of sending the data to the collector
|
|
69
|
+
*/
|
|
70
|
+
collectData() {
|
|
71
|
+
const self = this
|
|
72
|
+
for (const pprofData of this.profilingManager.collect()) {
|
|
73
|
+
if (pprofData) {
|
|
74
|
+
self.pprofData = pprofData
|
|
75
|
+
self.send()
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// `pprof_data` is not retained/merged in any way to just return null
|
|
81
|
+
_getMergeData() {
|
|
82
|
+
return null
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// this implies the transmission fails
|
|
86
|
+
// we log this error in `lib/collector/api.js#_handleResponseCode`
|
|
87
|
+
_merge() {
|
|
88
|
+
return null
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// clears the `this.pprofData` for the next iteration of profiling collection
|
|
92
|
+
clear() {
|
|
93
|
+
this.pprofData = null
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
module.exports = ProfilingAggregator
|
package/lib/collector/api.js
CHANGED
|
@@ -90,23 +90,31 @@ function CollectorAPI(agent) {
|
|
|
90
90
|
* save some GC time?
|
|
91
91
|
*/
|
|
92
92
|
this._methods = {}
|
|
93
|
-
for (const
|
|
94
|
-
'preconnect',
|
|
95
|
-
'connect',
|
|
96
|
-
'agent_settings',
|
|
97
|
-
'error_data',
|
|
98
|
-
'metric_data',
|
|
99
|
-
'transaction_sample_data',
|
|
100
|
-
'shutdown',
|
|
101
|
-
'analytic_event_data',
|
|
102
|
-
'custom_event_data',
|
|
103
|
-
'sql_trace_data',
|
|
104
|
-
'error_event_data',
|
|
105
|
-
'span_event_data',
|
|
106
|
-
'log_event_data'
|
|
93
|
+
for (const methodOptions of [
|
|
94
|
+
{ name: 'preconnect' },
|
|
95
|
+
{ name: 'connect' },
|
|
96
|
+
{ name: 'agent_settings' },
|
|
97
|
+
{ name: 'error_data' },
|
|
98
|
+
{ name: 'metric_data' },
|
|
99
|
+
{ name: 'transaction_sample_data' },
|
|
100
|
+
{ name: 'shutdown' },
|
|
101
|
+
{ name: 'analytic_event_data' },
|
|
102
|
+
{ name: 'custom_event_data' },
|
|
103
|
+
{ name: 'sql_trace_data' },
|
|
104
|
+
{ name: 'error_event_data' },
|
|
105
|
+
{ name: 'span_event_data' },
|
|
106
|
+
{ name: 'log_event_data' },
|
|
107
|
+
{ name: 'pprof_data', contentType: 'application/octet-stream' },
|
|
107
108
|
]) {
|
|
108
|
-
const method = new RemoteMethod(
|
|
109
|
-
|
|
109
|
+
const method = new RemoteMethod(
|
|
110
|
+
{
|
|
111
|
+
name: methodOptions.name,
|
|
112
|
+
agent,
|
|
113
|
+
endpoint: initialEndpoint,
|
|
114
|
+
contentType: methodOptions.contentType
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
this._methods[methodOptions.name] = method
|
|
110
118
|
}
|
|
111
119
|
}
|
|
112
120
|
|
|
@@ -34,7 +34,7 @@ const USER_AGENT_FORMAT = 'NewRelic-NodeAgent/%s (nodejs %s %s-%s)'
|
|
|
34
34
|
const ENCODING_HEADER = 'CONTENT-ENCODING'
|
|
35
35
|
const DEFAULT_ENCODING = 'identity'
|
|
36
36
|
|
|
37
|
-
function RemoteMethod(name, agent, endpoint) {
|
|
37
|
+
function RemoteMethod({ name, agent, endpoint, contentType = 'application/json' }) {
|
|
38
38
|
if (!name) {
|
|
39
39
|
throw new TypeError('Must include name of method to invoke on collector.')
|
|
40
40
|
}
|
|
@@ -48,6 +48,7 @@ function RemoteMethod(name, agent, endpoint) {
|
|
|
48
48
|
this._protocolVersion = 17
|
|
49
49
|
|
|
50
50
|
this.endpoint = endpoint
|
|
51
|
+
this._contentType = contentType
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
RemoteMethod.prototype.updateEndpoint = function updateEndpoint(endpoint) {
|
|
@@ -377,7 +378,7 @@ RemoteMethod.prototype._headers = function _headers(options) {
|
|
|
377
378
|
'User-Agent': agent,
|
|
378
379
|
Connection: 'Keep-Alive',
|
|
379
380
|
'Content-Length': byteLength(options.body),
|
|
380
|
-
'Content-Type':
|
|
381
|
+
'Content-Type': this._contentType
|
|
381
382
|
}
|
|
382
383
|
|
|
383
384
|
if (options.compressed) {
|
package/lib/config/default.js
CHANGED
|
@@ -1253,6 +1253,61 @@ defaultConfig.definition = () => {
|
|
|
1253
1253
|
default: true
|
|
1254
1254
|
}
|
|
1255
1255
|
},
|
|
1256
|
+
/**
|
|
1257
|
+
* Controls the behavior of the profiler.
|
|
1258
|
+
*/
|
|
1259
|
+
profiling: {
|
|
1260
|
+
enabled: {
|
|
1261
|
+
formatter: boolean,
|
|
1262
|
+
default: false
|
|
1263
|
+
},
|
|
1264
|
+
/**
|
|
1265
|
+
* Harvest and ingest profile data every n milliseconds
|
|
1266
|
+
*/
|
|
1267
|
+
sample_interval: {
|
|
1268
|
+
formatter: int,
|
|
1269
|
+
default: 100
|
|
1270
|
+
},
|
|
1271
|
+
/**
|
|
1272
|
+
* List of profile type names to enable. Only cpu and heap profiles are currently supported
|
|
1273
|
+
*/
|
|
1274
|
+
include: {
|
|
1275
|
+
formatter: array,
|
|
1276
|
+
default: ['cpu', 'heap']
|
|
1277
|
+
},
|
|
1278
|
+
/**
|
|
1279
|
+
* Delay in milliseconds before starting profiler.
|
|
1280
|
+
*/
|
|
1281
|
+
delay: {
|
|
1282
|
+
formatter: int,
|
|
1283
|
+
default: 0
|
|
1284
|
+
},
|
|
1285
|
+
/**
|
|
1286
|
+
* If >0, stop profiler after this many milliseconds of operation.
|
|
1287
|
+
*/
|
|
1288
|
+
duration: {
|
|
1289
|
+
formatter: int,
|
|
1290
|
+
default: 0
|
|
1291
|
+
},
|
|
1292
|
+
/**
|
|
1293
|
+
* Restart the cpu profiler every n milliseconds to report its data
|
|
1294
|
+
*/
|
|
1295
|
+
cpu: {
|
|
1296
|
+
report_interval: {
|
|
1297
|
+
formatter: int,
|
|
1298
|
+
default: 0
|
|
1299
|
+
}
|
|
1300
|
+
},
|
|
1301
|
+
/**
|
|
1302
|
+
* Restart heap profiler every n milliseconds to report its data
|
|
1303
|
+
*/
|
|
1304
|
+
heap: {
|
|
1305
|
+
report_interval: {
|
|
1306
|
+
formatter: int,
|
|
1307
|
+
default: 0
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
},
|
|
1256
1311
|
|
|
1257
1312
|
/**
|
|
1258
1313
|
* When `true`, the AWS Lambda instrumentation will add the necessary
|
|
@@ -1707,7 +1762,7 @@ defaultConfig.definition = () => {
|
|
|
1707
1762
|
* agent.
|
|
1708
1763
|
*/
|
|
1709
1764
|
traces: {
|
|
1710
|
-
enabled: { default:
|
|
1765
|
+
enabled: { default: true, formatter: boolean }
|
|
1711
1766
|
},
|
|
1712
1767
|
|
|
1713
1768
|
/**
|
|
@@ -1719,7 +1774,7 @@ defaultConfig.definition = () => {
|
|
|
1719
1774
|
* application logs forwarding must be enabled as well.
|
|
1720
1775
|
*/
|
|
1721
1776
|
logs: {
|
|
1722
|
-
enabled: { default:
|
|
1777
|
+
enabled: { default: true, formatter: boolean }
|
|
1723
1778
|
},
|
|
1724
1779
|
|
|
1725
1780
|
/**
|
|
@@ -1729,26 +1784,26 @@ defaultConfig.definition = () => {
|
|
|
1729
1784
|
* application entity that is instrumented by the New Relic agent.
|
|
1730
1785
|
*/
|
|
1731
1786
|
metrics: {
|
|
1732
|
-
enabled: { default:
|
|
1787
|
+
enabled: { default: true, formatter: boolean },
|
|
1733
1788
|
|
|
1734
1789
|
/**
|
|
1735
|
-
* `
|
|
1790
|
+
* `export_interval` defines the number of milliseconds between each
|
|
1736
1791
|
* attempt to ship metrics to New Relic. This value must be equal to
|
|
1737
|
-
* or greater than the value of `
|
|
1792
|
+
* or greater than the value of `export_timeout`.
|
|
1738
1793
|
*/
|
|
1739
|
-
|
|
1794
|
+
export_interval: {
|
|
1740
1795
|
default: 60_000,
|
|
1741
1796
|
formatter: int
|
|
1742
1797
|
},
|
|
1743
1798
|
|
|
1744
1799
|
/**
|
|
1745
|
-
* `
|
|
1800
|
+
* `export_timeout` defines the number of milliseconds an export operation
|
|
1746
1801
|
* is allowed in order to successfully complete. If the timeout is
|
|
1747
1802
|
* exceeded, it will be reported via the OpenTelemetry diagnostics
|
|
1748
1803
|
* API.
|
|
1749
1804
|
*/
|
|
1750
|
-
|
|
1751
|
-
default:
|
|
1805
|
+
export_timeout: {
|
|
1806
|
+
default: 10_000,
|
|
1752
1807
|
formatter: int
|
|
1753
1808
|
}
|
|
1754
1809
|
}
|