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/.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 35356a67cb..0f520d3b59 100644 --- a/docs/attributes-registry/README.md +++ b/docs/attributes-registry/README.md @@ -46,6 +46,7 @@ Currently, the following namespaces exist: - [Container](container.md) - [CPU](cpu.md) - [Db](db.md) +- [DC](dc.md) - [Deployment](deployment.md) - [Destination](destination.md) - [Device](device.md) 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/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) | + + + + + + + diff --git a/model/dc/registry.yaml b/model/dc/registry.yaml new file mode 100644 index 0000000000..675a7ad682 --- /dev/null +++ b/model/dc/registry.yaml @@ -0,0 +1,65 @@ +groups: + - id: registry.dc + 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.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.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/dc/resources.yaml b/model/dc/resources.yaml new file mode 100644 index 0000000000..2e594c5e8a --- /dev/null +++ b/model/dc/resources.yaml @@ -0,0 +1,16 @@ +groups: + - id: dc + type: resource + name: dc + brief: > + Generic DataCenter infrastructure tagging. + attributes: + - ref: dc.name + requirement_level: recommended + - ref: cloud.provider + - ref: dc.provider.type + - ref: dc.suite + - ref: dc.site + - ref: dc.cage + - ref: dc.pod + - ref: dc.rack 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