mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-31 01:37:24 +00:00
f7efd7d426
* feat(otel): allow disabling cloud detectors * docs(otel): add missing env * feat: implement `OTEL_NODE_RESOURCE_DETECTORS` * test: drop snapshot * Update lib/instrumentation/reporting.spec.ts Co-authored-by: Jamie Tanna <jamie.tanna@mend.io> * docs: update otel docs --------- Co-authored-by: Jamie Tanna <jamie.tanna@mend.io>
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import {
|
|
awsBeanstalkDetector,
|
|
awsEc2Detector,
|
|
awsEcsDetector,
|
|
awsEksDetector,
|
|
awsLambdaDetector,
|
|
} from '@opentelemetry/resource-detector-aws';
|
|
import {
|
|
azureAppServiceDetector,
|
|
azureFunctionsDetector,
|
|
azureVmDetector,
|
|
} from '@opentelemetry/resource-detector-azure';
|
|
import { gcpDetector } from '@opentelemetry/resource-detector-gcp';
|
|
import { gitHubDetector } from '@opentelemetry/resource-detector-github';
|
|
import type { ResourceDetector } from '@opentelemetry/resources';
|
|
import { envDetector } from '@opentelemetry/resources';
|
|
|
|
export function getResourceDetectors(
|
|
env: NodeJS.ProcessEnv,
|
|
): ResourceDetector[] {
|
|
const detectors: Record<string, ResourceDetector | ResourceDetector[]> = {
|
|
aws: [
|
|
awsBeanstalkDetector,
|
|
awsEc2Detector,
|
|
awsEcsDetector,
|
|
awsEksDetector,
|
|
awsLambdaDetector,
|
|
],
|
|
azure: [azureAppServiceDetector, azureFunctionsDetector, azureVmDetector],
|
|
gcp: gcpDetector,
|
|
github: gitHubDetector,
|
|
env: envDetector,
|
|
};
|
|
|
|
const resourceDetectorsFromEnv = new Set(
|
|
env.OTEL_NODE_RESOURCE_DETECTORS?.split(',') ?? [
|
|
env.RENOVATE_USE_CLOUD_METADATA_SERVICES?.toLocaleLowerCase() === 'false'
|
|
? 'env'
|
|
: 'all',
|
|
],
|
|
);
|
|
|
|
if (resourceDetectorsFromEnv.has('none')) {
|
|
return [];
|
|
}
|
|
|
|
if (resourceDetectorsFromEnv.has('all')) {
|
|
return Object.values(detectors).flat();
|
|
}
|
|
|
|
return Object.entries(detectors)
|
|
.filter(([name]) => resourceDetectorsFromEnv.has(name))
|
|
.map(([_, value]) => value)
|
|
.flat();
|
|
}
|