Comments (15)
If the goal of the OTLP is to transport the output of Instrument -> Aggregator, it should be modeled after the output of the Aggregators, aggregations. And while, yes, the Histogram is one of these aggregations, the included histogram kinds are conflated with instrument qualifiers (Gauge, Cumulative).
I think the goal of OTLP should be:
- Support Aggregator output - in a generic way and not having 100s of combinations like SumCount, SumCountMin, etc.
- There is a request to also support the output for synchronous Instruments -> to a possible Aggregator. This is still under discussion but will be addressed.
from opentelemetry-proto.
@MrAlias our approach so far has been that we file individual issues and PRs that fix them, gradually moving towards the desirable final proto. We had more time to do this for traces and it looks like it went well. With metric we had less time and there are issues that need to be addressed.
If you know what the right fixes to the identified issues are it would be great if you could submit corresponding PRs.
major overhaul to provide first class support for OpenTelemetry. Possibly being done in a v2 of the proto.
Is there such a disconnect that requires a major overhaul? I am not a metric spec/SDK contributor, so I cannot assess myself how big is the disconnect.
@open-telemetry/specs-approvers whatever changes we want to do to the proto it is very desirable to do them quickly. I know multiple people who are currently ramping up to write code that assumes the current proto. If we do not finalize the proto quickly we will cause pain by introducing breaking changes.
If we are unable to have the final metric proto version within the next few days it is best that we announce the metric part of the protocol as not ready for implementation.
from opentelemetry-proto.
If we are unable to have the final metric proto version within the next few days it is best that we announce the metric part of the protocol as not ready for implementation.
@tigrannajaryan what did you decide on this? As it's written now, the types in the metrics proto are very different than the instruments and aggregations in the spec or OTEPS (e.g. open-telemetry/oteps#88 and open-telemetry/oteps#93).
Unless we expect to change the spec to match the proto this looks to me like it's not ready for implementation.
from opentelemetry-proto.
@c24t I do not know enough about the metrics to make a call on this. @bogdandrutu @jmacd can you help?
from opentelemetry-proto.
@tigrannajaryan: I started in on a proposal refactor of the proto, but have not found the time to get it into a presentable state. The rough structure of the proposal is to switch to something closer to the Stackdriver proto model for metrics and update the data points to be more along the lines of instantaneous
, delta
, and cumulative
values. I'm hoping to get this more formalized and will share when it is.
I agree with @c24t in that it might be wasted work to implement at this point as a I think there needs to be a refactor to support the OpenTelemetry metric data.
from opentelemetry-proto.
I look forward to seeing this proposal @MrAlias.
I've updated OTEPs 93 and 96 with the terms "delta", "cumulative", and "instantaneous", fwiw.
from opentelemetry-proto.
Do note that we have an implementation of metrics proto in Collector already and increasingly large amount of code depends on it because it is the foundation of internal representation.
The longer we wait for the proposal the more code needs to be rewritten. If the proposal doesn't happen quickly them we have a problem, we do not have time rewrite thousands of lines of cod (depending on how big the changes are).
from opentelemetry-proto.
If this gets delayed more we may end up staying with OpenCensus representation in the Collector, since I don't think we will have time or people to rewrite all that code. The consequence will be that metrics will work significantly slower in the Collector.
from opentelemetry-proto.
from opentelemetry-proto.
@jmacd do you think the current proto definition is robust enough to encode all of the aggregations you envision for OTEP-88 and following?
from opentelemetry-proto.
from opentelemetry-proto.
After some progress in both the set of instruments and the terminology used to explain them, I've come to think that the ideal set of properties for describing an aggregation are:
- Collective vs Additive representation
- Made synchronously vs asynchronously
- Monotonic output.
These can be stored using 3 bits. These bits are independent of whether a unit of metric data is considered as "cumulative" or "delta", the so-called temporal quality. In my thinking, both kinds of data are characterized by two timestamps: the start of the interval, and the end of the interval over which the data applies. A cumulative expression of metric data will re-use the same start time, as in: [T0, T1], [T0, T2], [T0, T3], ...
A delta expression of metric data will not re-use the start time:
[T0, T1], [T1, T2], [T2, T3], ...
from opentelemetry-proto.
@MrAlias this is very hard to track, do you mind splitting in smaller PRs so we make sure every issue is track accordingly.
from opentelemetry-proto.
@MrAlias is there anything left in this issue, I feel like more than 80-90% of the concerns were addressed. Would like to close this and recommend open a new issue if there is anything else left.
from opentelemetry-proto.
@MrAlias is there anything left in this issue, I feel like more than 80-90% of the concerns were addressed. Would like to close this and recommend open a new issue if there is anything else left.
SGTM. Was just going to recommend the same 👍
from opentelemetry-proto.
Related Issues (20)
- Add checks for markdown files as we have in the spec repo HOT 1
- Add ability for OTLP to indicate which records were rejected for retryable reasons HOT 5
- Move examples out of spec into an examples folder HOT 1
- Enum element naming consistency HOT 1
- Conflicting requirements in OTLP JSON field names HOT 14
- Schema support for span with key-value attributes HOT 2
- Question about ResourceSpans HOT 1
- Mention 1.0.0 in CHANGELOG.md? HOT 3
- Difference between proto and SDK HOT 2
- Why TraceID and SpanID are defined []byte type? HOT 4
- AnyValue diverging from spec on website HOT 2
- The comment of schema_url doesn't describe it's purpose.
- Clarify whether OTLP/gRPC codes should cover both client and server HOT 1
- Unclear whether Span.flags represents span's parent or own flags HOT 10
- Fix releasing notes HOT 3
- Clarify meaning of *DNS name prefix* in protobuf code comment for metric name
- Allow consumers to use map<string, AnyValue> instead of repeated KeyValue HOT 3
- Generated OpenAPI files wrongly encode enums
- Improve metrics.proto by mentioning Resource Attributes and Scope HOT 1
- How to use Java service to receive data in the OpenTelemetry (Otel) protocol? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opentelemetry-proto.