From 92a8897a18381954c420029b29fa8dd2aa09cbdb Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Fri, 29 Jul 2022 23:18:05 +0900 Subject: [PATCH 01/13] detectors/gcp: support Cloud Run jobs Signed-off-by: Koichi Shiraishi --- detectors/gcp/detector.go | 7 +++++-- detectors/gcp/detector_test.go | 10 ++++++++++ detectors/gcp/faas.go | 17 +++++++++++++++-- detectors/gcp/faas_test.go | 22 ++++++++++++++++++++++ 4 files changed, 52 insertions(+), 4 deletions(-) diff --git a/detectors/gcp/detector.go b/detectors/gcp/detector.go index 16bd453c3..591c08877 100644 --- a/detectors/gcp/detector.go +++ b/detectors/gcp/detector.go @@ -36,6 +36,7 @@ const ( GKE GCE CloudRun + CloudRunJobs CloudFunctions AppEngineStandard AppEngineFlex @@ -46,10 +47,12 @@ func (d *Detector) CloudPlatform() Platform { switch { case d.onGKE(): return GKE - case d.onCloudFunctions(): - return CloudFunctions case d.onCloudRun(): return CloudRun + case d.onCloudRunJobs(): + return CloudRunJobs + case d.onCloudFunctions(): + return CloudFunctions case d.onAppEngineStandard(): return AppEngineStandard case d.onAppEngine(): diff --git a/detectors/gcp/detector_test.go b/detectors/gcp/detector_test.go index 68855f531..0f3f6fc90 100644 --- a/detectors/gcp/detector_test.go +++ b/detectors/gcp/detector_test.go @@ -70,6 +70,16 @@ func TestCloudPlatformCloudRun(t *testing.T) { assert.Equal(t, platform, CloudRun) } +func TestCloudPlatformCloudRunJobs(t *testing.T) { + d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ + Vars: map[string]string{ + cloudRunJobsEnv: "foo", + }, + }) + platform := d.CloudPlatform() + assert.Equal(t, platform, CloudRunJobs) +} + func TestCloudPlatformCloudFunctions(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index f395d5bef..7e952280b 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -24,9 +24,11 @@ const ( // and the Cloud Functions env vars: // https://cloud.google.com/functions/docs/configuring/env-var#runtime_environment_variables_set_automatically cloudRunConfigEnv = "K_CONFIGURATION" + cloudRunJobsEnv = "CLOUD_RUN_JOB" cloudFunctionTargetEnv = "FUNCTION_TARGET" faasServiceEnv = "K_SERVICE" faasRevisionEnv = "K_REVISION" + jobsRevisionEnv = "CLOUD_RUN_EXECUTION" regionMetadataAttr = "instance/region" ) @@ -35,24 +37,35 @@ func (d *Detector) onCloudRun() bool { return found } +func (d *Detector) onCloudRunJobs() bool { + _, found := d.os.LookupEnv(cloudRunJobsEnv) + return found +} + func (d *Detector) onCloudFunctions() bool { _, found := d.os.LookupEnv(cloudFunctionTargetEnv) return found } -// FaaSName returns the name of the cloud run or cloud functions service. +// FaaSName returns the name of the cloud run, cloud run jobs or cloud functions service. func (d *Detector) FaaSName() (string, error) { if name, found := d.os.LookupEnv(faasServiceEnv); found { return name, nil } + if name, found := d.os.LookupEnv(cloudRunJobsEnv); found { + return name, nil + } return "", errEnvVarNotFound } -// FaaSVersion returns the revision of the cloud run or cloud functions service. +// FaaSVersion returns the revision of the cloud run, cloud run jobs or cloud functions service. func (d *Detector) FaaSVersion() (string, error) { if version, found := d.os.LookupEnv(faasRevisionEnv); found { return version, nil } + if version, found := d.os.LookupEnv(jobsRevisionEnv); found { + return version, nil + } return "", errEnvVarNotFound } diff --git a/detectors/gcp/faas_test.go b/detectors/gcp/faas_test.go index fd84c183b..6a4ca0f9e 100644 --- a/detectors/gcp/faas_test.go +++ b/detectors/gcp/faas_test.go @@ -32,6 +32,17 @@ func TestFaaSName(t *testing.T) { assert.Equal(t, name, "my-service") } +func TestFaaSJobsName(t *testing.T) { + d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ + Vars: map[string]string{ + cloudRunJobsEnv: "my-service", + }, + }) + name, err := d.FaaSName() + assert.NoError(t, err) + assert.Equal(t, name, "my-service") +} + func TestFaaSNameErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, @@ -52,6 +63,17 @@ func TestFaaSVersion(t *testing.T) { assert.Equal(t, version, "version-123") } +func TestFaaSJobsVersion(t *testing.T) { + d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ + Vars: map[string]string{ + jobsRevisionEnv: "version-123", + }, + }) + version, err := d.FaaSVersion() + assert.NoError(t, err) + assert.Equal(t, version, "version-123") +} + func TestFaaSVersionErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, From b1e33e8f5ca28f35b242e66c1dc9b80b4467a9cb Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Sat, 30 Jul 2022 04:59:09 +0900 Subject: [PATCH 02/13] detectors/gcp: remove CloudRunJobs constant Signed-off-by: Koichi Shiraishi --- detectors/gcp/detector.go | 3 --- detectors/gcp/detector_test.go | 2 +- detectors/gcp/faas.go | 7 +++---- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/detectors/gcp/detector.go b/detectors/gcp/detector.go index 591c08877..9d6198ee7 100644 --- a/detectors/gcp/detector.go +++ b/detectors/gcp/detector.go @@ -36,7 +36,6 @@ const ( GKE GCE CloudRun - CloudRunJobs CloudFunctions AppEngineStandard AppEngineFlex @@ -49,8 +48,6 @@ func (d *Detector) CloudPlatform() Platform { return GKE case d.onCloudRun(): return CloudRun - case d.onCloudRunJobs(): - return CloudRunJobs case d.onCloudFunctions(): return CloudFunctions case d.onAppEngineStandard(): diff --git a/detectors/gcp/detector_test.go b/detectors/gcp/detector_test.go index 0f3f6fc90..01f1176cd 100644 --- a/detectors/gcp/detector_test.go +++ b/detectors/gcp/detector_test.go @@ -77,7 +77,7 @@ func TestCloudPlatformCloudRunJobs(t *testing.T) { }, }) platform := d.CloudPlatform() - assert.Equal(t, platform, CloudRunJobs) + assert.Equal(t, platform, CloudRun) } func TestCloudPlatformCloudFunctions(t *testing.T) { diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index 7e952280b..b1716a41f 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -33,11 +33,10 @@ const ( ) func (d *Detector) onCloudRun() bool { - _, found := d.os.LookupEnv(cloudRunConfigEnv) - return found -} + if _, found := d.os.LookupEnv(cloudRunConfigEnv); found { + return found + } -func (d *Detector) onCloudRunJobs() bool { _, found := d.os.LookupEnv(cloudRunJobsEnv) return found } From 7920ef8bc1984eb73cc29f2d82f391fd7ff0b3a7 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Wed, 14 Sep 2022 06:59:41 +0900 Subject: [PATCH 03/13] detectors/gcp: use CLOUD_RUN_TASK_INDEX Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas.go | 6 +++++- detectors/gcp/faas_test.go | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index b1716a41f..8a4040d61 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -15,6 +15,7 @@ package gcp import ( + "fmt" "strings" ) @@ -29,6 +30,7 @@ const ( faasServiceEnv = "K_SERVICE" faasRevisionEnv = "K_REVISION" jobsRevisionEnv = "CLOUD_RUN_EXECUTION" + jobsTaskIndexEnv = "CLOUD_RUN_TASK_INDEX" regionMetadataAttr = "instance/region" ) @@ -63,7 +65,9 @@ func (d *Detector) FaaSVersion() (string, error) { return version, nil } if version, found := d.os.LookupEnv(jobsRevisionEnv); found { - return version, nil + if index, found := d.os.LookupEnv(jobsTaskIndexEnv); found { + return fmt.Sprintf("%s/%s", version, index), nil + } } return "", errEnvVarNotFound } diff --git a/detectors/gcp/faas_test.go b/detectors/gcp/faas_test.go index 6a4ca0f9e..8012ce64c 100644 --- a/detectors/gcp/faas_test.go +++ b/detectors/gcp/faas_test.go @@ -66,12 +66,13 @@ func TestFaaSVersion(t *testing.T) { func TestFaaSJobsVersion(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ - jobsRevisionEnv: "version-123", + jobsRevisionEnv: "version-123", + jobsTaskIndexEnv: "0", }, }) version, err := d.FaaSVersion() assert.NoError(t, err) - assert.Equal(t, version, "version-123") + assert.Equal(t, version, "version-123/0") } func TestFaaSVersionErr(t *testing.T) { From 68b1cff3fb66c2dd3b46611cbdc47b76ec28bd20 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Sat, 10 Jun 2023 00:37:45 +0900 Subject: [PATCH 04/13] detectors/gcp: revert sort CloudPlatform switch order Cloud Functions gen2 also reserved K_CONFIGURATION environment variable Signed-off-by: Koichi Shiraishi --- detectors/gcp/detector.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/detectors/gcp/detector.go b/detectors/gcp/detector.go index 9d6198ee7..16bd453c3 100644 --- a/detectors/gcp/detector.go +++ b/detectors/gcp/detector.go @@ -46,10 +46,10 @@ func (d *Detector) CloudPlatform() Platform { switch { case d.onGKE(): return GKE - case d.onCloudRun(): - return CloudRun case d.onCloudFunctions(): return CloudFunctions + case d.onCloudRun(): + return CloudRun case d.onAppEngineStandard(): return AppEngineStandard case d.onAppEngine(): From a3a31daec0a54413131eba9ae56dcefff1d50b45 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Sun, 11 Jun 2023 16:40:08 +0900 Subject: [PATCH 05/13] detectors/gcp: fix correct env constants names and fix ref url Signed-off-by: Koichi Shiraishi --- detectors/gcp/detector_test.go | 4 ++-- detectors/gcp/faas.go | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/detectors/gcp/detector_test.go b/detectors/gcp/detector_test.go index 01f1176cd..1e318e965 100644 --- a/detectors/gcp/detector_test.go +++ b/detectors/gcp/detector_test.go @@ -63,7 +63,7 @@ func TestCloudPlatformGCE(t *testing.T) { func TestCloudPlatformCloudRun(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ - cloudRunConfigEnv: "foo", + cloudRunConfigurationEnv: "foo", }, }) platform := d.CloudPlatform() @@ -83,7 +83,7 @@ func TestCloudPlatformCloudRunJobs(t *testing.T) { func TestCloudPlatformCloudFunctions(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ - cloudFunctionTargetEnv: "foo", + cloudFunctionsTargetEnv: "foo", }, }) platform := d.CloudPlatform() diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index 8a4040d61..9d8298ca9 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -21,21 +21,21 @@ import ( const ( // See the Cloud Run env vars: - // https://cloud.google.com/run/docs/reference/container-contract + // https://cloud.google.com/run/docs/container-contract#services-env-vars // and the Cloud Functions env vars: - // https://cloud.google.com/functions/docs/configuring/env-var#runtime_environment_variables_set_automatically - cloudRunConfigEnv = "K_CONFIGURATION" - cloudRunJobsEnv = "CLOUD_RUN_JOB" - cloudFunctionTargetEnv = "FUNCTION_TARGET" - faasServiceEnv = "K_SERVICE" - faasRevisionEnv = "K_REVISION" - jobsRevisionEnv = "CLOUD_RUN_EXECUTION" - jobsTaskIndexEnv = "CLOUD_RUN_TASK_INDEX" - regionMetadataAttr = "instance/region" + // https://cloud.google.com/functions/docs/configuring/env-var#python_37_and_go_111 + cloudFunctionsTargetEnv = "FUNCTION_TARGET" + cloudRunConfigurationEnv = "K_CONFIGURATION" + cloudRunJobsEnv = "CLOUD_RUN_JOB" + faasServiceEnv = "K_SERVICE" + faasRevisionEnv = "K_REVISION" + jobsRevisionEnv = "CLOUD_RUN_EXECUTION" + jobsTaskIndexEnv = "CLOUD_RUN_TASK_INDEX" + regionMetadataAttr = "instance/region" ) func (d *Detector) onCloudRun() bool { - if _, found := d.os.LookupEnv(cloudRunConfigEnv); found { + if _, found := d.os.LookupEnv(cloudRunConfigurationEnv); found { return found } @@ -44,7 +44,7 @@ func (d *Detector) onCloudRun() bool { } func (d *Detector) onCloudFunctions() bool { - _, found := d.os.LookupEnv(cloudFunctionTargetEnv) + _, found := d.os.LookupEnv(cloudFunctionsTargetEnv) return found } From 11dc231456db864fa8c4e939a2a0e63fd8ad0555 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Sun, 11 Jun 2023 16:42:02 +0900 Subject: [PATCH 06/13] detectors/gcp: fix function order to correspond enum order Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index 9d8298ca9..d54de7b88 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -34,6 +34,11 @@ const ( regionMetadataAttr = "instance/region" ) +func (d *Detector) onCloudFunctions() bool { + _, found := d.os.LookupEnv(cloudFunctionsTargetEnv) + return found +} + func (d *Detector) onCloudRun() bool { if _, found := d.os.LookupEnv(cloudRunConfigurationEnv); found { return found @@ -43,11 +48,6 @@ func (d *Detector) onCloudRun() bool { return found } -func (d *Detector) onCloudFunctions() bool { - _, found := d.os.LookupEnv(cloudFunctionsTargetEnv) - return found -} - // FaaSName returns the name of the cloud run, cloud run jobs or cloud functions service. func (d *Detector) FaaSName() (string, error) { if name, found := d.os.LookupEnv(faasServiceEnv); found { From 5e26da3dcce67240914e168b41c0d7d7d36c972b Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Tue, 13 Jun 2023 01:01:39 +0900 Subject: [PATCH 07/13] detectors/gcp: add onCloudRunJob func and CloudRunJob constants Signed-off-by: Koichi Shiraishi --- detectors/gcp/detector.go | 3 +++ detectors/gcp/detector_test.go | 2 +- detectors/gcp/faas.go | 7 ++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/detectors/gcp/detector.go b/detectors/gcp/detector.go index 16bd453c3..d8e6b1484 100644 --- a/detectors/gcp/detector.go +++ b/detectors/gcp/detector.go @@ -36,6 +36,7 @@ const ( GKE GCE CloudRun + CloudRunJob CloudFunctions AppEngineStandard AppEngineFlex @@ -50,6 +51,8 @@ func (d *Detector) CloudPlatform() Platform { return CloudFunctions case d.onCloudRun(): return CloudRun + case d.onCloudRunJob(): + return CloudRunJob case d.onAppEngineStandard(): return AppEngineStandard case d.onAppEngine(): diff --git a/detectors/gcp/detector_test.go b/detectors/gcp/detector_test.go index 1e318e965..a513ba742 100644 --- a/detectors/gcp/detector_test.go +++ b/detectors/gcp/detector_test.go @@ -77,7 +77,7 @@ func TestCloudPlatformCloudRunJobs(t *testing.T) { }, }) platform := d.CloudPlatform() - assert.Equal(t, platform, CloudRun) + assert.Equal(t, platform, CloudRunJob) } func TestCloudPlatformCloudFunctions(t *testing.T) { diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index d54de7b88..48c59cf7a 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -40,10 +40,11 @@ func (d *Detector) onCloudFunctions() bool { } func (d *Detector) onCloudRun() bool { - if _, found := d.os.LookupEnv(cloudRunConfigurationEnv); found { - return found - } + _, found := d.os.LookupEnv(cloudRunConfigurationEnv) + return found +} +func (d *Detector) onCloudRunJob() bool { _, found := d.os.LookupEnv(cloudRunJobsEnv) return found } From 3755862139401eae9fbd7c9ed0ed0c1fbb5736b1 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Tue, 13 Jun 2023 01:07:24 +0900 Subject: [PATCH 08/13] detectors/gcp: add FaaSJobExecution and FaaSJobTaskIndex Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas.go | 24 +++++++++++++++++------- detectors/gcp/faas_test.go | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index 48c59cf7a..70bdcdbb6 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -15,7 +15,6 @@ package gcp import ( - "fmt" "strings" ) @@ -29,7 +28,7 @@ const ( cloudRunJobsEnv = "CLOUD_RUN_JOB" faasServiceEnv = "K_SERVICE" faasRevisionEnv = "K_REVISION" - jobsRevisionEnv = "CLOUD_RUN_EXECUTION" + jobsExecutionEnv = "CLOUD_RUN_EXECUTION" jobsTaskIndexEnv = "CLOUD_RUN_TASK_INDEX" regionMetadataAttr = "instance/region" ) @@ -60,15 +59,26 @@ func (d *Detector) FaaSName() (string, error) { return "", errEnvVarNotFound } -// FaaSVersion returns the revision of the cloud run, cloud run jobs or cloud functions service. +// FaaSVersion returns the revision of the cloud run or cloud functions service. func (d *Detector) FaaSVersion() (string, error) { if version, found := d.os.LookupEnv(faasRevisionEnv); found { return version, nil } - if version, found := d.os.LookupEnv(jobsRevisionEnv); found { - if index, found := d.os.LookupEnv(jobsTaskIndexEnv); found { - return fmt.Sprintf("%s/%s", version, index), nil - } + return "", errEnvVarNotFound +} + +// FaaSJobExecution returns the execution id of the cloud run jobs. +func (d *Detector) FaaSJobExecution() (string, error) { + if version, found := d.os.LookupEnv(jobsExecutionEnv); found { + return version, nil + } + return "", errEnvVarNotFound +} + +// FaaSJobTaskIndex returns the task index for the execution of the cloud run jobs. +func (d *Detector) FaaSJobTaskIndex() (string, error) { + if version, found := d.os.LookupEnv(jobsTaskIndexEnv); found { + return version, nil } return "", errEnvVarNotFound } diff --git a/detectors/gcp/faas_test.go b/detectors/gcp/faas_test.go index 8012ce64c..392f8ee35 100644 --- a/detectors/gcp/faas_test.go +++ b/detectors/gcp/faas_test.go @@ -66,7 +66,7 @@ func TestFaaSVersion(t *testing.T) { func TestFaaSJobsVersion(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ - jobsRevisionEnv: "version-123", + jobsExecutionEnv: "version-123", jobsTaskIndexEnv: "0", }, }) From d6f9c041d80d70180b8a94c1325c9df05152750d Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Tue, 13 Jun 2023 01:12:48 +0900 Subject: [PATCH 09/13] detectors/gcp: fix documentation for service names and reference urls Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index 70bdcdbb6..54448aaaf 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -19,10 +19,14 @@ import ( ) const ( - // See the Cloud Run env vars: + // Cloud Functions env vars: + // https://cloud.google.com/functions/docs/configuring/env-var#newer_runtimes + // + // Cloud Run env vars: // https://cloud.google.com/run/docs/container-contract#services-env-vars - // and the Cloud Functions env vars: - // https://cloud.google.com/functions/docs/configuring/env-var#python_37_and_go_111 + // + // Cloud Run jobs env vars: + // https://cloud.google.com/run/docs/container-contract#jobs-env-vars cloudFunctionsTargetEnv = "FUNCTION_TARGET" cloudRunConfigurationEnv = "K_CONFIGURATION" cloudRunJobsEnv = "CLOUD_RUN_JOB" @@ -48,7 +52,7 @@ func (d *Detector) onCloudRunJob() bool { return found } -// FaaSName returns the name of the cloud run, cloud run jobs or cloud functions service. +// FaaSName returns the name of the Cloud Run, Cloud Run jobs or Cloud Functions service. func (d *Detector) FaaSName() (string, error) { if name, found := d.os.LookupEnv(faasServiceEnv); found { return name, nil @@ -59,7 +63,7 @@ func (d *Detector) FaaSName() (string, error) { return "", errEnvVarNotFound } -// FaaSVersion returns the revision of the cloud run or cloud functions service. +// FaaSVersion returns the revision of the Cloud Run or Cloud Functions service. func (d *Detector) FaaSVersion() (string, error) { if version, found := d.os.LookupEnv(faasRevisionEnv); found { return version, nil @@ -67,7 +71,7 @@ func (d *Detector) FaaSVersion() (string, error) { return "", errEnvVarNotFound } -// FaaSJobExecution returns the execution id of the cloud run jobs. +// FaaSJobExecution returns the execution id of the Cloud Run jobs. func (d *Detector) FaaSJobExecution() (string, error) { if version, found := d.os.LookupEnv(jobsExecutionEnv); found { return version, nil @@ -75,7 +79,7 @@ func (d *Detector) FaaSJobExecution() (string, error) { return "", errEnvVarNotFound } -// FaaSJobTaskIndex returns the task index for the execution of the cloud run jobs. +// FaaSJobTaskIndex returns the task index for the execution of the Cloud Run jobs. func (d *Detector) FaaSJobTaskIndex() (string, error) { if version, found := d.os.LookupEnv(jobsTaskIndexEnv); found { return version, nil @@ -83,13 +87,14 @@ func (d *Detector) FaaSJobTaskIndex() (string, error) { return "", errEnvVarNotFound } -// FaaSID returns the instance id of the cloud run instance or cloud function. +// FaaSID returns the instance id of the Cloud Run or Cloud Function. func (d *Detector) FaaSID() (string, error) { return d.metadata.InstanceID() } -// FaaSCloudRegion detects region from the metadata server. It is in the -// format /projects//regions/. +// FaaSCloudRegion detects region from the metadata server. +// It is in the format /projects//regions/. +// // https://cloud.google.com/run/docs/reference/container-contract#metadata-server func (d *Detector) FaaSCloudRegion() (string, error) { region, err := d.metadata.Get(regionMetadataAttr) From 72a42baa9306da3a0a0bf1c27c2a0cd6393a0dba Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Tue, 13 Jun 2023 03:35:50 +0900 Subject: [PATCH 10/13] detectors/gcp: add testcase for Cloud Run jobs Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas_test.go | 42 +++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/detectors/gcp/faas_test.go b/detectors/gcp/faas_test.go index 392f8ee35..62af47762 100644 --- a/detectors/gcp/faas_test.go +++ b/detectors/gcp/faas_test.go @@ -63,25 +63,53 @@ func TestFaaSVersion(t *testing.T) { assert.Equal(t, version, "version-123") } -func TestFaaSJobsVersion(t *testing.T) { +func TestFaaSVersionErr(t *testing.T) { + d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ + Vars: map[string]string{}, + }) + version, err := d.FaaSVersion() + assert.Error(t, err) + assert.Equal(t, version, "") +} + +func TestFaaSJobExecution(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ jobsExecutionEnv: "version-123", - jobsTaskIndexEnv: "0", }, }) - version, err := d.FaaSVersion() + version, err := d.FaaSJobExecution() assert.NoError(t, err) - assert.Equal(t, version, "version-123/0") + assert.Equal(t, version, "version-123") } -func TestFaaSVersionErr(t *testing.T) { +func TestFaaSJobExecutionErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, }) - version, err := d.FaaSVersion() + name, err := d.FaaSJobExecution() assert.Error(t, err) - assert.Equal(t, version, "") + assert.Equal(t, name, "") +} + +func TestFaaSJobTaskIndex(t *testing.T) { + d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ + Vars: map[string]string{ + jobsTaskIndexEnv: "5", + }, + }) + version, err := d.FaaSJobTaskIndex() + assert.NoError(t, err) + assert.Equal(t, version, "5") +} + +func TestFaaSJobTaskIndexErr(t *testing.T) { + d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ + Vars: map[string]string{}, + }) + name, err := d.FaaSJobTaskIndex() + assert.Error(t, err) + assert.Equal(t, name, "") } func TestFaaSInstanceID(t *testing.T) { From 6442c4546b229323b24ce81c6fed0a311c5521b3 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Tue, 13 Jun 2023 05:07:59 +0900 Subject: [PATCH 11/13] detectors/gcp: fix FaaSID test function name Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/detectors/gcp/faas_test.go b/detectors/gcp/faas_test.go index 62af47762..8ccdf94cc 100644 --- a/detectors/gcp/faas_test.go +++ b/detectors/gcp/faas_test.go @@ -112,7 +112,7 @@ func TestFaaSJobTaskIndexErr(t *testing.T) { assert.Equal(t, name, "") } -func TestFaaSInstanceID(t *testing.T) { +func TestFaaSID(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{ FakeInstanceID: "instance-id-123", }, &FakeOSProvider{}) @@ -121,7 +121,7 @@ func TestFaaSInstanceID(t *testing.T) { assert.Equal(t, instance, "instance-id-123") } -func TestFaaSInstanceIDErr(t *testing.T) { +func TestFaaSIDErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{ Err: fmt.Errorf("fake error"), }, &FakeOSProvider{}) From fff21cbbb77e442639f05fe7c9fb63b208b6d577 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Tue, 13 Jun 2023 11:22:52 +0900 Subject: [PATCH 12/13] detectors/gcp: unifiy Cloud Run jobs related funcs to otel spec Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas.go | 16 ++++++++-------- detectors/gcp/faas_test.go | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index 54448aaaf..0547b6ec7 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -32,8 +32,8 @@ const ( cloudRunJobsEnv = "CLOUD_RUN_JOB" faasServiceEnv = "K_SERVICE" faasRevisionEnv = "K_REVISION" - jobsExecutionEnv = "CLOUD_RUN_EXECUTION" - jobsTaskIndexEnv = "CLOUD_RUN_TASK_INDEX" + cloudRunJobExecutionEnv = "CLOUD_RUN_EXECUTION" + cloudRunJobTaskIndexEnv = "CLOUD_RUN_TASK_INDEX" regionMetadataAttr = "instance/region" ) @@ -71,17 +71,17 @@ func (d *Detector) FaaSVersion() (string, error) { return "", errEnvVarNotFound } -// FaaSJobExecution returns the execution id of the Cloud Run jobs. -func (d *Detector) FaaSJobExecution() (string, error) { - if version, found := d.os.LookupEnv(jobsExecutionEnv); found { +// CloudRunJobbExecution returns the execution id of the Cloud Run jobs. +func (d *Detector) CloudRunJobbExecution() (string, error) { + if version, found := d.os.LookupEnv(cloudRunJobExecutionEnv); found { return version, nil } return "", errEnvVarNotFound } -// FaaSJobTaskIndex returns the task index for the execution of the Cloud Run jobs. -func (d *Detector) FaaSJobTaskIndex() (string, error) { - if version, found := d.os.LookupEnv(jobsTaskIndexEnv); found { +// CloudRunJobTaskIndex returns the task index for the execution of the Cloud Run jobs. +func (d *Detector) CloudRunJobTaskIndex() (string, error) { + if version, found := d.os.LookupEnv(cloudRunJobTaskIndexEnv); found { return version, nil } return "", errEnvVarNotFound diff --git a/detectors/gcp/faas_test.go b/detectors/gcp/faas_test.go index 8ccdf94cc..445d36a0c 100644 --- a/detectors/gcp/faas_test.go +++ b/detectors/gcp/faas_test.go @@ -75,10 +75,10 @@ func TestFaaSVersionErr(t *testing.T) { func TestFaaSJobExecution(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ - jobsExecutionEnv: "version-123", + cloudRunJobExecutionEnv: "version-123", }, }) - version, err := d.FaaSJobExecution() + version, err := d.CloudRunJobbExecution() assert.NoError(t, err) assert.Equal(t, version, "version-123") } @@ -87,7 +87,7 @@ func TestFaaSJobExecutionErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, }) - name, err := d.FaaSJobExecution() + name, err := d.CloudRunJobbExecution() assert.Error(t, err) assert.Equal(t, name, "") } @@ -95,10 +95,10 @@ func TestFaaSJobExecutionErr(t *testing.T) { func TestFaaSJobTaskIndex(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{ - jobsTaskIndexEnv: "5", + cloudRunJobTaskIndexEnv: "5", }, }) - version, err := d.FaaSJobTaskIndex() + version, err := d.CloudRunJobTaskIndex() assert.NoError(t, err) assert.Equal(t, version, "5") } @@ -107,7 +107,7 @@ func TestFaaSJobTaskIndexErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, }) - name, err := d.FaaSJobTaskIndex() + name, err := d.CloudRunJobTaskIndex() assert.Error(t, err) assert.Equal(t, name, "") } From d0c31ded9d62616dd799b7772b887df794b84938 Mon Sep 17 00:00:00 2001 From: Koichi Shiraishi Date: Thu, 15 Jun 2023 16:12:40 +0900 Subject: [PATCH 13/13] detectors/gcp: fix typo of CloudRunJobExecution Signed-off-by: Koichi Shiraishi --- detectors/gcp/faas.go | 4 ++-- detectors/gcp/faas_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/detectors/gcp/faas.go b/detectors/gcp/faas.go index 0547b6ec7..5e212e531 100644 --- a/detectors/gcp/faas.go +++ b/detectors/gcp/faas.go @@ -71,8 +71,8 @@ func (d *Detector) FaaSVersion() (string, error) { return "", errEnvVarNotFound } -// CloudRunJobbExecution returns the execution id of the Cloud Run jobs. -func (d *Detector) CloudRunJobbExecution() (string, error) { +// CloudRunJobExecution returns the execution id of the Cloud Run jobs. +func (d *Detector) CloudRunJobExecution() (string, error) { if version, found := d.os.LookupEnv(cloudRunJobExecutionEnv); found { return version, nil } diff --git a/detectors/gcp/faas_test.go b/detectors/gcp/faas_test.go index 445d36a0c..26e1e6cd7 100644 --- a/detectors/gcp/faas_test.go +++ b/detectors/gcp/faas_test.go @@ -78,7 +78,7 @@ func TestFaaSJobExecution(t *testing.T) { cloudRunJobExecutionEnv: "version-123", }, }) - version, err := d.CloudRunJobbExecution() + version, err := d.CloudRunJobExecution() assert.NoError(t, err) assert.Equal(t, version, "version-123") } @@ -87,7 +87,7 @@ func TestFaaSJobExecutionErr(t *testing.T) { d := NewTestDetector(&FakeMetadataProvider{}, &FakeOSProvider{ Vars: map[string]string{}, }) - name, err := d.CloudRunJobbExecution() + name, err := d.CloudRunJobExecution() assert.Error(t, err) assert.Equal(t, name, "") }