From 4d9dea3579c806239725e6e687fd346443113aad Mon Sep 17 00:00:00 2001 From: Harold Dost Date: Tue, 17 Sep 2024 13:51:17 +0200 Subject: [PATCH 1/3] Add a datacenter resource. The purpose of this is to allow for people running in a hybrid environment. --- .chloggen/adding-datacenter-convention.yaml | 24 +++++++++ docs/attributes-registry/README.md | 1 + docs/attributes-registry/datacenter.md | 24 +++++++++ model/datacenter/registry.yaml | 58 +++++++++++++++++++++ model/datacenter/resources.yaml | 15 ++++++ 5 files changed, 122 insertions(+) create mode 100644 .chloggen/adding-datacenter-convention.yaml create mode 100644 docs/attributes-registry/datacenter.md create mode 100644 model/datacenter/registry.yaml create mode 100644 model/datacenter/resources.yaml diff --git a/.chloggen/adding-datacenter-convention.yaml b/.chloggen/adding-datacenter-convention.yaml new file mode 100644 index 0000000000..1cf1558ae1 --- /dev/null +++ b/.chloggen/adding-datacenter-convention.yaml @@ -0,0 +1,24 @@ +# Use this changelog template to create an entry for release notes. +# +# If your change doesn't affect end users you should instead start +# your pull request title with [chore] or use the "Skip Changelog" label. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: new_component + +# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db) +component: dc + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Allow users to categorize datacenter information. + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +# The values here must be integers. +issues: [1409] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: | + Many companies run in a Hybrid environment, and being able to see information when managing fleets + of servers is valuable as this allows for standardize monitoring of server level monitoring. diff --git a/docs/attributes-registry/README.md b/docs/attributes-registry/README.md index 35356a67cb..39e6ec2236 100644 --- a/docs/attributes-registry/README.md +++ b/docs/attributes-registry/README.md @@ -45,6 +45,7 @@ Currently, the following namespaces exist: - [Code](code.md) - [Container](container.md) - [CPU](cpu.md) +- [Datacenter](datacenter.md) - [Db](db.md) - [Deployment](deployment.md) - [Destination](destination.md) diff --git a/docs/attributes-registry/datacenter.md b/docs/attributes-registry/datacenter.md new file mode 100644 index 0000000000..67f7fd0677 --- /dev/null +++ b/docs/attributes-registry/datacenter.md @@ -0,0 +1,24 @@ + + + + + +# Datacenter + +## Datacenter Attributes + +Generic DataCenter infrastructure tagging. + +| Attribute | Type | Description | Examples | Stability | +| ------------------ | ------ | ---------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------- | +| `dc.cage` | string | Name of the cage | `cage-1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.chassis` | string | Name of the chassis the server lives in. | `pod-4` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.device.type` | string | Type of device used. | `server`; `chassis`; `network`; `pdu`; `switch`; `patch-panel` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.name` | string | Name of datacenter. | `dc-name` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.pod` | string | Name of the pod | `pod-4` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.provider.name` | string | Name of the datacenter provider | `aws`; `azure`; `gcp`; `corp` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.provider.type` | string | Type of datacenter | `cloud`; `colocation`; `internal` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.rack` | string | Name of the rack. | `rack-7` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.site` | string | Name of the datacenter site | `site-1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.suite` | string | Name of the datacenter suite | `suite-5` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | diff --git a/model/datacenter/registry.yaml b/model/datacenter/registry.yaml new file mode 100644 index 0000000000..6db675c1d3 --- /dev/null +++ b/model/datacenter/registry.yaml @@ -0,0 +1,58 @@ +groups: + - id: registry.datacenter + stability: + type: attribute_group + display_name: Datacenter Attributes + brief: > + Generic DataCenter infrastructure tagging. + attributes: + - id: dc.name + type: string + stability: experimental + brief: 'Name of datacenter.' + examples: ['dc-name'] + - id: dc.provider.name + type: string + stability: experimental + brief: 'Name of the datacenter provider' + examples: ['aws', 'azure', 'gcp', 'corp'] + - id: dc.provider.type + type: string + stability: experimental + brief: 'Type of datacenter' + examples: ['cloud', 'colocation', 'internal'] + - id: dc.device.type + type: string + stability: experimental + brief: 'Type of device used.' + examples: ['server', 'chassis', 'network', 'pdu', 'switch', 'patch-panel'] + - id: dc.suite + type: string + stability: experimental + brief: 'Name of the datacenter suite' + examples: ['suite-5'] + - id: dc.site + type: string + stability: experimental + brief: 'Name of the datacenter site' + examples: ['site-1'] + - id: dc.cage + type: string + stability: experimental + brief: 'Name of the cage' + examples: ['cage-1'] + - id: dc.pod + type: string + stability: experimental + brief: 'Name of the pod' + examples: ['pod-4'] + - id: dc.chassis + type: string + stability: experimental + brief: 'Name of the chassis the server lives in.' + examples: ['pod-4'] + - id: dc.rack + type: string + stability: experimental + brief: 'Name of the rack.' + examples: ['rack-7'] diff --git a/model/datacenter/resources.yaml b/model/datacenter/resources.yaml new file mode 100644 index 0000000000..744a9a88c5 --- /dev/null +++ b/model/datacenter/resources.yaml @@ -0,0 +1,15 @@ +groups: + - id: datacenter + stability: experimental + type: resource + brief: > + Generic DataCenter infrastructure tagging. + attributes: + - ref: dc.name + - ref: dc.provider.name + - ref: dc.provider.type + - ref: dc.suite + - ref: dc.site + - ref: dc.cage + - ref: dc.pod + - ref: dc.rack From cfaadd3705f2e23f4eadac763e27d8215e206805 Mon Sep 17 00:00:00 2001 From: Harold Dost Date: Sun, 22 Sep 2024 18:17:32 +0200 Subject: [PATCH 2/3] fixups: Add Experimental flag and missing name. --- .github/ISSUE_TEMPLATE/bug_report.yaml | 1 + .github/ISSUE_TEMPLATE/change_proposal.yaml | 1 + .github/ISSUE_TEMPLATE/new-conventions.yaml | 1 + docs/attributes-registry/README.md | 2 +- docs/attributes-registry/datacenter.md | 24 -------------- docs/attributes-registry/dc.md | 35 +++++++++++++++++++++ model/{datacenter => dc}/registry.yaml | 31 +++++++++++------- model/{datacenter => dc}/resources.yaml | 7 +++-- templates/registry/markdown/weaver.yaml | 1 + 9 files changed, 63 insertions(+), 40 deletions(-) delete mode 100644 docs/attributes-registry/datacenter.md create mode 100644 docs/attributes-registry/dc.md rename model/{datacenter => dc}/registry.yaml (68%) rename model/{datacenter => dc}/resources.yaml (74%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index e4e6d6b430..537a291480 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -35,6 +35,7 @@ body: - area:container - area:cpu - area:db + - area:dc - area:deployment - area:destination - area:device diff --git a/.github/ISSUE_TEMPLATE/change_proposal.yaml b/.github/ISSUE_TEMPLATE/change_proposal.yaml index 4c9316ddf1..01d8dd4132 100644 --- a/.github/ISSUE_TEMPLATE/change_proposal.yaml +++ b/.github/ISSUE_TEMPLATE/change_proposal.yaml @@ -27,6 +27,7 @@ body: - area:container - area:cpu - area:db + - area:dc - area:deployment - area:destination - area:device diff --git a/.github/ISSUE_TEMPLATE/new-conventions.yaml b/.github/ISSUE_TEMPLATE/new-conventions.yaml index e6e543158e..d2762b32af 100644 --- a/.github/ISSUE_TEMPLATE/new-conventions.yaml +++ b/.github/ISSUE_TEMPLATE/new-conventions.yaml @@ -36,6 +36,7 @@ body: - area:container - area:cpu - area:db + - area:dc - area:deployment - area:destination - area:device diff --git a/docs/attributes-registry/README.md b/docs/attributes-registry/README.md index 39e6ec2236..0f520d3b59 100644 --- a/docs/attributes-registry/README.md +++ b/docs/attributes-registry/README.md @@ -45,8 +45,8 @@ Currently, the following namespaces exist: - [Code](code.md) - [Container](container.md) - [CPU](cpu.md) -- [Datacenter](datacenter.md) - [Db](db.md) +- [DC](dc.md) - [Deployment](deployment.md) - [Destination](destination.md) - [Device](device.md) diff --git a/docs/attributes-registry/datacenter.md b/docs/attributes-registry/datacenter.md deleted file mode 100644 index 67f7fd0677..0000000000 --- a/docs/attributes-registry/datacenter.md +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -# Datacenter - -## Datacenter Attributes - -Generic DataCenter infrastructure tagging. - -| Attribute | Type | Description | Examples | Stability | -| ------------------ | ------ | ---------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------- | -| `dc.cage` | string | Name of the cage | `cage-1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.chassis` | string | Name of the chassis the server lives in. | `pod-4` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.device.type` | string | Type of device used. | `server`; `chassis`; `network`; `pdu`; `switch`; `patch-panel` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.name` | string | Name of datacenter. | `dc-name` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.pod` | string | Name of the pod | `pod-4` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.provider.name` | string | Name of the datacenter provider | `aws`; `azure`; `gcp`; `corp` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.provider.type` | string | Type of datacenter | `cloud`; `colocation`; `internal` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.rack` | string | Name of the rack. | `rack-7` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.site` | string | Name of the datacenter site | `site-1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dc.suite` | string | Name of the datacenter suite | `suite-5` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | diff --git a/docs/attributes-registry/dc.md b/docs/attributes-registry/dc.md new file mode 100644 index 0000000000..51de6de02e --- /dev/null +++ b/docs/attributes-registry/dc.md @@ -0,0 +1,35 @@ + + + + + +# DC + +## Datacenter Attributes + +Generic DataCenter infrastructure tagging. + +| Attribute | Type | Description | Examples | Stability | +| ------------------ | ------ | -------------------------------------------- | -------------------------------------------------------------- | ---------------------------------------------------------------- | +| `dc.cage` | string | Name of the cage [1] | `cage-1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.chassis` | string | Name of the chassis the server lives in. [2] | `pod-4` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.device.type` | string | Type of device used. | `server`; `chassis`; `network`; `pdu`; `switch`; `patch-panel` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.name` | string | Name of datacenter. | `dc-name` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.pod` | string | Name of the pod [3] | `pod-4` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.provider.type` | string | Type of datacenter | `cloud`; `colocation`; `internal` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.rack` | string | Name of the rack. [4] | `rack-7` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.site` | string | Name of the datacenter site [5] | `site-1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dc.suite` | string | Name of the datacenter suite [6] | `suite-5` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | + +**[1]:** This is a literal cage which is used to protect servers from potential intruders. + +**[2]:** A chassis is used to describe frame which contains servers together inside of a rack unit of a server rack. Typically used to take advantage of shared power supplies. + +**[3]:** This is a grouping of many servers typically several racks of servers. + +**[4]:** A tower frame which hold many servers and chassis. [Rack Unit](https://en.wikipedia.org/wiki/Rack_unit) + +**[5]:** The name of the physical building. + +**[6]:** Typically the room in the building where the server cages are located. diff --git a/model/datacenter/registry.yaml b/model/dc/registry.yaml similarity index 68% rename from model/datacenter/registry.yaml rename to model/dc/registry.yaml index 6db675c1d3..675a7ad682 100644 --- a/model/datacenter/registry.yaml +++ b/model/dc/registry.yaml @@ -1,6 +1,5 @@ groups: - - id: registry.datacenter - stability: + - id: registry.dc type: attribute_group display_name: Datacenter Attributes brief: > @@ -11,11 +10,6 @@ groups: stability: experimental brief: 'Name of datacenter.' examples: ['dc-name'] - - id: dc.provider.name - type: string - stability: experimental - brief: 'Name of the datacenter provider' - examples: ['aws', 'azure', 'gcp', 'corp'] - id: dc.provider.type type: string stability: experimental @@ -26,33 +20,46 @@ groups: stability: experimental brief: 'Type of device used.' examples: ['server', 'chassis', 'network', 'pdu', 'switch', 'patch-panel'] - - id: dc.suite - type: string - stability: experimental - brief: 'Name of the datacenter suite' - examples: ['suite-5'] - id: dc.site type: string stability: experimental brief: 'Name of the datacenter site' + note: > + The name of the physical building. examples: ['site-1'] + - id: dc.suite + type: string + stability: experimental + brief: 'Name of the datacenter suite' + note: > + Typically the room in the building where the server cages are located. + examples: ['suite-5'] - id: dc.cage type: string stability: experimental brief: 'Name of the cage' + note: > + This is a literal cage which is used to protect servers from potential intruders. examples: ['cage-1'] - id: dc.pod type: string stability: experimental brief: 'Name of the pod' + note: > + This is a grouping of many servers typically several racks of servers. examples: ['pod-4'] - id: dc.chassis type: string stability: experimental brief: 'Name of the chassis the server lives in.' + note: > + A chassis is used to describe frame which contains servers together inside of a rack unit + of a server rack. Typically used to take advantage of shared power supplies. examples: ['pod-4'] - id: dc.rack type: string stability: experimental brief: 'Name of the rack.' + note: > + A tower frame which hold many servers and chassis. [Rack Unit](https://en.wikipedia.org/wiki/Rack_unit) examples: ['rack-7'] diff --git a/model/datacenter/resources.yaml b/model/dc/resources.yaml similarity index 74% rename from model/datacenter/resources.yaml rename to model/dc/resources.yaml index 744a9a88c5..2e594c5e8a 100644 --- a/model/datacenter/resources.yaml +++ b/model/dc/resources.yaml @@ -1,12 +1,13 @@ groups: - - id: datacenter - stability: experimental + - id: dc type: resource + name: dc brief: > Generic DataCenter infrastructure tagging. attributes: - ref: dc.name - - ref: dc.provider.name + requirement_level: recommended + - ref: cloud.provider - ref: dc.provider.type - ref: dc.suite - ref: dc.site diff --git a/templates/registry/markdown/weaver.yaml b/templates/registry/markdown/weaver.yaml index 104823f184..f385d8af7b 100644 --- a/templates/registry/markdown/weaver.yaml +++ b/templates/registry/markdown/weaver.yaml @@ -14,6 +14,7 @@ acronyms: - CLR - CPU - CSI + - DC - DynamoDB - ECS - EKS From 48cfd1c2eaad3b3880112518b8953d61d8ba8bdd Mon Sep 17 00:00:00 2001 From: Harold Dost Date: Mon, 23 Sep 2024 01:10:54 +0200 Subject: [PATCH 3/3] Manually add file (which is required) --- docs/resource/datacenter.md | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docs/resource/datacenter.md diff --git a/docs/resource/datacenter.md b/docs/resource/datacenter.md new file mode 100644 index 0000000000..0462976389 --- /dev/null +++ b/docs/resource/datacenter.md @@ -0,0 +1,60 @@ +# Datacenters + +In case of datacenter operations users might need a way of describing the physical layout of where +processes are running. + + + + + + + + + +**Status:** ![Experimental](https://img.shields.io/badge/-experimental-blue) + +**type:** `dc` + +**Description:** Generic DataCenter infrastructure tagging. + +| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | +|---|---|---|---|---|---| +| [`cloud.provider`](/docs/attributes-registry/cloud.md) | string | Name of the cloud provider. | `alibaba_cloud`; `aws`; `azure` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| [`dc.cage`](/docs/attributes-registry/dc.md) | string | Name of the cage [1] | `cage-1` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| [`dc.name`](/docs/attributes-registry/dc.md) | string | Name of datacenter. | `dc-name` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| [`dc.pod`](/docs/attributes-registry/dc.md) | string | Name of the pod [2] | `pod-4` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| [`dc.provider.type`](/docs/attributes-registry/dc.md) | string | Type of datacenter | `cloud`; `colocation`; `internal` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| [`dc.rack`](/docs/attributes-registry/dc.md) | string | Name of the rack. [3] | `rack-7` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| [`dc.site`](/docs/attributes-registry/dc.md) | string | Name of the datacenter site [4] | `site-1` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| [`dc.suite`](/docs/attributes-registry/dc.md) | string | Name of the datacenter suite [5] | `suite-5` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | + +**[1]:** This is a literal cage which is used to protect servers from potential intruders. + +**[2]:** This is a grouping of many servers typically several racks of servers. + +**[3]:** A tower frame which hold many servers and chassis. [Rack Unit](https://en.wikipedia.org/wiki/Rack_unit) + +**[4]:** The name of the physical building. + +**[5]:** Typically the room in the building where the server cages are located. + + + +`cloud.provider` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +|---|---|---| +| `alibaba_cloud` | Alibaba Cloud | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `aws` | Amazon Web Services | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `azure` | Microsoft Azure | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `gcp` | Google Cloud Platform | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `heroku` | Heroku Platform as a Service | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `ibm_cloud` | IBM Cloud | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `tencent_cloud` | Tencent Cloud | ![Experimental](https://img.shields.io/badge/-experimental-blue) | + + + + + + +