opentelemetry-specification icon indicating copy to clipboard operation
opentelemetry-specification copied to clipboard

Stabilize synchronous gauge instrument API

Open jack-berg opened this issue 1 year ago • 1 comments

Synchronous gauge support was added in #3540 (August 2023). This is a tracking issue for stability.

Below are the PRs / issues tracking prototyping of this in various languages.

  • [x] Java: https://github.com/open-telemetry/opentelemetry-java/pull/5506
  • [ ] Go: https://github.com/open-telemetry/opentelemetry-go/issues/3984
  • [ ] C++: https://github.com/open-telemetry/opentelemetry-cpp/issues/2279
  • [x] Python: https://github.com/open-telemetry/opentelemetry-python/pull/3462
  • [ ] Erlang: https://github.com/open-telemetry/opentelemetry-erlang/issues/643
  • [ ] Javascript: https://github.com/open-telemetry/opentelemetry-js/issues/4296
  • [ ] Dotnet
  • [ ] Swift
  • [ ] PHP
  • [ ] Ruby
  • [ ] Rust

This comment seems to indicate that there may be prototypes available in C++ and .NET, but I couldn't find evidence of that.

Maintainers, please chime in on this issue with any relevant updates on prototypes.

jack-berg avatar Feb 21 '24 16:02 jack-berg

I noticed the sync gauge is not listed in the table here: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#sum-aggregation. Should it?

joaopgrassi avatar Feb 26 '24 10:02 joaopgrassi

There is an API and SDK prototype for JavaScript now, we'll soon merge an experimental version of this. https://github.com/open-telemetry/opentelemetry-js/pull/4528

pichlermarc avatar Apr 02 '24 08:04 pichlermarc

Thanks @pichlermarc - updated the issue descriptino to reflect that.

I noticed the sync gauge is not listed in the table here: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#sum-aggregation. Should it?

@joaopgrassi yes it should be.

jack-berg avatar Apr 02 '24 19:04 jack-berg

we have 3 prototypes now:

  • Java - https://github.com/open-telemetry/opentelemetry-java/pull/5506
  • Python - https://github.com/open-telemetry/opentelemetry-python/pull/3462
  • JS - https://github.com/open-telemetry/opentelemetry-js/pull/4528

I think that may be enough to move forward with stabilization?

trask avatar Apr 23 '24 17:04 trask

Its a bit of a grey area on whether something counts as a prototype if its a PR which hasn't been merged, or maybe the PR has been merged but it isn't consumable in a published artifact.

I'm inclined to say that this counts as a prototype, so long as the maintainers of that language confirm they didn't uncover any design issues along the way. After all, when we say that spec PRs much have associated prototypes, those are almost always just draft PRs or branches since a stronger requirement would cause a chicken and the egg problem.

@open-telemetry/javascript-maintainers can you comment on the JS PR linked above? Did you uncover any design issues along the way?

@open-telemetry/specs-metrics-approvers WDYT? Any objection to moving forward to stabilizing?

jack-berg avatar Apr 23 '24 17:04 jack-berg

@open-telemetry/specs-metrics-approvers WDYT? Any objection to moving forward to stabilizing?

I don't see issue here - synchronous gauge is something we were hoping to add but got deprioritized as we wanted to ship the initial version of metrics API/SDK spec. It is just yet-another-instrument so I don't anticipate a lot of controversy.

reyang avatar Apr 29 '24 16:04 reyang

can you comment on the JS PR linked above? Did you uncover any design issues along the way?

No design issues. :slightly_smiling_face:

In the JS SIG, we just don't have a proper mechanism in place yet to publish an experimental addition to the API, hence we cannot merge the PR until the spec stable or we've come up with such a mechanism.

Prototyping for experimental API features it is held up on a tooling update (https://github.com/open-telemetry/opentelemetry-js/pull/4648)

pichlermarc avatar Apr 29 '24 17:04 pichlermarc

Go PoC: https://github.com/open-telemetry/opentelemetry-go/pull/5280

MrAlias avatar Apr 29 '24 18:04 MrAlias

OTel Rust PoC (available under otel-unstable feature flags). https://github.com/open-telemetry/opentelemetry-rust/pull/1410 Tagging @lalitb who implemented the above as well.

cijothomas avatar Apr 29 '24 18:04 cijothomas

This https://github.com/open-telemetry/opentelemetry-specification/issues/2318#issuecomment-1868252688 seems to indicate that there may be prototypes available in C++ and .NET, but I couldn't find evidence of that.

No prototype in .NET yet.

cijothomas avatar Apr 29 '24 18:04 cijothomas