Skip to content

Conversation

@jsuereth
Copy link
Contributor

Fixes #2880

Changes

  • Updates the service entity to consist of three components and describes each
  • Adds a service specific markdown file for resource modelling
  • Migrates existing attributes to appropriate entities in service.

Important

Pull requests acceptance are subject to the triage process as described in Issue and PR Triage Management.
PRs that do not follow the guidance above, may be automatically rejected and closed.

Merge requirement checklist

  • CONTRIBUTING.md guidelines followed.
  • Change log entry added, according to the guidelines in When to add a changelog entry.
    • If your PR does not need a change log, start the PR title with [chore]
  • Links to the prototypes or existing instrumentations (when adding or changing conventions)

**type:** `service`

**Description:** A service instance.
**Description:** A logical, distinct, component that makes up a system.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Description:** A logical, distinct, component that makes up a system.
**Description:** A logical, distinct component that makes up a system.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Description:** A logical, distinct, component that makes up a system.
**Description:** A logical unit of an application or system that performs a specific function.

My AI discussions sometimes used "system", "application" and "distributed system" as alternatives. I want to like system but I also get some weird feeling about it. The more I read.. the more I tend to prefer application more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image


# Service semantic conventions

Service is a logical component of an application that prodcues telemetry
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Service is a logical component of an application that prodcues telemetry
Service is a logical component of an application that produces telemetry

- An `service.namespace` is an entire system of components designed for
end-users or other applications to leverage.
- A `service` is one of the logical, distinct components that make up the
application, typically running as a separate process or microservice.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the word "process" makes me think of service.instance

Suggested change
application, typically running as a separate process or microservice.
application.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree on not using the term "process" to avoid the confusion, but removing latter part makes the sentence a bit vague for me. I would replace the latter part with another phrase. Example here:

Suggested change
application, typically running as a separate process or microservice.
application, typically running as a bundle of the instances that run the same container image for load balancing.

brief: >
A system of components designed for end-users or other applications.
note: >
A `service.namespace` is system, product or application that is
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A `service.namespace` is system, product or application that is
A `service.namespace` is a system, product or application that is

A service instance.
A logical, distinct, component that makes up a system.
note: >
A `service` is a logical component used in a system, product or
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A `service` is a logical component used in a system, product or
A service is a logical component used in a system, product or

| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`service.name`](/docs/registry/attributes/service.md) | string | Logical name of the service. [1] | `shoppingcart` | `Required` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| [`service.version`](/docs/registry/attributes/service.md) | string | The version string of the service API or implementation. The format is not defined by these conventions. | `2.0.0`; `a01dbef8a` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| [`service.version`](/docs/registry/attributes/service.md) | string | The version string of the service API or implementation. The format is not defined by these conventions. | `2.0.0`; `a01dbef8a` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| [`service.version`](/docs/registry/attributes/service.md) | string | The version string of the service component. The format is not defined by these conventions. | `2.0.0`; `a01dbef8a` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

Copy link
Member

@joaopgrassi joaopgrassi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I asked AI about how our model relates to k8s constructs. Here's the overview (which nicely aligns with our vision/goal/discussions so far)

OpenTelemetry Attribute Kubernetes Construct Description
service.name Deployment or Service Represents the logical name of the application or microservice. Typically aligns with a Kubernetes Deployment or Service name.
service.namespace Namespace Groups related services together. Aligns with Kubernetes namespaces for logical organization and isolation.
service.instance.id Container ID Uniquely identifies a specific instance of the service. Maps to the container runtime ID for the service's container.
service.version Container Image Tag Tracks the version of the service. Maps to the container image tag specified in the Deployment spec or Pod template.

**type:** `service`

**Description:** A service instance.
**Description:** A logical, distinct, component that makes up a system.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Description:** A logical, distinct, component that makes up a system.
**Description:** A logical unit of an application or system that performs a specific function.

My AI discussions sometimes used "system", "application" and "distributed system" as alternatives. I want to like system but I also get some weird feeling about it. The more I read.. the more I tend to prefer application more.

**type:** `service`

**Description:** A service instance.
**Description:** A logical, distinct, component that makes up a system.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

type: entity
name: service.instance
brief: >
A distinct instance of a service component.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A distinct instance of a service component.
A unique instance of a logical service.

Maybe? To connect and reinforce that a service is a logical component while a instance is not.

brief: >
A distinct instance of a service component.
note: >
A `service.instance` is a specific instance of a component. For example,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A `service.instance` is a specific instance of a component. For example,
A `service.instance` uniquely identifies an instance of a logical service. For example,

A distinct instance of a service component.
note: >
A `service.instance` is a specific instance of a component. For example,
a specific kubernetes container that is part of a kuebrnetes deployment
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
a specific kubernetes container that is part of a kuebrnetes deployment
a container that is part of a kubernetes deployment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest beginning with capital letter for proper nouns ("Kubernetes")

type: entity
name: service.namespace
brief: >
A system of components designed for end-users or other applications.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A system of components designed for end-users or other applications.
Groups related services that compose a system or application under a common namespace.

brief: >
A system of components designed for end-users or other applications.
note: >
A `service.namespace` is system, product or application that is
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A `service.namespace` is system, product or application that is
A `service.namespace` can be used to logically organize and group related services under a common namespace.

Maybe?

Copy link

@ymotongpoo ymotongpoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just took a glance for the update. I'll add more comments if I have any findings.

- An `service.namespace` is an entire system of components designed for
end-users or other applications to leverage.
- A `service` is one of the logical, distinct components that make up the
application, typically running as a separate process or microservice.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree on not using the term "process" to avoid the confusion, but removing latter part makes the sentence a bit vague for me. I would replace the latter part with another phrase. Example here:

Suggested change
application, typically running as a separate process or microservice.
application, typically running as a bundle of the instances that run the same container image for load balancing.

A distinct instance of a service component.
note: >
A `service.instance` is a specific instance of a component. For example,
a specific kubernetes container that is part of a kuebrnetes deployment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest beginning with capital letter for proper nouns ("Kubernetes")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decide if service and service.instance are different entities

4 participants