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

Make measurement a concrete class #2153

Merged
merged 3 commits into from
Sep 29, 2021

Conversation

aabmass
Copy link
Member

@aabmass aabmass commented Sep 24, 2021

Fixes #2150

@aabmass aabmass changed the base branch from main to metrics_new September 24, 2021 20:22
@aabmass aabmass added the Approve Public API check This label shows that the public symbols added or changed in a PR are strictly necessary label Sep 24, 2021
@aabmass aabmass changed the title measurement concrete 2150 Make measurement a concrete class Sep 24, 2021
@aabmass aabmass force-pushed the measurement-concrete-2150 branch 2 times, most recently from f3d75ec to 9cd701f Compare September 24, 2021 21:59
@aabmass aabmass marked this pull request as ready for review September 24, 2021 22:01
@aabmass aabmass requested a review from a team September 24, 2021 22:01
@aabmass aabmass force-pushed the measurement-concrete-2150 branch 2 times, most recently from cd0be0e to 22bc182 Compare September 25, 2021 15:38
@@ -6,6 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased](https://github.com/open-telemetry/opentelemetry-python/compare/v1.5.0-0.24b0...HEAD)

- Add metrics API
([#1887](https://github.com/open-telemetry/opentelemetry-python/pull/1887))
- `opentelemetry-semantic-conventions` Update to semantic conventions v1.6.1
Copy link
Contributor

Choose a reason for hiding this comment

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

CHANGELOG?

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok. This CHANGELOG is a little funny because these changes will not be release in v1.5.0. Should probably split it into a separate file until we merge it.

@ocelotl ocelotl enabled auto-merge (squash) September 29, 2021 11:50
@ocelotl
Copy link
Contributor

ocelotl commented Sep 29, 2021

@lzchen please review ✌️

@ocelotl ocelotl merged commit 1dec47a into open-telemetry:metrics_new Sep 29, 2021
ocelotl pushed a commit that referenced this pull request Sep 29, 2021
* Make Measurement a concrete class

* comments

* update changelog
@aabmass aabmass deleted the measurement-concrete-2150 branch September 29, 2021 18:34
ocelotl pushed a commit to ocelotl/opentelemetry-python that referenced this pull request Oct 13, 2021
* Make Measurement a concrete class

* comments

* update changelog
aabmass added a commit to aabmass/opentelemetry-python that referenced this pull request Oct 29, 2021
* Make Measurement a concrete class

* comments

* update changelog
ocelotl pushed a commit that referenced this pull request Nov 2, 2021
* Make Measurement a concrete class

* comments

* update changelog
ocelotl pushed a commit to ocelotl/opentelemetry-python that referenced this pull request Nov 2, 2021
* Make Measurement a concrete class

* comments

* update changelog
ocelotl pushed a commit to ocelotl/opentelemetry-python that referenced this pull request Nov 10, 2021
* Make Measurement a concrete class

* comments

* update changelog
ocelotl pushed a commit to ocelotl/opentelemetry-python that referenced this pull request Nov 11, 2021
* Make Measurement a concrete class

* comments

* update changelog
ocelotl pushed a commit to ocelotl/opentelemetry-python that referenced this pull request Nov 15, 2021
* Make Measurement a concrete class

* comments

* update changelog
ocelotl pushed a commit to ocelotl/opentelemetry-python that referenced this pull request Nov 17, 2021
* Make Measurement a concrete class

* comments

* update changelog
ocelotl added a commit that referenced this pull request Nov 18, 2021
* Adds metrics API (#1887)

* Adds metric prototype

Fixes #1835

* Fix docs

* Add API metrics doc

* Add missing docs

* Add files

* Adding docs

* Refactor to _initialize

* Refactor initialize

* Add more documentation

* Add exporter test

* Add process

* Fix tests

* Try to add aggregator_class argument

Tests are failing here

* Fix instrument parent classes

* Test default aggregator

* WIP

* Add prototype test

* Tests passing again

* Use right counters

* All tests passing

* Rearrange instrument storage

* Fix tests

* Add HTTP server test

* WIP

* WIP

* Add prototype

* WIP

* Fail the test

* WIP

* WIP

* WIP

* WIP

* Add views

* Discard instruments via views

* Fix tests

* WIP

* WIP

* Fix lint

* WIP

* Fix test

* Fix lint

* Fix method

* Fix lint

* Mypy workaround

* Skip if 3.6

* Fix lint

* Add reason

* Fix 3.6

* Fix run

* Fix lint

* Remove SDK metrics

* Remove SDK docs

* Remove metrics

* Remove assertnotraises mixin

* Revert sdk docs conf

* Remove SDK env var changes

* Fix unit checking

* Define positional-only arguments

* Add Metrics plans

* Add API tests

* WIP

* WIP test

* WIP

* WIP

* WIP

* Set provider test passing

* Use a fixture

* Add test for get_provider

* Rename tests

* WIP

* WIP

* WIP

* WIP

* Remove non specific requirement

* Add meter requirements

* Put all meter provider tests in one file

* Add meter tests

* Make attributes be passed as a dictionary

* Make some interfaces private

* Log an error instead

* Remove ASCII flag

* Add CHANGELOG entry

* Add instrument tests

* All tests passing

* Add test

* Add name tests

* Add unit tests

* Add description tests

* Add counter tests

* Add more tests

* Add Histogram tests

* Add observable gauge tests

* Add updowncounter tests

* Add observableupdowncounter tests

* Fix lint

* Fix docs

* Fix lint

* Ignore mypy

* Remove useless pylint skip

* Remove useless pylint skip

* Remove useless pylint skip

* Remove useless pylint skip

* Remove useless pylint skip

* Add locks to meter and meterprovider

* Add lock to instruments

* Fix fixmes

* Fix lint

* Add documentation placeholder

* Remove blank line as requested.

* Do not override Rlock

* Remove unecessary super calls

* Add missing super calls

* Remove plan files

* Add missing parameters

* Rename observe to callback

* Fix lint

* Rename to secure_instrument_name

* Remove locks

* Fix lint

* Remove args and kwargs

* Remove implementation that gives meters access to meter provider

* Allow creating async instruments with either a callback function or generator

* add additional test with callback form of observable counter

* add a test/example that reads measurements from proc stat

* implement cpu time integration test with generator too

Co-authored-by: Aaron Abbott <aaronabbott@google.com>

* Make measurement a concrete class (#2153)

* Make Measurement a concrete class

* comments

* update changelog

* Return proxy instruments from ProxyMeter (#2169)

* Merge main 4 (#2236)

* Add MeterProvider and Meter to the SDK

Fixes #2200

* Add FIXMEs

* Fix docstring

* Add FIXME

* Fix meter return

* Log an error if a force flush fails

* Add FIXME

* Fix lint

* Remove SDK API module

* Unregister

* Fix API names

* Return _DefaultMeter

* Remove properties

* Pass MeterProvider as a parameter to __init__

* Add FIXMEs

* Add FIXMEs

* Fix lint

* Add Aggregation to the metrics SDK

Fixes #2229

* lint fix wip

* Fix lint

* Add proto to setup.cfg

* Add timestamp for last value

* Rename modules to be private

* Fix paths

* Set value in concrete classes init

* Fix test

* Fix lint

* Remove temporalities

* Use frozenset as key

* Test instruments

* Handle min, max and sum in explicit bucket histogram aggregator

* Add test for negative values

* Remove collect method from aggregations

* Add make_point_and_reset

* Remove add implementation

* Remove _Synchronous

* Update opentelemetry-sdk/src/opentelemetry/sdk/_metrics/aggregation.py

Co-authored-by: Aaron Abbott <aaronabbott@google.com>

* Requested fixes

* Remove NoneAggregation

* Add changelog entry

* Fix tests

* Fix boundaries

* More fixes

* Update CHANGELOG.md

Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>

Co-authored-by: Aaron Abbott <aaronabbott@google.com>
Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approve Public API check This label shows that the public symbols added or changed in a PR are strictly necessary
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants