File tree Expand file tree Collapse file tree 1 file changed +29
-1
lines changed
packages/gateway/src/commands Expand file tree Collapse file tree 1 file changed +29
-1
lines changed Original file line number Diff line number Diff line change 3
3
BatchSpanProcessor ,
4
4
SpanProcessor ,
5
5
} from '@opentelemetry/sdk-trace-base' ;
6
- import { getEnvStr } from '~internal/env' ;
6
+ import { getEnvStr , isNode } from '~internal/env' ;
7
7
import type { CLIContext } from '..' ;
8
8
9
9
export async function handleOpenTelemetryConfig (
@@ -110,6 +110,21 @@ export async function handleOpenTelemetryConfig(
110
110
111
111
openTelemetrySetup ( {
112
112
traces : { processors } ,
113
+ resource : await detectResource ( ) . catch ( ( err ) => {
114
+ if (
115
+ err &&
116
+ typeof err === 'object' &&
117
+ 'code' in err &&
118
+ err . code === 'ERR_MODULE_NOT_FOUND'
119
+ ) {
120
+ ctx . log . warn (
121
+ err ,
122
+ `NodeJS modules necessary for environment detection is missing, please install it to auto-detect the environment` ,
123
+ ) ;
124
+ return undefined ;
125
+ }
126
+ throw err ;
127
+ } ) ,
113
128
contextManager,
114
129
} ) ;
115
130
@@ -121,3 +136,16 @@ export async function handleOpenTelemetryConfig(
121
136
122
137
return false ;
123
138
}
139
+
140
+ async function detectResource ( ) {
141
+ if ( isNode ( ) ) {
142
+ // eslint-disable-next-line import/no-extraneous-dependencies -- it's up to the user to install
143
+ const { getResourceDetectors } = await import (
144
+ '@opentelemetry/auto-instrumentations-node'
145
+ ) ;
146
+ // eslint-disable-next-line import/no-extraneous-dependencies -- it's up to the user to install
147
+ const { detectResources } = await import ( '@opentelemetry/resources' ) ;
148
+ return detectResources ( { detectors : getResourceDetectors ( ) } ) ;
149
+ }
150
+ return undefined ;
151
+ }
You can’t perform that action at this time.
0 commit comments