From 36aaf4ca83b0fd3e5a083c8134b23035d78e9348 Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Fri, 17 May 2024 12:25:22 -0400 Subject: [PATCH 01/12] Propose semantic conventions for GCP client library identification/attribution. --- model/trace/instrumentation/gcp-client.yml | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 model/trace/instrumentation/gcp-client.yml diff --git a/model/trace/instrumentation/gcp-client.yml b/model/trace/instrumentation/gcp-client.yml new file mode 100644 index 0000000000..7d02bda14a --- /dev/null +++ b/model/trace/instrumentation/gcp-client.yml @@ -0,0 +1,43 @@ +groups: + - id: gcp.client.scope + type: scope + brief: > + The `gcp.client` conventions are intended to be used by Google Cloud + client libraries (e.g. https://github.com/googleapis/* and other + Google-owned/Google-provided client libraries for Google Cloud) to + identify such clients and to track their operations and performance. + prefix: gcp.client + stability: experimental + attributes: + - id: gcp.client.service + type: string + stability: experimental + requirement_level: required + brief: > + Short name of the GCP service for which the library is a client. + All variants of the client across programming languages should use an + identical value for this property. The short name should be intuitive + and aligned with either the name of the client (e.g. X for client + library packages named `google-cloud-X`) or the name of the API + subdomain (e.g. X for APIs hosted at `X.googleapis.com`). + examples: ['cloudsql', 'datastore', 'spanner', 'firestore'] + - id: gcp.client.repo + type: string + stability: experimental + brief: > + Identifies the repository where the client library source comes from. + The prefix `github.com/` should be not be included in the name. If + (`gcp.client.service`, `telemetry.sdk.language`) do not uniquely + identify the client such as when multiple client variants exist + for the same service in a given programming language, this field + should be supplied in order to disambiguate between clients. + - id: gcp.client.artifact + type: string + stability: experimental + brief: > + Identifies the build target or deployment artifact within the + repository. In cases where multiple variants of the client exist + within the same repository, `gcp.client.repo` may not be sufficient + to disambiguate between client variants. For those cases, this + attribute may be used as an alternative approach to disambiguation. + \ No newline at end of file From 0ec889dccbe2ccf5b1afa8767137dd83eefe1249 Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Fri, 17 May 2024 12:38:49 -0400 Subject: [PATCH 02/12] Added changelog entry for the enhancement. --- .chloggen/gcp-client-libraries.yaml | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 .chloggen/gcp-client-libraries.yaml diff --git a/.chloggen/gcp-client-libraries.yaml b/.chloggen/gcp-client-libraries.yaml new file mode 100755 index 0000000000..ab59dde369 --- /dev/null +++ b/.chloggen/gcp-client-libraries.yaml @@ -0,0 +1,3 @@ +change_type: 'enhancement' +component: gcp +note: Introduced `gcp.client.*` scope attributes to identify GCP client libraries. From f700981762d30f7c6c20dff2ed7326ade16be9bd Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Fri, 17 May 2024 12:43:22 -0400 Subject: [PATCH 03/12] Add pull request reference. --- .chloggen/gcp-client-libraries.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.chloggen/gcp-client-libraries.yaml b/.chloggen/gcp-client-libraries.yaml index ab59dde369..aa2c46fa8f 100755 --- a/.chloggen/gcp-client-libraries.yaml +++ b/.chloggen/gcp-client-libraries.yaml @@ -1,3 +1,4 @@ change_type: 'enhancement' component: gcp note: Introduced `gcp.client.*` scope attributes to identify GCP client libraries. +issues: [ 1047 ] From 042da910576675b53d0e3fbad4c873b60679eb9a Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Fri, 24 May 2024 16:28:57 -0400 Subject: [PATCH 04/12] Generalize the name for 'repo' and 'asset'. --- .chloggen/gcp-client-libraries.yaml | 4 +- model/registry/gcp.yaml | 24 +++++++++ model/registry/instrumentation.yaml | 24 +++++++++ model/trace/instrumentation/gcp-client.yml | 50 +++---------------- .../trace/instrumentation/instrumentation.yml | 13 +++++ 5 files changed, 71 insertions(+), 44 deletions(-) create mode 100644 model/registry/instrumentation.yaml create mode 100644 model/trace/instrumentation/instrumentation.yml diff --git a/.chloggen/gcp-client-libraries.yaml b/.chloggen/gcp-client-libraries.yaml index aa2c46fa8f..693031422d 100755 --- a/.chloggen/gcp-client-libraries.yaml +++ b/.chloggen/gcp-client-libraries.yaml @@ -1,4 +1,4 @@ change_type: 'enhancement' -component: gcp -note: Introduced `gcp.client.*` scope attributes to identify GCP client libraries. +component: instrumentation, gcp +note: Introduced `gcp.client.service` and 'instrumentation.source.*' attributes. issues: [ 1047 ] diff --git a/model/registry/gcp.yaml b/model/registry/gcp.yaml index 3b00f7040e..f63f1d5dc8 100644 --- a/model/registry/gcp.yaml +++ b/model/registry/gcp.yaml @@ -1,4 +1,28 @@ groups: + - id: registry.gcp + prefix: gcp + type: attribute_group + brief: Attributes for Google Cloud + - id: registry.gcp.client + prefix: gcp.client + type: attribute_group + brief: > + Attributes for Google Cloud client libraries. + attributes: + - id: gcp.client.service + type: string + stability: experimental + brief: Identifies official Google Cloud client libraries. + note: > + Intended to be a stable identifier for Google Cloud client libraries + that is uniform across implementation languages. The value should be + derived from the canonical service domain for the service; for + example, 'foo.googleapis.com' should result in a value of 'foo'. + This attribute should be accompanied by 'instrumentation.source.repo' + and/or 'instrumentation.source.target' when the combination of + 'gcp.client.service' and 'telemetry.sdk.language' is insufficient + to uniquely identify the particular client library. + examples: ['appengine', 'run', 'firestore', 'alloydb', 'spanner'] - id: registry.gcp.cloud_run prefix: gcp.cloud_run type: attribute_group diff --git a/model/registry/instrumentation.yaml b/model/registry/instrumentation.yaml new file mode 100644 index 0000000000..d5e507a9e7 --- /dev/null +++ b/model/registry/instrumentation.yaml @@ -0,0 +1,24 @@ +groups: +- id: registry.instrumentation + prefix: instrumentation + type: attribute_group + brief: > + Describes properties about the library that is being instrumented or that + is responsible for performing the instrumentation. + attributes: + - id: instrumentation.source.repo + type: string + stability: experimental + brief: The repository associated with the InstrumentationScope. + examples: [github.com/organization/repo, gitlab.com/group/repo] + - id: instrumentation.source.target + type: string + stability: experimental + brief: The build target associated with the InstrumentationScope. + examples: ['//in/bazel/path/to/my/folder:target', 'inGradleYourLib'] + note: > + Particularly useful if the InstrumentationScope library cannot be + triangulated from the name and `instrumenation.source.repo` alone. + If multiple build targets produce the same result, choose the + narrowest possible target (e.g. for Make: "mylib" rather than "all"; + for Bazel: "//path/to/specific:target", not "//path/..."; etc.). diff --git a/model/trace/instrumentation/gcp-client.yml b/model/trace/instrumentation/gcp-client.yml index 7d02bda14a..a748e1b9a5 100644 --- a/model/trace/instrumentation/gcp-client.yml +++ b/model/trace/instrumentation/gcp-client.yml @@ -1,43 +1,9 @@ groups: - - id: gcp.client.scope - type: scope - brief: > - The `gcp.client` conventions are intended to be used by Google Cloud - client libraries (e.g. https://github.com/googleapis/* and other - Google-owned/Google-provided client libraries for Google Cloud) to - identify such clients and to track their operations and performance. - prefix: gcp.client - stability: experimental - attributes: - - id: gcp.client.service - type: string - stability: experimental - requirement_level: required - brief: > - Short name of the GCP service for which the library is a client. - All variants of the client across programming languages should use an - identical value for this property. The short name should be intuitive - and aligned with either the name of the client (e.g. X for client - library packages named `google-cloud-X`) or the name of the API - subdomain (e.g. X for APIs hosted at `X.googleapis.com`). - examples: ['cloudsql', 'datastore', 'spanner', 'firestore'] - - id: gcp.client.repo - type: string - stability: experimental - brief: > - Identifies the repository where the client library source comes from. - The prefix `github.com/` should be not be included in the name. If - (`gcp.client.service`, `telemetry.sdk.language`) do not uniquely - identify the client such as when multiple client variants exist - for the same service in a given programming language, this field - should be supplied in order to disambiguate between clients. - - id: gcp.client.artifact - type: string - stability: experimental - brief: > - Identifies the build target or deployment artifact within the - repository. In cases where multiple variants of the client exist - within the same repository, `gcp.client.repo` may not be sufficient - to disambiguate between client variants. For those cases, this - attribute may be used as an alternative approach to disambiguation. - \ No newline at end of file +- id: gcp.client.scope + type: scope + brief: Conventions for official Google Cloud client libraries. + prefix: gcp.client + stability: experimental + attributes: + - ref: gcp.client.service + requirement_level: opt_in diff --git a/model/trace/instrumentation/instrumentation.yml b/model/trace/instrumentation/instrumentation.yml new file mode 100644 index 0000000000..a9aa24e9b5 --- /dev/null +++ b/model/trace/instrumentation/instrumentation.yml @@ -0,0 +1,13 @@ +groups: +- id: instrumentation.scope + type: scope + brief: > + The `instrumentation` conventions are intended to provide common + mechanisms for triangulating and identifying instrumentation libraries. + prefix: instrumentation + stability: experimental + attributes: + - ref: instrumentation.source.repo + requirement_level: opt_in + - ref: instrumentation.source.target + requirement_level: opt_in From 0fbdce0b43f4e17961ac0f8a90382ca8756447d3 Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Fri, 24 May 2024 16:31:30 -0400 Subject: [PATCH 05/12] Remove redundant prefix in the registry, fixing the attribute generation. --- docs/attributes-registry/README.md | 1 + docs/attributes-registry/gcp.md | 19 +++++++++++++++++++ docs/attributes-registry/instrumentation.md | 18 ++++++++++++++++++ model/registry/gcp.yaml | 2 +- model/registry/instrumentation.yaml | 4 ++-- 5 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 docs/attributes-registry/instrumentation.md diff --git a/docs/attributes-registry/README.md b/docs/attributes-registry/README.md index a9253c650b..8a37ff106b 100644 --- a/docs/attributes-registry/README.md +++ b/docs/attributes-registry/README.md @@ -60,6 +60,7 @@ Currently, the following namespaces exist: - [Heroku](heroku.md) - [Host](host.md) - [HTTP](http.md) +- [Instrumentation](instrumentation.md) - [iOS](ios.md) - [JVM](jvm.md) - [K8s](k8s.md) diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md index 0a8ba6319c..3921f3294e 100644 --- a/docs/attributes-registry/gcp.md +++ b/docs/attributes-registry/gcp.md @@ -6,9 +6,28 @@ # GCP +- [Gcp](#gcp-attributes) +- [Gcp Client](#gcp-client-attributes) - [Gcp Cloud Run](#gcp-cloud-run-attributes) - [Gcp Gce](#gcp-gce-attributes) +## GCP Attributes + +Attributes for Google Cloud + +| Attribute | Type | Description | Examples | Stability | +| --------- | ---- | ----------- | -------- | --------- | + +## GCP Client Attributes + +Attributes for Google Cloud client libraries. + +| Attribute | Type | Description | Examples | Stability | +| -------------------- | ------ | ------------------------------------------------------ | ----------------------------------------------------- | ---------------------------------------------------------------- | +| `gcp.client.service` | string | Identifies official Google Cloud client libraries. [1] | `appengine`; `run`; `firestore`; `alloydb`; `spanner` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | + +**[1]:** Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'. This attribute should be accompanied by 'instrumentation.source.repo' and/or 'instrumentation.source.target' when the combination of 'gcp.client.service' and 'telemetry.sdk.language' is insufficient to uniquely identify the particular client library. + ## GCP Cloud Run Attributes This document defines attributes for Google Cloud Run. diff --git a/docs/attributes-registry/instrumentation.md b/docs/attributes-registry/instrumentation.md new file mode 100644 index 0000000000..1636cc4343 --- /dev/null +++ b/docs/attributes-registry/instrumentation.md @@ -0,0 +1,18 @@ + + + + + +# Instrumentation + +## Instrumentation Attributes + +Describes properties about the library that is being instrumented or that is responsible for performing the instrumentation. + +| Attribute | Type | Description | Examples | Stability | +| ------------------------------- | ------ | -------------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------- | +| `instrumentation.source.repo` | string | The repository associated with the InstrumentationScope. | `github.com/organization/repo`; `gitlab.com/group/repo` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `instrumentation.source.target` | string | The build target associated with the InstrumentationScope. [1] | `//in/bazel/path/to/my/folder:target`; `inGradleYourLib` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | + +**[1]:** Particularly useful if the InstrumentationScope library cannot be triangulated from the name and `instrumenation.source.repo` alone. If multiple build targets produce the same result, choose the narrowest possible target (e.g. for Make: "mylib" rather than "all"; for Bazel: "//path/to/specific:target", not "//path/..."; etc.). diff --git a/model/registry/gcp.yaml b/model/registry/gcp.yaml index f63f1d5dc8..a61f630b28 100644 --- a/model/registry/gcp.yaml +++ b/model/registry/gcp.yaml @@ -9,7 +9,7 @@ groups: brief: > Attributes for Google Cloud client libraries. attributes: - - id: gcp.client.service + - id: service type: string stability: experimental brief: Identifies official Google Cloud client libraries. diff --git a/model/registry/instrumentation.yaml b/model/registry/instrumentation.yaml index d5e507a9e7..23962a1e1b 100644 --- a/model/registry/instrumentation.yaml +++ b/model/registry/instrumentation.yaml @@ -6,12 +6,12 @@ groups: Describes properties about the library that is being instrumented or that is responsible for performing the instrumentation. attributes: - - id: instrumentation.source.repo + - id: source.repo type: string stability: experimental brief: The repository associated with the InstrumentationScope. examples: [github.com/organization/repo, gitlab.com/group/repo] - - id: instrumentation.source.target + - id: source.target type: string stability: experimental brief: The build target associated with the InstrumentationScope. From 2581647a5a3f54bae4732a5827aff37987d6f1d4 Mon Sep 17 00:00:00 2001 From: Michael Safyan Date: Tue, 28 May 2024 18:25:20 -0500 Subject: [PATCH 06/12] Apply suggestion requested in pull request. https://github.com/open-telemetry/semantic-conventions/pull/1047#discussion_r1617738719 Co-authored-by: Liudmila Molkova --- model/registry/gcp.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/registry/gcp.yaml b/model/registry/gcp.yaml index a61f630b28..73df7e1236 100644 --- a/model/registry/gcp.yaml +++ b/model/registry/gcp.yaml @@ -12,7 +12,7 @@ groups: - id: service type: string stability: experimental - brief: Identifies official Google Cloud client libraries. + brief: Identifies the Google Cloud service for which the official client library is intended. note: > Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be From 437b3e42d645661859f8d037e5f6afa8244020ad Mon Sep 17 00:00:00 2001 From: Michael Safyan Date: Tue, 28 May 2024 18:26:11 -0500 Subject: [PATCH 07/12] Apply suggestion requested in pull request. https://github.com/open-telemetry/semantic-conventions/pull/1047#discussion_r1617741797 Co-authored-by: Liudmila Molkova --- model/registry/instrumentation.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/model/registry/instrumentation.yaml b/model/registry/instrumentation.yaml index 23962a1e1b..2f4c4a50b9 100644 --- a/model/registry/instrumentation.yaml +++ b/model/registry/instrumentation.yaml @@ -3,8 +3,7 @@ groups: prefix: instrumentation type: attribute_group brief: > - Describes properties about the library that is being instrumented or that - is responsible for performing the instrumentation. + Describes the instrumentation library - the original library if it's instrumented natively or the instrumentation library. attributes: - id: source.repo type: string From d65aa65729eddf27a44a7fdc496f186f15dc3e42 Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Wed, 29 May 2024 17:17:24 -0400 Subject: [PATCH 08/12] Remove non-GCP attributes from the scope. --- .chloggen/gcp-client-libraries.yaml | 4 ++-- model/registry/instrumentation.yaml | 23 ------------------- model/trace/instrumentation/gcp-client.yml | 5 +++- .../trace/instrumentation/instrumentation.yml | 13 ----------- 4 files changed, 6 insertions(+), 39 deletions(-) delete mode 100644 model/registry/instrumentation.yaml delete mode 100644 model/trace/instrumentation/instrumentation.yml diff --git a/.chloggen/gcp-client-libraries.yaml b/.chloggen/gcp-client-libraries.yaml index 693031422d..0ae23ba749 100755 --- a/.chloggen/gcp-client-libraries.yaml +++ b/.chloggen/gcp-client-libraries.yaml @@ -1,4 +1,4 @@ change_type: 'enhancement' -component: instrumentation, gcp -note: Introduced `gcp.client.service` and 'instrumentation.source.*' attributes. +component: gcp +note: Introduces `gcp.client.service` scope attribute. issues: [ 1047 ] diff --git a/model/registry/instrumentation.yaml b/model/registry/instrumentation.yaml deleted file mode 100644 index 2f4c4a50b9..0000000000 --- a/model/registry/instrumentation.yaml +++ /dev/null @@ -1,23 +0,0 @@ -groups: -- id: registry.instrumentation - prefix: instrumentation - type: attribute_group - brief: > - Describes the instrumentation library - the original library if it's instrumented natively or the instrumentation library. - attributes: - - id: source.repo - type: string - stability: experimental - brief: The repository associated with the InstrumentationScope. - examples: [github.com/organization/repo, gitlab.com/group/repo] - - id: source.target - type: string - stability: experimental - brief: The build target associated with the InstrumentationScope. - examples: ['//in/bazel/path/to/my/folder:target', 'inGradleYourLib'] - note: > - Particularly useful if the InstrumentationScope library cannot be - triangulated from the name and `instrumenation.source.repo` alone. - If multiple build targets produce the same result, choose the - narrowest possible target (e.g. for Make: "mylib" rather than "all"; - for Bazel: "//path/to/specific:target", not "//path/..."; etc.). diff --git a/model/trace/instrumentation/gcp-client.yml b/model/trace/instrumentation/gcp-client.yml index a748e1b9a5..1c6cc2480e 100644 --- a/model/trace/instrumentation/gcp-client.yml +++ b/model/trace/instrumentation/gcp-client.yml @@ -6,4 +6,7 @@ groups: stability: experimental attributes: - ref: gcp.client.service - requirement_level: opt_in + requirement_level: + conditionally_required: + Required if and only if the instrumentation library is an official, + Google-provided GCP and/or Firebase client library. diff --git a/model/trace/instrumentation/instrumentation.yml b/model/trace/instrumentation/instrumentation.yml deleted file mode 100644 index a9aa24e9b5..0000000000 --- a/model/trace/instrumentation/instrumentation.yml +++ /dev/null @@ -1,13 +0,0 @@ -groups: -- id: instrumentation.scope - type: scope - brief: > - The `instrumentation` conventions are intended to provide common - mechanisms for triangulating and identifying instrumentation libraries. - prefix: instrumentation - stability: experimental - attributes: - - ref: instrumentation.source.repo - requirement_level: opt_in - - ref: instrumentation.source.target - requirement_level: opt_in From b48c6412f8e273cd20b9e699cfaffa248ab49dd3 Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Thu, 30 May 2024 13:40:58 -0400 Subject: [PATCH 09/12] Regenerate the documentation. --- docs/attributes-registry/README.md | 1 - docs/attributes-registry/gcp.md | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/attributes-registry/README.md b/docs/attributes-registry/README.md index 31b7219c70..2aa1b98447 100644 --- a/docs/attributes-registry/README.md +++ b/docs/attributes-registry/README.md @@ -60,7 +60,6 @@ Currently, the following namespaces exist: - [Heroku](heroku.md) - [Host](host.md) - [HTTP](http.md) -- [Instrumentation](instrumentation.md) - [iOS](ios.md) - [JVM](jvm.md) - [K8s](k8s.md) diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md index 3921f3294e..de9b96b4fc 100644 --- a/docs/attributes-registry/gcp.md +++ b/docs/attributes-registry/gcp.md @@ -22,9 +22,9 @@ Attributes for Google Cloud Attributes for Google Cloud client libraries. -| Attribute | Type | Description | Examples | Stability | -| -------------------- | ------ | ------------------------------------------------------ | ----------------------------------------------------- | ---------------------------------------------------------------- | -| `gcp.client.service` | string | Identifies official Google Cloud client libraries. [1] | `appengine`; `run`; `firestore`; `alloydb`; `spanner` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| Attribute | Type | Description | Examples | Stability | +| -------------------- | ------ | ------------------------------------------------------------------------------------------ | ----------------------------------------------------- | ---------------------------------------------------------------- | +| `gcp.client.service` | string | Identifies the Google Cloud service for which the official client library is intended. [1] | `appengine`; `run`; `firestore`; `alloydb`; `spanner` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | **[1]:** Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'. This attribute should be accompanied by 'instrumentation.source.repo' and/or 'instrumentation.source.target' when the combination of 'gcp.client.service' and 'telemetry.sdk.language' is insufficient to uniquely identify the particular client library. From 281a3af0b6a2478b637152d7f527f05587d1022f Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Thu, 30 May 2024 13:41:49 -0400 Subject: [PATCH 10/12] Remove docs that were generated by files that have since been deleted. --- docs/attributes-registry/instrumentation.md | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 docs/attributes-registry/instrumentation.md diff --git a/docs/attributes-registry/instrumentation.md b/docs/attributes-registry/instrumentation.md deleted file mode 100644 index 1636cc4343..0000000000 --- a/docs/attributes-registry/instrumentation.md +++ /dev/null @@ -1,18 +0,0 @@ - - - - - -# Instrumentation - -## Instrumentation Attributes - -Describes properties about the library that is being instrumented or that is responsible for performing the instrumentation. - -| Attribute | Type | Description | Examples | Stability | -| ------------------------------- | ------ | -------------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------- | -| `instrumentation.source.repo` | string | The repository associated with the InstrumentationScope. | `github.com/organization/repo`; `gitlab.com/group/repo` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `instrumentation.source.target` | string | The build target associated with the InstrumentationScope. [1] | `//in/bazel/path/to/my/folder:target`; `inGradleYourLib` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | - -**[1]:** Particularly useful if the InstrumentationScope library cannot be triangulated from the name and `instrumenation.source.repo` alone. If multiple build targets produce the same result, choose the narrowest possible target (e.g. for Make: "mylib" rather than "all"; for Bazel: "//path/to/specific:target", not "//path/..."; etc.). From 4c3fb778c1cbf47d0fdb728f6e1fb1cf98ffc300 Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Tue, 4 Jun 2024 17:10:53 -0400 Subject: [PATCH 11/12] Apply requested changes in pull request 1047. --- docs/attributes-registry/gcp.md | 2 +- model/registry/gcp.yaml | 4 ---- model/trace/instrumentation/gcp-client.yml | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/attributes-registry/gcp.md b/docs/attributes-registry/gcp.md index de9b96b4fc..cade703150 100644 --- a/docs/attributes-registry/gcp.md +++ b/docs/attributes-registry/gcp.md @@ -26,7 +26,7 @@ Attributes for Google Cloud client libraries. | -------------------- | ------ | ------------------------------------------------------------------------------------------ | ----------------------------------------------------- | ---------------------------------------------------------------- | | `gcp.client.service` | string | Identifies the Google Cloud service for which the official client library is intended. [1] | `appengine`; `run`; `firestore`; `alloydb`; `spanner` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -**[1]:** Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'. This attribute should be accompanied by 'instrumentation.source.repo' and/or 'instrumentation.source.target' when the combination of 'gcp.client.service' and 'telemetry.sdk.language' is insufficient to uniquely identify the particular client library. +**[1]:** Intended to be a stable identifier for Google Cloud client libraries that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'. ## GCP Cloud Run Attributes diff --git a/model/registry/gcp.yaml b/model/registry/gcp.yaml index 73df7e1236..307713df87 100644 --- a/model/registry/gcp.yaml +++ b/model/registry/gcp.yaml @@ -18,10 +18,6 @@ groups: that is uniform across implementation languages. The value should be derived from the canonical service domain for the service; for example, 'foo.googleapis.com' should result in a value of 'foo'. - This attribute should be accompanied by 'instrumentation.source.repo' - and/or 'instrumentation.source.target' when the combination of - 'gcp.client.service' and 'telemetry.sdk.language' is insufficient - to uniquely identify the particular client library. examples: ['appengine', 'run', 'firestore', 'alloydb', 'spanner'] - id: registry.gcp.cloud_run prefix: gcp.cloud_run diff --git a/model/trace/instrumentation/gcp-client.yml b/model/trace/instrumentation/gcp-client.yml index 1c6cc2480e..1bbef8dd86 100644 --- a/model/trace/instrumentation/gcp-client.yml +++ b/model/trace/instrumentation/gcp-client.yml @@ -1,6 +1,6 @@ groups: - id: gcp.client.scope - type: scope + type: attribute_group brief: Conventions for official Google Cloud client libraries. prefix: gcp.client stability: experimental From bd6823fdfd4949083c2893612d71e654bbfce0d0 Mon Sep 17 00:00:00 2001 From: Michael Aaron Safyan Date: Tue, 4 Jun 2024 17:13:01 -0400 Subject: [PATCH 12/12] Remove '.scope' from the ID given that it is no longer of scope type. --- model/trace/instrumentation/gcp-client.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/trace/instrumentation/gcp-client.yml b/model/trace/instrumentation/gcp-client.yml index 1bbef8dd86..08a6ac311e 100644 --- a/model/trace/instrumentation/gcp-client.yml +++ b/model/trace/instrumentation/gcp-client.yml @@ -1,5 +1,5 @@ groups: -- id: gcp.client.scope +- id: gcp.client.attributes type: attribute_group brief: Conventions for official Google Cloud client libraries. prefix: gcp.client