@internal
()
| 187 | type ContainerMetadata = NonNullable<NonNullable<ClientMetadata['env']>['container']>; |
| 188 | /** @internal */ |
| 189 | async function getContainerMetadata(): Promise<ContainerMetadata> { |
| 190 | dockerPromise ??= fileIsAccessible('/.dockerenv'); |
| 191 | const isDocker = await dockerPromise; |
| 192 | |
| 193 | const { KUBERNETES_SERVICE_HOST = '' } = process.env; |
| 194 | const isKubernetes = KUBERNETES_SERVICE_HOST.length > 0 ? true : false; |
| 195 | |
| 196 | const containerMetadata: ContainerMetadata = {}; |
| 197 | |
| 198 | if (isDocker) containerMetadata.runtime = 'docker'; |
| 199 | if (isKubernetes) containerMetadata.orchestrator = 'kubernetes'; |
| 200 | |
| 201 | return containerMetadata; |
| 202 | } |
| 203 | |
| 204 | /** |
| 205 | * @internal |
no test coverage detected