Skip to content

Commit

Permalink
Add semantic conventions for all Kubernetes objects
Browse files Browse the repository at this point in the history
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
  • Loading branch information
bogdandrutu committed Jul 23, 2020
1 parent 619b588 commit 6402c14
Showing 1 changed file with 127 additions and 5 deletions.
132 changes: 127 additions & 5 deletions specification/resource/semantic_conventions/k8s.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,134 @@
# Kubernetes

**type:** `k8s`
Useful resources to understand Kubernetes objects and metadata:

**Description:** A Kubernetes resource.
* [Namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)
* [Names and UIDs](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/).
* [Pods](https://kubernetes.io/docs/concepts/workloads/pods/)
* [Controllers](https://kubernetes.io/docs/concepts/workloads/controllers/)

The "name" of a Kubernetes resource is unique for that type of resource within a
"namespace" and only at a specific moment of time (names can be reusedover
time). The "uid" is unique across your whole cluster, and very likely across
time. Because of this it is recommended to always set the UID for every
Kubernetes resource, but "name" is usually more user friendly.

## Cluster

**type:** `k8s.cluster`

**Description:** A Kubernetes Cluster.

| Attribute | Description | Example |
|---|---|---|
| k8s.cluster.name | The name of the cluster. | `opentelemetry-cluster` |

## Namespace

Namespaces provide a scope for names. Names of resources need to be unique
within a namespace, but not across namespaces.

**type:** `k8s.namespace`

**Description:** A Kubernetes Namespace.

| Attribute | Description | Example |
|---|---|---|
| k8s.cluster.name | The name of the cluster that the pod is running in. | `opentelemetry-cluster` |
| k8s.namespace.name | The name of the namespace that the pod is running in. | `default` |
| k8s.pod.name | The name of the pod. | `opentelemetry-pod-autoconf` |
| k8s.deployment.name | The name of the deployment. | `opentelemetry` |

## Pod

The smallest and simplest Kubernetes object. A Pod represents a set of running
containers on your cluster.

**type:** `k8s.pod`

**Description:** A Kubernetes Pod resource.

| Attribute | Description | Example |
|---|---|---|
| k8s.pod.uid | The uid of the Pod. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| k8s.pod.name | The name of the Pod. | `opentelemetry-pod-autoconf` |

## ReplicaSet

A ReplicaSet’s purpose is to maintain a stable set of replica Pods running at
any given time.

**type:** `k8s.replica_set`

**Description:** A Kubernetes ReplicaSet resource.

| Attribute | Description | Example |
|---|---|---|
| k8s.replica_set.uid | The uid of the ReplicaSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| k8s.replica_set.name | The name of the ReplicaSet. | `opentelemetry` |

## Deployment

An API object that manages a replicated application, typically by running Pods
with no local state. Each replica is represented by a Pod, and the Pods are
distributed among the nodes of a cluster.

**type:** `k8s.deployment`

**Description:** A Kubernetes Deployment resource.

| Attribute | Description | Example |
|---|---|---|
| k8s.deployment.uid | The uid of the Deployment. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| k8s.deployment.name | The name of the Deployment. | `opentelemetry` |

## StatefulSet

Manages the deployment and scaling of a set of Pods, and provides guarantees
about the ordering and uniqueness of these Pods.

**type:** `k8s.stateful_set`

**Description:** A Kubernetes Deployment resource.

| Attribute | Description | Example |
|---|---|---|
| k8s.stateful_set.uid | The uid of the deployment. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| k8s.stateful_set.name | The name of the deployment. | `opentelemetry` |

## DaemonSet

A DaemonSet ensures that all (or some) Nodes run a copy of a Pod.

**type:** `k8s.daemon_set`

**Description:** A Kubernetes Deployment resource.

| Attribute | Description | Example |
|---|---|---|
| k8s.daemon_set.uid | The uid of the DaemonSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| k8s.daemon_set.name | The name of the DaemonSet. | `opentelemetry` |

## Job

A Job creates one or more Pods and ensures that a specified number of them
successfully terminate.

**type:** `k8s.job`

**Description:** A Kubernetes Deployment resource.

| Attribute | Description | Example |
|---|---|---|
| k8s.job.uid | The uid of the Job. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| k8s.job.name | The name of the Job. | `opentelemetry` |

## CronJob

A CronJob creates Jobs on a repeating schedule.

**type:** `k8s.cron_job`

**Description:** A Kubernetes Deployment resource.

| Attribute | Description | Example |
|---|---|---|
| k8s.cron_job.uid | The uid of the CronJob. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` |
| k8s.cron_job.name | The name of the CronJob. | `opentelemetry` |

0 comments on commit 6402c14

Please sign in to comment.