Skip to content

Commit b433a6b

Browse files
authored
feat(resource-util)!: remove deprecated code and features (#817)
before the next release where we are already making some breaking changes
1 parent 980b7ef commit b433a6b

File tree

5 files changed

+4
-283
lines changed

5 files changed

+4
-283
lines changed

packages/opentelemetry-resource-util/__snapshots__/index.test.ts.js

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -349,24 +349,6 @@ exports['mapOtelResourceToMonitoredResource should map to aws_ec2_instance" 1']
349349
}
350350
}
351351

352-
exports['mapOtelResourceToMonitoredResource should map to cloud_function" 1'] = {
353-
"type": "cloud_function",
354-
"labels": {
355-
"region": "myregion",
356-
"function_name": "myfaasname"
357-
}
358-
}
359-
360-
exports['mapOtelResourceToMonitoredResource should map to cloud_run_revision" 1'] = {
361-
"type": "cloud_run_revision",
362-
"labels": {
363-
"location": "myregion",
364-
"service_name": "myfaasname",
365-
"configuration_name": "myfaasname",
366-
"revision_name": "myfaasversion"
367-
}
368-
}
369-
370352
exports['mapOtelResourceToMonitoredResource should map to gae_instance" 1'] = {
371353
"type": "gae_instance",
372354
"labels": {

packages/opentelemetry-resource-util/src/detector/detector.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -198,16 +198,6 @@ async function makeResource(attrs: GcpResourceAttributes): Promise<Resource> {
198198
} satisfies GcpResourceAttributes);
199199
}
200200

201-
/**
202-
* Async Google Cloud resource detector which populates attributes based the on environment
203-
* this process is running in. If not on GCP, returns an empty resource.
204-
*
205-
* @deprecated Async resource detectors are deprecated. Please use {@link GcpDetectorSync} instead.
206-
*/
207-
export class GcpDetector {
208-
detect = detect;
209-
}
210-
211201
/**
212202
* Google Cloud resource detector which populates attributes based on the environment this
213203
* process is running in. If not on GCP, returns an empty resource.

packages/opentelemetry-resource-util/src/index.ts

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ import {Resource} from '@opentelemetry/resources';
1717
import {
1818
CLOUDPLATFORMVALUES_AWS_EC2,
1919
CLOUDPLATFORMVALUES_GCP_APP_ENGINE,
20-
CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS,
21-
CLOUDPLATFORMVALUES_GCP_CLOUD_RUN,
2220
CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE,
2321
SEMRESATTRS_CLOUD_ACCOUNT_ID,
2422
SEMRESATTRS_CLOUD_AVAILABILITY_ZONE,
@@ -230,21 +228,6 @@ export interface MonitoredResource {
230228
*/
231229
export function mapOtelResourceToMonitoredResource(
232230
resource: Resource,
233-
): MonitoredResource;
234-
/**
235-
* @deprecated This overload is deprecated, do not pass the includeUnsupportedResources boolean
236-
* parameter. It will be removed in the next major version release.
237-
*
238-
* @param resource the OTel Resource
239-
* @returns the corresponding GCM MonitoredResource
240-
*/
241-
export function mapOtelResourceToMonitoredResource(
242-
resource: Resource,
243-
includeUnsupportedResources: boolean | undefined,
244-
): MonitoredResource;
245-
export function mapOtelResourceToMonitoredResource(
246-
resource: Resource,
247-
includeUnsupportedResources = false,
248231
): MonitoredResource {
249232
const attrs = resource.attributes;
250233
const platform = attrs[SEMRESATTRS_CLOUD_PLATFORM];
@@ -256,18 +239,6 @@ export function mapOtelResourceToMonitoredResource(
256239
mr = createMonitoredResource(GAE_INSTANCE, attrs);
257240
} else if (platform === CLOUDPLATFORMVALUES_AWS_EC2) {
258241
mr = createMonitoredResource(AWS_EC2_INSTANCE, attrs);
259-
}
260-
// Cloud Run and Cloud Functions are not writeable for custom metrics yet
261-
else if (
262-
includeUnsupportedResources &&
263-
platform === CLOUDPLATFORMVALUES_GCP_CLOUD_RUN
264-
) {
265-
mr = createMonitoredResource(CLOUD_RUN_REVISION, attrs);
266-
} else if (
267-
includeUnsupportedResources &&
268-
platform === CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS
269-
) {
270-
mr = createMonitoredResource(CLOUD_FUNCTION, attrs);
271242
} else if (SEMRESATTRS_K8S_CLUSTER_NAME in attrs) {
272243
// if k8s.cluster.name is set, pattern match for various k8s resources.
273244
// this will also match non-cloud k8s platforms like minikube.
@@ -341,4 +312,4 @@ function createMonitoredResource(
341312
};
342313
}
343314

344-
export {GcpDetector, GcpDetectorSync} from './detector/detector';
315+
export {GcpDetectorSync} from './detector/detector';

packages/opentelemetry-resource-util/test/detector/detector.test.ts

Lines changed: 1 addition & 191 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import * as sinon from 'sinon';
1616
import * as metadata from 'gcp-metadata';
1717

18-
import {GcpDetector, GcpDetectorSync} from '../../src/detector/detector';
18+
import {GcpDetectorSync} from '../../src/detector/detector';
1919
import {
2020
detectResources,
2121
ResourceDetector,
@@ -29,196 +29,6 @@ async function detectAndWait(detector: ResourceDetector): Promise<Resource> {
2929
return resource;
3030
}
3131

32-
describe('GcpDetector', () => {
33-
let metadataStub: sinon.SinonStubbedInstance<typeof metadata>;
34-
let envStub: NodeJS.ProcessEnv;
35-
beforeEach(() => {
36-
metadataStub = sinon.stub(metadata);
37-
metadataStub.isAvailable.resolves(true);
38-
metadataStub.project.withArgs('project-id').resolves('fake-project-id');
39-
40-
envStub = sinon.replace(process, 'env', {});
41-
});
42-
43-
afterEach(() => {
44-
sinon.restore();
45-
});
46-
47-
it('returns empty resource when metadata server is not available', async () => {
48-
metadataStub.isAvailable.resolves(false);
49-
const resource = await new GcpDetector().detect();
50-
assert.deepStrictEqual(resource.attributes, {});
51-
});
52-
53-
describe('detects a GKE resource', () => {
54-
beforeEach(() => {
55-
envStub.KUBERNETES_SERVICE_HOST = 'fake-service-host';
56-
metadataStub.instance
57-
.withArgs('id')
58-
.resolves(12345)
59-
60-
.withArgs('attributes/cluster-name')
61-
.resolves('fake-cluster-name');
62-
});
63-
64-
it('zonal', async () => {
65-
metadataStub.instance
66-
.withArgs('attributes/cluster-location')
67-
.resolves('us-east4-b');
68-
const resource = await new GcpDetector().detect();
69-
assert.deepStrictEqual(resource.attributes, {
70-
'cloud.account.id': 'fake-project-id',
71-
'cloud.availability_zone': 'us-east4-b',
72-
'cloud.platform': 'gcp_kubernetes_engine',
73-
'cloud.provider': 'gcp',
74-
'host.id': '12345',
75-
'k8s.cluster.name': 'fake-cluster-name',
76-
});
77-
});
78-
79-
it('regional', async () => {
80-
metadataStub.instance
81-
.withArgs('attributes/cluster-location')
82-
.resolves('us-east4');
83-
const resource = await new GcpDetector().detect();
84-
assert.deepStrictEqual(resource.attributes, {
85-
'cloud.account.id': 'fake-project-id',
86-
'cloud.platform': 'gcp_kubernetes_engine',
87-
'cloud.provider': 'gcp',
88-
'cloud.region': 'us-east4',
89-
'host.id': '12345',
90-
'k8s.cluster.name': 'fake-cluster-name',
91-
});
92-
});
93-
});
94-
95-
it('detects a GCE resource', async () => {
96-
metadataStub.instance
97-
.withArgs('id')
98-
.resolves(12345)
99-
100-
.withArgs('machine-type')
101-
.resolves('fake-machine-type')
102-
103-
.withArgs('name')
104-
.resolves('fake-name')
105-
106-
.withArgs('zone')
107-
.resolves('projects/233510669999/zones/us-east4-b');
108-
109-
const resource = await new GcpDetector().detect();
110-
assert.deepStrictEqual(resource.attributes, {
111-
'cloud.account.id': 'fake-project-id',
112-
'cloud.availability_zone': 'us-east4-b',
113-
'cloud.platform': 'gcp_compute_engine',
114-
'cloud.provider': 'gcp',
115-
'cloud.region': 'us-east4',
116-
'host.id': '12345',
117-
'host.name': 'fake-name',
118-
'host.type': 'fake-machine-type',
119-
});
120-
});
121-
122-
it('detects a Cloud Run resource', async () => {
123-
envStub.K_CONFIGURATION = 'fake-configuration';
124-
envStub.K_SERVICE = 'fake-service';
125-
envStub.K_REVISION = 'fake-revision';
126-
metadataStub.instance
127-
.withArgs('id')
128-
.resolves(12345)
129-
130-
.withArgs('region')
131-
.resolves('projects/233510669999/regions/us-east4');
132-
133-
const resource = await new GcpDetector().detect();
134-
assert.deepStrictEqual(resource.attributes, {
135-
'cloud.account.id': 'fake-project-id',
136-
'cloud.platform': 'gcp_cloud_run',
137-
'cloud.provider': 'gcp',
138-
'cloud.region': 'us-east4',
139-
'faas.instance': '12345',
140-
'faas.name': 'fake-service',
141-
'faas.version': 'fake-revision',
142-
});
143-
});
144-
145-
it('detects a Cloud Functions resource', async () => {
146-
envStub.FUNCTION_TARGET = 'fake-function-target';
147-
envStub.K_SERVICE = 'fake-service';
148-
envStub.K_REVISION = 'fake-revision';
149-
metadataStub.instance
150-
.withArgs('id')
151-
.resolves(12345)
152-
153-
.withArgs('region')
154-
.resolves('projects/233510669999/regions/us-east4');
155-
156-
const resource = await new GcpDetector().detect();
157-
assert.deepStrictEqual(resource.attributes, {
158-
'cloud.account.id': 'fake-project-id',
159-
'cloud.platform': 'gcp_cloud_functions',
160-
'cloud.provider': 'gcp',
161-
'cloud.region': 'us-east4',
162-
'faas.instance': '12345',
163-
'faas.name': 'fake-service',
164-
'faas.version': 'fake-revision',
165-
});
166-
});
167-
168-
it('detects a App Engine Standard resource', async () => {
169-
envStub.GAE_ENV = 'standard';
170-
envStub.GAE_SERVICE = 'fake-service';
171-
envStub.GAE_VERSION = 'fake-version';
172-
envStub.GAE_INSTANCE = 'fake-instance';
173-
metadataStub.instance.withArgs('zone').resolves('us-east4-b');
174-
metadataStub.instance
175-
.withArgs('region')
176-
.resolves('projects/233510669999/regions/us-east4');
177-
178-
const resource = await new GcpDetector().detect();
179-
assert.deepStrictEqual(resource.attributes, {
180-
'cloud.account.id': 'fake-project-id',
181-
'cloud.availability_zone': 'us-east4-b',
182-
'cloud.platform': 'gcp_app_engine',
183-
'cloud.provider': 'gcp',
184-
'cloud.region': 'us-east4',
185-
'faas.instance': 'fake-instance',
186-
'faas.name': 'fake-service',
187-
'faas.version': 'fake-version',
188-
});
189-
});
190-
191-
it('detects a App Engine Flex resource', async () => {
192-
envStub.GAE_SERVICE = 'fake-service';
193-
envStub.GAE_VERSION = 'fake-version';
194-
envStub.GAE_INSTANCE = 'fake-instance';
195-
metadataStub.instance
196-
.withArgs('zone')
197-
.resolves('projects/233510669999/zones/us-east4-b');
198-
199-
const resource = await new GcpDetector().detect();
200-
assert.deepStrictEqual(resource.attributes, {
201-
'cloud.account.id': 'fake-project-id',
202-
'cloud.availability_zone': 'us-east4-b',
203-
'cloud.platform': 'gcp_app_engine',
204-
'cloud.provider': 'gcp',
205-
'cloud.region': 'us-east4',
206-
'faas.instance': 'fake-instance',
207-
'faas.name': 'fake-service',
208-
'faas.version': 'fake-version',
209-
});
210-
});
211-
212-
it('detects empty resource when nothing else can be detected', async () => {
213-
// gcp-metadata throws when it can't access the metadata server
214-
metadataStub.instance.rejects();
215-
metadataStub.project.rejects();
216-
217-
const resource = await new GcpDetector().detect();
218-
assert.deepStrictEqual(resource.attributes, {});
219-
});
220-
});
221-
22232
describe('GcpDetectorSync', () => {
22333
let metadataStub: sinon.SinonStubbedInstance<typeof metadata>;
22434
let envStub: NodeJS.ProcessEnv;

packages/opentelemetry-resource-util/test/index.test.ts

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,6 @@ describe('mapOtelResourceToMonitoredResource', () => {
5555
'cloud.account.id': 'myawsaccount',
5656
},
5757
},
58-
59-
{
60-
title: 'should map to cloud_run_revision"',
61-
otelAttributes: {
62-
'cloud.platform': 'gcp_cloud_run',
63-
'cloud.region': 'myregion',
64-
'faas.instance': 'myfaasinstance',
65-
'faas.name': 'myfaasname',
66-
'faas.version': 'myfaasversion',
67-
'service.name': 'servicename',
68-
'service.instance.id': 'serviceinstanceid',
69-
},
70-
includeUnsupportedResources: true,
71-
},
7258
{
7359
title:
7460
'should map cloud_run_revision to generic_task when not including unsupported resources"',
@@ -82,22 +68,8 @@ describe('mapOtelResourceToMonitoredResource', () => {
8268
'service.namespace': 'servicens',
8369
'service.instance.id': 'serviceinstanceid',
8470
},
85-
includeUnsupportedResources: false,
8671
},
8772

88-
{
89-
title: 'should map to cloud_function"',
90-
otelAttributes: {
91-
'cloud.platform': 'gcp_cloud_functions',
92-
'cloud.region': 'myregion',
93-
'faas.instance': 'myfaasinstance',
94-
'faas.name': 'myfaasname',
95-
'faas.version': 'myfaasversion',
96-
'service.name': 'servicename',
97-
'service.instance.id': 'serviceinstanceid',
98-
},
99-
includeUnsupportedResources: true,
100-
},
10173
{
10274
title:
10375
'should map cloud_function to generic_task when not including unsupported resources"',
@@ -111,7 +83,6 @@ describe('mapOtelResourceToMonitoredResource', () => {
11183
'service.namespace': 'servicens',
11284
'service.instance.id': 'serviceinstanceid',
11385
},
114-
includeUnsupportedResources: false,
11586
},
11687

11788
{
@@ -238,13 +209,10 @@ describe('mapOtelResourceToMonitoredResource', () => {
238209
title: 'should map empty resource to generic_node',
239210
otelAttributes: {foo: 'bar', 'no.useful': 'resourceattribs'},
240211
},
241-
].forEach(({title, otelAttributes, includeUnsupportedResources}) => {
212+
].forEach(({title, otelAttributes}) => {
242213
it(title, () => {
243214
const resource = resourceFromAttributes(otelAttributes);
244-
const actual = mapOtelResourceToMonitoredResource(
245-
resource,
246-
includeUnsupportedResources,
247-
);
215+
const actual = mapOtelResourceToMonitoredResource(resource);
248216
snapshot(actual);
249217
});
250218
});

0 commit comments

Comments
 (0)