open-telemetry / opentelemetry-specification

Specifications for OpenTelemetry
https://opentelemetry.io
Apache License 2.0
3.65k stars 875 forks source link

Service renaming #3791

Open LikeTheSalad opened 7 months ago

LikeTheSalad commented 7 months ago

OpenTelemetry has become the observability data industry standard for several platforms, especially related to backend services, and, while it probably was not foreseeable at the time of its creation, it has become so widely popular that it's now being used for purposes beyond telemetry for backend services, and moved onto other scopes such as mobile apps and web pages too! Which speaks volumes of how fast this community has grown and it's a testament to the hard work and love that has been put into expanding its capabilities.

As it would happen with any growth story though, as time passes by and OpenTelemetry expands and evolves, some of its parts, which were exactly what was needed at the beginning, might not make too much sense anymore, and one important aspect of it that has been discussed in the Client SIG, is the way to refer to an "entity that produces telemetry", be it a backend service, web app or mobile app for example, all of which, at the moment, would be defined as service, based on the current semantic conventions, which has proven to be confusing for people who are starting to adopt OpenTelemetry for non-backend services purposes.

This issue aims to provide a term to identify an "entity that produces telemetry" in a way that wouldn't be tied to any particular environment so that it better represents the wide range of use cases that OpenTelemetry has come to support in time, and hopefully covers any use case that might arise in the future as well. I'm conscious of the longevity of the current term service and how widely adopted it is across existing services and even non-services entities, which most likely won't make this an easy change for sure, though I believe that, based on how fast OpenTelemetry is growing, the longer we wait to make these kinds of changes, the more difficult it will become.

The proposed name to replace it with is origin, more details on what the change would look like in this PR.

reyang commented 7 months ago

This has been discussed before. During the 10/20/2023 TC triage, we decided that the name service has established and should be used for other components such as clients / devices, instead of switching to a different name. As a follow up, we should clarify what service means in the specification.

LikeTheSalad commented 7 months ago

I see, would you mind elaborating a bit on the "established" part? I just would like to better understand the reasoning why everything has to be called a service and what you mentioned kind of sounds like a "That’s the way we’ve always done it" argument which, if that's the case, is just a bit disappointing for a modern project like this one.

Oberon00 commented 7 months ago

It's not a disappointing argument. This is part of the specification, one of the main uses of a specification is to have behavior that people can rely on. There is tons of code out there relying on service.name being the name of the service/component/origin/whatever. Changing that means breaking tons of code, most of which is not under the OpenTelemetry project's control.

LikeTheSalad commented 7 months ago

I see, so it's that argument. It's a bit disappointing to me tbh, although I understand that it's difficult to make these kinds of decisions so that's fair enough.

Oberon00 commented 7 months ago

You can't bring that argument against any change of course, but "service" is a very fundamental concept and it's marked as stable, which means the OpenTelemetry project did commit to not make breaking changes to it.

svrnm commented 7 months ago

@LikeTheSalad as someone who was involved in an earlier iteration(s) of this discussion (see @t2t2's list here https://github.com/open-telemetry/semantic-conventions/pull/557#issuecomment-1827354755), I see where your disappointment is coming from, but as @Oberon00 stated this is a change that can not be done without a lot of trouble.

A few personal thoughts on this topic:

mtwo commented 6 months ago

Note from the maintainers meeting this week: @jack-berg suggested that we create a canonical issue (or other GitHub artifact) or note in the semantic conventions that describes why 'service' will be so difficult to change at this point, as these discussions surface pretty regularly.

jack-berg commented 6 months ago

Clarifying PR here: https://github.com/open-telemetry/semantic-conventions/pull/630

svrnm commented 2 months ago

@open-telemetry/technical-committee please take a look at this issue once again, the PR was merged and reverted again, is this the right issue to have a continued discussion on the topic or is there another issue that replaces this one? Or is this/will this be covered by the Entities Project?

jack-berg commented 2 months ago

This is covered by the entities project. It aims to answer the same types of questions posed by this issue.

jack-berg commented 2 months ago

@jsuereth / @tigrannajaryan I've added the sig-issue and spec:resource labels to indicate that this is something the entities SIG should cover.