Closed canteversleep closed 1 week ago
I think this issue is something that is resulting from a dependency version mismatch for the opentelemetry. I'll look into a fix for this.
Can you speak to the specific mismatch which may be occurring? We may be able to assist via PR if the issue is trivial.
My best guess is that when Blueprint does go mod tidy
in the generated code, it starts using opentelemetry version 1.27.0 but the Blueprint dependency is on version 1.26.0.
Float64Gauge is only available in otel version 1.27.0.
As a quick workaround, on your local Blueprint repo, you can try upgrading Blueprint's otel dependency to 1.27.0 and that should fix it for now. I'll probably be posting this exact fix by tonight (Pacific Time) after running some tests.
Ideally, we should have a mechanism where we have the ability to specify the dependency of a version when generating code and that is a non-trivial fix (and I am looking into it).
Closing this issue as it was fixed in #178
If that can help for the future, reading here https://pkg.go.dev/go.opentelemetry.io/otel/metric
it says new specifications can be added to the API without a major version bump. Could it be that they added the Float64Gauge
to the API specifications go.opentelemetry.io/otel/metric
in v1.26, but they added an API implementation go.opentelemetry.io/otel/sdk/metric
of it only starting from v1.27?
Blueprint using v1.26 for the sdk, then the error.
No, I checked their API specs. The name of the method for the Float64Gauge changed from v1.26 to v1.27 which caused the mismatch.
Regardless, the dependency version in the generated systems should be fixed to v1.26 as well so this shouldn't be an issue in the future.
We thank the authors for publishing and maintaining this work. We have been trying to run experiments with Blueprint for a paper we are currently writing, but multiple of the example builds have been throwing a similar error in the
docker compose up
step, which has to do with the open. We note that this only occurs in the examples in which the wiring spec uses the open telemetry plugin. We suspect that this is where the issue arises.We’ve attached the following stack traces where this issue arises:
DSB_Hotel:
SockShop:
Edit: changing the wire specs for the aforementioned examples and removing the opentelemetry plugin results in working Docker builds.
Please advise regarding this issue and regarding anything we may do to support its resolution.