-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Verify compliant metric API specification implementation: Instrument General Characteristics #3373
Comments
Our instruments are partitioned on number type ( |
Both of these statements apply to the implementation of the API not the API. |
Our no-op implementation does not comply with the second statement. This seems like a bug in the specification though. |
|
Again this is a criteria for the implementation of the API, the API holds not state therefore it cannot detect duplicate instrument registration conflicts. Our no-op implementation does not comply with this statement. Again though, I think this is a bug in the specification (see open-telemetry/opentelemetry-specification#3071) |
It is not clear if this must be validated in the API or not. Tracking this question in open-telemetry/opentelemetry-specification#3072. |
The unit option is not validated or transformed by the API (or SDK for that matter). opentelemetry-go/metric/instrument/config.go Lines 63 to 69 in a54167d
The opentelemetry-go/metric/unit/unit.go Lines 17 to 25 in a54167d
Thus, our implementation complies. |
In Go the default zero value of a Our implementation is compliant with this. |
In Go the Our implementation is compliant with this. |
The instrument description is defined as a opentelemetry-go/metric/instrument/config.go Lines 25 to 28 in a54167d
It is not validated by the API: opentelemetry-go/metric/instrument/config.go Lines 55 to 61 in a54167d
opentelemetry-go/metric/instrument/config.go Lines 40 to 47 in a54167d
Our implementation is compliant with this. |
The default description is an empty |
Go Our implementation is compliant with this. |
The opentelemetry-go/metric/meter.go Lines 44 to 55 in efd8a7d
opentelemetry-go/metric/meter.go Lines 70 to 82 in efd8a7d
And the options are defined here: opentelemetry-go/metric/instrument/config.go Lines 55 to 69 in efd8a7d
There is still the open question about the instrument name validation (mentioned here), but outside of that our implementation is compliant. It's important to note, we are looking to change the options passed to this API in #3507, but it will preserve this API conforming to this requirement. |
The opentelemetry-go/metric/meter.go Lines 56 to 68 in efd8a7d
opentelemetry-go/metric/meter.go Lines 82 to 96 in efd8a7d
And the options are defined here: opentelemetry-go/metric/instrument/config.go Lines 55 to 69 in efd8a7d
There is still the open question about the instrument name validation (mentioned here), but outside of that our implementation is compliant. Currently the API only allows the creation of these instruments with zero callbacks. #3507 has been created to address the non-compliance of the API not allowing the creation of more than zero callbacks. |
Our implementation supports this recommended feature. opentelemetry-go/metric/meter.go Lines 98 to 109 in efd8a7d
|
The opentelemetry-go/metric/meter.go Lines 112 to 119 in efd8a7d
Our implementation is compliant. |
This does not seem to apply to the API, but to it's implementation. |
Our implementation is currently not compliant.
|
Updated in 2fcf8cd |
Tracking in #3563 |
These both look like incorrect usages of normative key words. For what it's worth, we do decide on an idiomatic approach to capturing measurements 🤷 . |
We allow this: opentelemetry-go/metric/meter.go Line 109 in efd8a7d
|
Our API currently does not do this. It assumes the association is correctly done within a I think our API may be out of compliance here. It seems relevant to #3519, but that issue may be more motivated now that it has been identified our implementation is out of compliance. |
Our API is designed to support this. The related instruments should be passed with the instruments they expect to update. However, this is not enforced through any code. |
Again, this looks to be an implementation detail. The API does not call the Callback in a collection cycle, the SDK does. |
The parameter |
Not really a normative option, but we do make a decision here. 🤷 |
The specification is going to move slower than we can. I've opened #3565 to track a local fix. |
All outstanding items have been resolved. Closing. |
The text was updated successfully, but these errors were encountered: