Skip to content
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

RFC 0003, 0007 updates (Metrics measure type, metrics handle specification), RFC 0004 (configurable aggregation) deleted #29

Merged
merged 26 commits into from
Sep 12, 2019

Conversation

jmacd
Copy link
Contributor

@jmacd jmacd commented Aug 27, 2019

Updates to 0003 following work session 8/21/2019

Some content has been moved to a new RFC on metric handles.

This captures most of the discussion from the 8/21 meeting and mostly eliminates the need for RFC 0004.

text/0003-measure-metric-type.md Outdated Show resolved Hide resolved
text/0003-measure-metric-type.md Outdated Show resolved Hide resolved
@lzchen
Copy link
Contributor

lzchen commented Aug 27, 2019

In summary, these are the agreements that this RFC addresses:

  1. Agreement on context association across the metrics surface.
  2. Agreement: Two diff interfaces - 1) For defining local labels 2) Metric operations
    getHandle(labels) -> return handle object
    handle.set() or handle.add()
  3. Agreement: Call site variables can be supported by context tags
  4. Agreement: All defined labels are captured in handles
    Unspecified values will be accepted but will not be treated as empty
  5. Agreement: Context tags do not override handles tags
    Do not list remote tags for pre-aggregation (when you declare the metric)
  6. Agreement: No support delta metric type. All type should support increments and decrements (AI: come up with names for a-c)
    Set can have the option to restrict values to increase
    Add can have the option to restrict to +ive values
    Record can have the option to be restricted to only +ive values
  7. Agreement: Metric type will have default aggregation and will have the option of enabling them.
  8. Agreement: Support Context-less Set (aka callbacks) for observing current value metrics (snapshots) (bullet 6,7 applies to 8)

Agreements that still need to be addressed:

  1. Agreement: Supporting order based and non order based getHandle()
    Order based handles can throw exceptions: as determined by language
    Non-order based handles can fill-in unspecified-value automatically (point 4 in addressed)
  2. Agreement: Provide transformer for external metrics provider like drop-wizzard (rather than callback observer). (details on this?)
  3. Agreement: Resources are associated with SDK Manager, Component is associated with Tracer/Meter, metric name is unique per component (in prometheus exporter we would add component name as prefix).
  4. Vector metrics? (prometheus)

@jmacd Feel free to edit if I'm missing anything!

@lzchen
Copy link
Contributor

lzchen commented Aug 27, 2019

Looks good! I think we can address the other agreements maybe as edits to this RFC in the future once they are decided or simply push them up into the spec.

@tedsuo tedsuo self-requested a review September 3, 2019 03:39
@songy23
Copy link
Member

songy23 commented Sep 4, 2019

https://circleci.com/gh/open-telemetry/oteps/115?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

./text/0003-measure-metric-type.md:5:2: "Foreward" is a misspelling of "Foreword"
./text/0003-measure-metric-type.md:113:294: "whic" is a misspelling of "which"

Please fix. (make misspell-correction should fix the typos.)

text/0000-metric-handles.md Outdated Show resolved Hide resolved

## Motivation

The specification currently names this concept `TimeSeries`, the object returned by `GetOrCreateTimeseries`, which supports binding a metric to a pre-defined set of labels for repeated use. This proposal renames these `Handle` and `GetHandle`, respectively, and adds further detail to the API specification for handles.
Copy link
Member

Choose a reason for hiding this comment

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

Having gauge.GetHandle(...) seems to be okay.
Having a class/type named Handle could be confusing.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In the Go prototype, there is indeed a Handle type but it's for internal use. The types returned by the GetHandle() methods in Go PR#100 are like Float64GaugeHandle, Int64CumulativeHandle. Is this sufficiently clear?

@jmacd
Copy link
Contributor Author

jmacd commented Sep 11, 2019

I will revise this RFC again tomorrow with some of the outcome of today's metrics meeting. For now, I've allocated number 0007-metric-handle, making it precede 0008-metric-observer in PR#39.

@jmacd jmacd changed the title Metrics measure type [update] and metrics handle specification WIP: RFC 0003, 0007 updates (Metrics measure type, metrics handle specification), RFC 0004 (configurable aggregation) deleted Sep 11, 2019
@jmacd
Copy link
Contributor Author

jmacd commented Sep 11, 2019

Update: It's been suggested that this PR is too long to be useful, and I would like to propose merging it in the current "proposed" state. I will immediately open another PR for further comments as I begin another round of updates regarding the LabelSet discussion yesterday.

@bogdandrutu

@songy23 songy23 changed the title WIP: RFC 0003, 0007 updates (Metrics measure type, metrics handle specification), RFC 0004 (configurable aggregation) deleted RFC 0003, 0007 updates (Metrics measure type, metrics handle specification), RFC 0004 (configurable aggregation) deleted Sep 11, 2019
@yurishkuro yurishkuro merged commit 3e9d81d into open-telemetry:master Sep 12, 2019
@jmacd jmacd deleted the jmacd/update_0003 branch September 13, 2019 18:15
Oberon00 pushed a commit to dynatrace-oss-contrib/oteps that referenced this pull request Sep 16, 2019
* span operations API

* fixed TBD on span

* fixed a link

* addressed Bogdan's feedback

* fixed optionality of attributes

* Update tracing-api.md
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Oct 23, 2024
…ation), RFC 0004 (configurable aggregation) deleted (open-telemetry#29)

* Updates to 0003 following work session 8/21/2019

* Update date

* Feedback applied

* Feedback applied

* Remove handle specification, will create another RFC

* More typing

* Add metrics handles RFC

* Rename 0000

* Remove 0004

* Add an open question from python PR87

* Add an open question about RecordBatch

* Clarify the open questions

* Name NonNegative and NonDescending options

* Clarify the Measurement unit for RecordBatch

* Add issues addressed

* Linkify

* Linkify

* Format

* Address option names and default settings

* Answer questions

* Spelling

* Use 0007

* Refer to 0008

* Take suggestion
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Oct 23, 2024
…ation), RFC 0004 (configurable aggregation) deleted (open-telemetry#29)

* Updates to 0003 following work session 8/21/2019

* Update date

* Feedback applied

* Feedback applied

* Remove handle specification, will create another RFC

* More typing

* Add metrics handles RFC

* Rename 0000

* Remove 0004

* Add an open question from python PR87

* Add an open question about RecordBatch

* Clarify the open questions

* Name NonNegative and NonDescending options

* Clarify the Measurement unit for RecordBatch

* Add issues addressed

* Linkify

* Linkify

* Format

* Address option names and default settings

* Answer questions

* Spelling

* Use 0007

* Refer to 0008

* Take suggestion
carlosalberto pushed a commit to carlosalberto/oteps that referenced this pull request Oct 30, 2024
…ation), RFC 0004 (configurable aggregation) deleted (open-telemetry#29)

* Updates to 0003 following work session 8/21/2019

* Update date

* Feedback applied

* Feedback applied

* Remove handle specification, will create another RFC

* More typing

* Add metrics handles RFC

* Rename 0000

* Remove 0004

* Add an open question from python PR87

* Add an open question about RecordBatch

* Clarify the open questions

* Name NonNegative and NonDescending options

* Clarify the Measurement unit for RecordBatch

* Add issues addressed

* Linkify

* Linkify

* Format

* Address option names and default settings

* Answer questions

* Spelling

* Use 0007

* Refer to 0008

* Take suggestion
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.