-
Notifications
You must be signed in to change notification settings - Fork 895
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rename Events to Categorized Logs #2876
Rename Events to Categorized Logs #2876
Conversation
This is an alternate to open-telemetry#2863 ## Problem "Event" is a confusing term that is understood differently by different people in different contexts. We would like to avoid using it if possible. ## Proposal The OpenTelemetry Event is defined as a LogRecord that has specific attributes, namely event.name and event.domain. The event.domain here is one of the important elements. It places the event definitions into isolated buckets (domains). We could use the term "Domenized Logs", but it sounds a bit weird, so I want to suggest renaming the concept of "domain" to "category", without changing the semantics. The specially shaped Log Records can be called "Categorized Logs" and have attributes "log.category" (previously known as "event.domain") and "log.name" (previously known as "event.name"). We will refrain from using the term "event" as much as possible to avoid confusion. I am open to other name suggestions for "Categorized Logs". We just want to make sure to avoid the word "events" and avoid inventing completely new terms, so some sort of adjective + "logs" seems to be the best approach. ## What Changes? - "Event" is renamed to "Categorized LogRecord" - "event.name" is renamed to "log.name" - "event.domain" is renamed to "log.category" - "log.category" is an attribute of LogRecord (instead of previously "event.domain" being a Scope attribute) ## What Did We Lose? "event.domain" previously could be recorded as a Scope attribute and be used for efficient batch processing/routing of logrecords. This is no longer possible, but we can add another such attribute in the future that serves the same purpose (e.g. see the [proposal to add "signal.type"](https://github.com/open-telemetry/opentelemetry-specification/pull/2863/files#r993794504)).
I strongly prefer keeping the term Span Events are Events attached to Spans. Metric Events are data points from which Measurements are extracted. The events in question can be called Standalone Events, since they are no different from these two other type of events except the context is different. (I thought the Glossary already had the term Standalone Event, but it isn't there). |
@scheler I am not sure it is well understood. Can you point to any definition of what an "event" is that everybody understands the same way? |
+1 to keep events. If you stick to logs, you will miss a universe of data - weather data, CSV entries, JSON docs come to mind. |
That's Splunk events. That's not how Otel understands events (as defined currently). The only common thing here is the Timestamp. Otel events don't need to have a Host, Source or Sourcetype.
This PR suggests a new OpenTelemetry-authored name for the same concept, it doesn't suggest to stop supporting events as they are understood now. Nothing changes functionally. The name change is merely to avoid confusion that stems from a disagreement on what an "event" means. |
|
+1 from me but I'm not really a fan of the new name. I'd prefer Semantic Log. Semantic is just a term already used throughout Otel and I think that helps, but maybe it hurts in a way I'm not predicting? |
If we were to go with schematic log, we could have We could also do a hybrid approach, where we say that OpenTelemetry Events are LogRecords with a schema defined by The api mechanics are then something like:
|
I strongly disagree with this idea. People understand what "events" are. This new language will ensure no one will understand what they are, and therefore make it something people are afraid to use. |
@jkwatson I maintain that there is no single understanding of what "events" are. I have heard countless different definitions from different people. I have yet to hear a definition that everyone (most people?) agree with. Can you link to one? I would be glad to be proven wrong and we can use that definition in Otel. |
The one I could find from public domain (rather than a definition from a particular product/vendor/company) https://en.wikipedia.org/wiki/Event_(computing). |
@tigrannajaryan can you please update the problem description and elaborate on what is confusing? The term is used in different contexts for sure but I want to understand how they are conflicting. |
This could also be a topic for |
I don't think that provides a useful definition here:
By that definition starting a span is an event. Ending it is another event. So is attaching attributes. And observing an instrument value. And changing an instrument value. Everything is an |
I firmly believe that if we define and explain "OpenTelemetry Event API" to people, it will not be confusing to 99% of our users. If we call something "OpenTelemetry Categorized Logs API", no one will understand what we are trying to do, even if we do explain it. I know I lost the battle on having to support a logging API in OpenTelemetry. I will probably lose this one too, but I think that I need to raise my voice and ask us to listen to common sense and define things that are named simply. We should not create new confusing names for things that are very often called "events" and are not confusing to users of APIs that call them such. I don't think the term "event" is confusing. Sure, many things are called events, but many things are also called "telemetry" and we haven't shied away from using that term! |
Let me try this again. Here is the definition of events in "Exploring Splunk", by David Carasso (pdf here, page 137):
This book was written in 2012. Could we settle on the definition that "an event is a set of values associated with a timestamp"? |
What we need is language to use to differentiate
I want to agree with this, but it seemed that even within the Log SIG we couldn't find agreement on what an
As far as I can tell we do not define the term |
Is that what we're doing here? I assumed I was responding to the problem stated in the issue at the top:
Sorry if I missed something. |
Not the one, but another one: https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#event CloudEvents is a CNCF project, and the people involved have tried hard to define what an "event" is. |
I think that helps illustrate the point. They define |
So far we have these definitions: Wikipedia
Splunk book
CloudEvents
I am going to be charitable and ignore the differences between the 3 and assume they are all the same. The problem is that we are proposing a different definition at OpenTelemetry and still call it an Event. The current best understanding of what OpenTelemetry event is is the following:
Perhaps the majority's opinion is that we don't care and our definition is the right one. I don't know, to me this sounds like a source of future confusion and misunderstanding. My previous PR tries to mitigate this by saying we have a OpenTelemetry Event (colloquially shortened to a capital Event) and it is different from other understandings of an "event". Is this sufficient to avoid the confusion? I am not sure, that's why I proposed this alternate PR. |
I think the term event is sufficiently clear. Users understand that the context for this term is "OpenTelemetry." If we need to differentiate between the other types of events that OTel offers, such as span events and metric events, we could call these log events. But personally, I agree with @jkwatson that our users will not at all be confused by the term "events." |
Discussed this in the Log SIG yesterday and this seems like a dead end to me. Closing. |
All, I made an alternate proposal that attempts to address the problems we experience with events: #2897 |
This is an alternate to #2863
Problem
"Event" is a confusing term that is understood differently by different people in different contexts. We would like to avoid using it if possible.
Proposal
The OpenTelemetry Event is defined as a LogRecord that has specific attributes, namely event.name and event.domain. The event.domain here is one of the important elements. It places the event definitions into isolated buckets (domains).
We could use the term "Domenized Logs", but it sounds a bit weird, so I want to suggest renaming the concept of "domain" to "category", without changing the semantics.
The specially shaped Log Records can be called "Categorized Logs" and have attributes "log.category" (previously known as "event.domain") and "log.name" (previously known as "event.name").
We will refrain from using the term "event" as much as possible to avoid confusion.
I am open to other name suggestions for "Categorized Logs". We just want to make sure to avoid the word "events" and avoid inventing completely new terms, so some sort of adjective + "logs" seems to be the best approach.
Some alternates that were suggested earlier: "Schematic LogRecord", "Semantic LogRecord" (also colloquially I think it is safe to shorten LogRecord to Log when used with an adjective). The advantage of "Categorized Log" is that we use the same term in the attribute name "log.category", whereas it is unclear what attribute name to use for "Schematic" or "Semantic" logs.
What Changes?
What Did We Lose?
"event.domain" previously could be recorded as a Scope attribute and be used for efficient batch processing/routing of logrecords. This is no longer possible, but we can add another such attribute in the future that serves the same purpose (e.g. see the proposal to add "signal.type").