@@ -47,11 +47,14 @@ export interface ClientMetadata {
4747 } ;
4848 /** FaaS environment information */
4949 env ?: {
50- name : 'aws.lambda' | 'gcp.func' | 'azure.func' | 'vercel' ;
50+ name ? : 'aws.lambda' | 'gcp.func' | 'azure.func' | 'vercel' ;
5151 timeout_sec ?: Int32 ;
5252 memory_mb ?: Int32 ;
5353 region ?: string ;
54- url ?: string ;
54+ container ?: {
55+ runtime ?: string ;
56+ orchestrator ?: string ;
57+ } ;
5558 } ;
5659}
5760
@@ -194,15 +197,17 @@ export async function makeClientMetadata(
194197}
195198
196199let dockerPromise : Promise < boolean > ;
200+ type ContainerMetadata = NonNullable < NonNullable < ClientMetadata [ 'env' ] > [ 'container' ] > ;
197201/** @internal */
198- async function getContainerMetadata ( ) {
199- const containerMetadata : Record < string , any > = { } ;
202+ async function getContainerMetadata ( ) : Promise < ContainerMetadata > {
200203 dockerPromise ??= fileIsAccessible ( '/.dockerenv' ) ;
201204 const isDocker = await dockerPromise ;
202205
203206 const { KUBERNETES_SERVICE_HOST = '' } = process . env ;
204207 const isKubernetes = KUBERNETES_SERVICE_HOST . length > 0 ? true : false ;
205208
209+ const containerMetadata : ContainerMetadata = { } ;
210+
206211 if ( isDocker ) containerMetadata . runtime = 'docker' ;
207212 if ( isKubernetes ) containerMetadata . orchestrator = 'kubernetes' ;
208213
@@ -220,7 +225,10 @@ async function addContainerMetadata(originalMetadata: ClientMetadata): Promise<C
220225
221226 const extendedMetadata = new LimitedSizeDocument ( 512 ) ;
222227
223- const extendedEnvMetadata = { ...originalMetadata ?. env , container : containerMetadata } ;
228+ const extendedEnvMetadata : NonNullable < ClientMetadata [ 'env' ] > = {
229+ ...originalMetadata ?. env ,
230+ container : containerMetadata
231+ } ;
224232
225233 for ( const [ key , val ] of Object . entries ( originalMetadata ) ) {
226234 if ( key !== 'env' ) {
0 commit comments