newrelic 13.2.1 → 13.3.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.
Files changed (56) hide show
  1. package/NEWS.md +44 -10
  2. package/api.js +1 -1
  3. package/lib/instrumentation/@azure/functions.js +8 -46
  4. package/lib/instrumentation/core/http-outbound.js +26 -10
  5. package/lib/instrumentation/core/http.js +20 -118
  6. package/lib/instrumentations.js +0 -14
  7. package/lib/otel/logs/index.js +80 -0
  8. package/lib/otel/metrics/index.js +119 -0
  9. package/lib/otel/setup-signal.js +37 -0
  10. package/lib/otel/setup.js +15 -25
  11. package/lib/otel/{attr-reconciler.js → traces/attr-reconciler.js} +2 -2
  12. package/lib/otel/{exception-mapping.js → traces/exception-mapping.js} +1 -1
  13. package/lib/otel/traces/index.js +40 -0
  14. package/lib/otel/{rules.js → traces/rules.js} +1 -1
  15. package/lib/otel/{segment-synthesis.js → traces/segment-synthesis.js} +5 -4
  16. package/lib/otel/{segments → traces/segments}/consumer.js +4 -4
  17. package/lib/otel/{segments → traces/segments}/database.js +6 -6
  18. package/lib/otel/{segments → traces/segments}/http-external.js +11 -8
  19. package/lib/otel/traces/segments/index.js +22 -0
  20. package/lib/otel/{segments → traces/segments}/internal.js +1 -1
  21. package/lib/otel/{segments → traces/segments}/producer.js +2 -2
  22. package/lib/otel/{segments → traces/segments}/server.js +4 -4
  23. package/lib/otel/{segments → traces/segments}/utils.js +1 -1
  24. package/lib/otel/{span-processor.js → traces/span-processor.js} +13 -19
  25. package/lib/otel/{transformation-rules.json → traces/transformation-rules.json} +3 -2
  26. package/lib/otel/{utils.js → traces/utils.js} +2 -1
  27. package/lib/serverless/aws-lambda.js +7 -68
  28. package/lib/shim/webframework-shim/middleware.js +1 -1
  29. package/lib/shimmer.js +1 -1
  30. package/lib/subscriber-configs.js +2 -1
  31. package/lib/subscribers/base.js +30 -0
  32. package/lib/subscribers/elasticsearch/config.js +1 -0
  33. package/lib/subscribers/mcp-sdk/client-request.js +66 -0
  34. package/lib/subscribers/mcp-sdk/config.js +13 -75
  35. package/lib/subscribers/openai/base.js +21 -0
  36. package/lib/subscribers/openai/chat-responses.js +15 -0
  37. package/lib/subscribers/openai/chat.js +85 -0
  38. package/lib/subscribers/openai/client.js +31 -0
  39. package/lib/subscribers/openai/config.js +85 -0
  40. package/lib/subscribers/openai/embeddings.js +54 -0
  41. package/lib/subscribers/openai/utils.js +349 -0
  42. package/lib/transaction/index.js +157 -56
  43. package/lib/transaction/trace/segment.js +5 -2
  44. package/lib/util/urltils.js +158 -192
  45. package/lib/utilization/common.js +0 -6
  46. package/package.json +1 -1
  47. package/lib/instrumentation/openai.js +0 -482
  48. package/lib/otel/logs/bootstrap-logs.js +0 -84
  49. package/lib/otel/metrics/bootstrap-metrics.js +0 -117
  50. package/lib/otel/segments/index.js +0 -22
  51. package/lib/subscribers/mcp-sdk/client-prompt.js +0 -23
  52. package/lib/subscribers/mcp-sdk/client-resource.js +0 -24
  53. package/lib/subscribers/mcp-sdk/client-tool.js +0 -23
  54. package/lib/subscribers/mcp-sdk/client.js +0 -29
  55. /package/lib/otel/{constants.js → traces/constants.js} +0 -0
  56. /package/lib/otel/{sampler.js → traces/sampler.js} +0 -0
@@ -1,23 +0,0 @@
1
- /*
2
- * Copyright 2025 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- 'use strict'
7
-
8
- const McpClientSubscriber = require('./client')
9
- const { MCP } = require('../../metrics/names')
10
-
11
- class McpClientPromptSubscriber extends McpClientSubscriber {
12
- constructor({ agent, logger }) {
13
- super({ agent, logger, channelName: 'nr_getPrompt' })
14
- }
15
-
16
- handler(data, ctx) {
17
- const promptName = data?.arguments?.[0]?.name
18
- this.segmentName = `${MCP.PROMPT}/getPrompt/${promptName}`
19
- return super.handler(ctx)
20
- }
21
- }
22
-
23
- module.exports = McpClientPromptSubscriber
@@ -1,24 +0,0 @@
1
- /*
2
- * Copyright 2025 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- 'use strict'
7
-
8
- const McpClientSubscriber = require('./client')
9
- const { MCP } = require('../../metrics/names')
10
-
11
- class McpClientResourceSubscriber extends McpClientSubscriber {
12
- constructor({ agent, logger }) {
13
- super({ agent, logger, channelName: 'nr_readResource' })
14
- }
15
-
16
- handler(data, ctx) {
17
- const uri = data?.arguments?.[0]?.uri
18
- const scheme = typeof uri === 'string' ? uri.split('://')[0] : undefined
19
- this.segmentName = `${MCP.RESOURCE}/readResource/${scheme}`
20
- return super.handler(ctx)
21
- }
22
- }
23
-
24
- module.exports = McpClientResourceSubscriber
@@ -1,23 +0,0 @@
1
- /*
2
- * Copyright 2025 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- 'use strict'
7
-
8
- const McpClientSubscriber = require('./client')
9
- const { MCP } = require('../../metrics/names')
10
-
11
- class McpClientToolSubscriber extends McpClientSubscriber {
12
- constructor({ agent, logger }) {
13
- super({ agent, logger, channelName: 'nr_callTool' })
14
- }
15
-
16
- handler(data, ctx) {
17
- const toolName = data?.arguments?.[0]?.name
18
- this.segmentName = `${MCP.TOOL}/callTool/${toolName}`
19
- return super.handler(ctx)
20
- }
21
- }
22
-
23
- module.exports = McpClientToolSubscriber
@@ -1,29 +0,0 @@
1
- /*
2
- * Copyright 2025 New Relic Corporation. All rights reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- 'use strict'
7
-
8
- const Subscriber = require('../base')
9
-
10
- class McpClientSubscriber extends Subscriber {
11
- constructor({ agent, logger, channelName }) {
12
- super({ agent, logger, packageName: '@modelcontextprotocol/sdk', channelName })
13
- this.events = ['asyncEnd']
14
- this.segmentName = 'Unknown'
15
- }
16
-
17
- get enabled() {
18
- return super.enabled && this.config.ai_monitoring.enabled === true
19
- }
20
-
21
- handler(ctx) {
22
- return this.createSegment({
23
- name: this.segmentName,
24
- ctx
25
- })
26
- }
27
- }
28
-
29
- module.exports = McpClientSubscriber
File without changes
File without changes