-
Notifications
You must be signed in to change notification settings - Fork 383
Expand file tree
/
Copy pathindex.js
More file actions
37 lines (31 loc) · 1.28 KB
/
index.js
File metadata and controls
37 lines (31 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict'
const PushSubscriptionPlugin = require('../../datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription')
const CompositePlugin = require('../../dd-trace/src/plugins/composite')
const { enableGCPPubSubPushSubscription } = require('../../dd-trace/src/serverless')
const log = require('../../dd-trace/src/log')
const HttpClientPlugin = require('./client')
const HttpServerPlugin = require('./server')
/**
* HTTP Plugin loads server/client plugins with optional GCP Pub/Sub Push support.
* Plugin order is critical: PushSubscriptionPlugin must load FIRST to intercept
* Pub/Sub push requests and activate delivery spans before HTTP spans are created.
*/
class HttpPlugin extends CompositePlugin {
static id = 'http'
static get plugins() {
const plugins = {}
// Load push subscription plugin first (if enabled) for GCP Cloud Run
if (enableGCPPubSubPushSubscription()) {
try {
plugins['pubsub-push-subscription'] = PushSubscriptionPlugin
log.debug('Loaded GCP Pub/Sub Push Subscription plugin for HTTP requests')
} catch (e) {
log.debug('Failed to load GCP Pub/Sub Push Subscription plugin:', e)
}
}
plugins.server = HttpServerPlugin
plugins.client = HttpClientPlugin
return plugins
}
}
module.exports = HttpPlugin