diff --git a/pkg/semconv/README.md b/pkg/semconv/README.md index f4322dc25f9..585034221e0 100644 --- a/pkg/semconv/README.md +++ b/pkg/semconv/README.md @@ -6,6 +6,7 @@ - [Attribute Groups](#attribute-groups) - [grafana.datasource](#grafanadatasource) - [grafana.datasource.request](#grafanadatasourcerequest) +- [k8s](#k8s) - [grafana.plugin](#grafanaplugin) @@ -24,6 +25,7 @@ For more information: ## Attribute Groups ### grafana.datasource + | Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | |---|---|---|---|---|---| @@ -39,6 +41,13 @@ For more information: | `grafana.datasource.request.query_count` | int | The number of queries in the request. | `3` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | +## k8s + + +| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability | +|---|---|---|---|---|---| +| `k8s.dataplaneservice.name` | string | The name of the DataPlaneService. | `v0alpha1.prometheus.grafana.app` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | + ### grafana.plugin @@ -48,3 +57,4 @@ For more information: | `grafana.plugin.id` | string | The plugin ID. | `prometheus`; `loki`; `grafana-github-datasource` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | | `grafana.plugin.type` | string | The plugin type. | `datasource` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | + diff --git a/pkg/semconv/attributes.go b/pkg/semconv/attributes.go index 15067e161fe..b69a20457ea 100644 --- a/pkg/semconv/attributes.go +++ b/pkg/semconv/attributes.go @@ -61,6 +61,26 @@ func GrafanaDatasourceRequestQueryCount(val int) attribute.KeyValue { return grafanaDatasourceRequestQueryCountKey.Int(val) } +// Describes Kubernetes attributes. +const ( + // K8sDataplaneserviceNameKey is the attribute Key conforming to the + // "k8s.dataplaneservice.name" semantic conventions. It represents the name + // of the DataPlaneService. + // + // Type: string + // RequirementLevel: Optional + // Stability: stable + // Examples: 'v0alpha1.prometheus.grafana.app' + k8sDataplaneserviceNameKey = attribute.Key("k8s.dataplaneservice.name") +) + +// K8sDataplaneserviceName returns an attribute KeyValue conforming to the +// "k8s.dataplaneservice.name" semantic conventions. It represents the name of +// the DataPlaneService. +func K8sDataplaneserviceName(val string) attribute.KeyValue { + return k8sDataplaneserviceNameKey.String(val) +} + // Describes Grafana plugin attributes. const ( // GrafanaPluginIdKey is the attribute Key conforming to the diff --git a/pkg/semconv/model/registry/k8s.yml b/pkg/semconv/model/registry/k8s.yml new file mode 100644 index 00000000000..3867cb686ad --- /dev/null +++ b/pkg/semconv/model/registry/k8s.yml @@ -0,0 +1,12 @@ +groups: + - id: registry.k8s + type: attribute_group + display_name: Kubernetes Attributes + brief: "Describes Kubernetes attributes." + attributes: + - id: k8s.dataplaneservice.name + type: string + brief: The name of the DataPlaneService. + examples: + - "v0alpha1.prometheus.grafana.app" + stability: stable \ No newline at end of file diff --git a/pkg/semconv/model/trace/k8s.yaml b/pkg/semconv/model/trace/k8s.yaml new file mode 100644 index 00000000000..572f4dcfabe --- /dev/null +++ b/pkg/semconv/model/trace/k8s.yaml @@ -0,0 +1,7 @@ +groups: + - id: trace.k8s + type: span + brief: 'Semantic Convention for Grafana Kubernetes resources' + stability: stable + attributes: + - ref: k8s.dataplaneservice.name \ No newline at end of file