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

breaking changes in recent version #735

Open
epinault opened this issue Apr 25, 2024 · 6 comments
Open

breaking changes in recent version #735

epinault opened this issue Apr 25, 2024 · 6 comments

Comments

@epinault
Copy link

Hello

we are seeing this error after upgrading

span exporter threw exception: exporter=:opentelemetry_exporter exception error: bad generator {tracestate,[]}
  in function  otel_otlp_traces:'-to_tracestate_string/1-lc$^0/1-0-'/1 (/code/deps/opentelemetry_exporter/src/otel_otlp_traces.erl, line 134)
  in call from otel_otlp_traces:to_tracestate_string/1 (/code/deps/opentelemetry_exporter/src/otel_otlp_traces.erl, line 134)
  in call from otel_otlp_traces:to_proto/1 (/code/deps/opentelemetry_exporter/src/otel_otlp_traces.erl, line 88)
  in call from otel_otlp_traces:'-to_proto_by_instrumentation_scope/2-fun-0-'/2 (/code/deps/opentelemetry_exporter/src/otel_otlp_traces.erl, line 58)
  in call from lists:foldl/3 (lists.erl, line 1594)
  in call from otel_otlp_traces:to_proto_by_instrumentation_scope/2 (/code/deps/opentelemetry_exporter/src/otel_otlp_traces.erl, line 57)
  in call from otel_otlp_traces:to_proto/2 (/code/deps/opentelemetry_exporter/src/otel_otlp_traces.erl, line 34)
  in call from opentelemetry_exporter:export/4 (/code/deps/opentelemetry_exporter/src/opentelemetry_exporter.erl, line 259)

we had prior to the breakage:

 "opentelemetry": {:hex, :opentelemetry, "1.3.1", "f0a342a74379e3540a634e7047967733da4bc8b873ec9026e224b2bd7369b1fc", [:rebar3], [{:opentelemetry_api, "~> 1.2.2", [hex: :opentelemetry_api, repo: "hexpm", optional: false]}, {:opentelemetry_semantic_conventions, "~> 0.2", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: false]}], "hexpm", "de476b2ac4faad3e3fe3d6e18b35dec9cb338c3b9910c2ce9317836dacad3483"},
  "opentelemetry_api": {:hex, :opentelemetry_api, "1.2.2", "693f47b0d8c76da2095fe858204cfd6350c27fe85d00e4b763deecc9588cf27a", [:mix, :rebar3], [{:opentelemetry_semantic_conventions, "~> 0.2", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: false]}], "hexpm", "dc77b9a00f137a858e60a852f14007bb66eda1ffbeb6c05d5fe6c9e678b05e9d"},

We had an update to

 "opentelemetry": {:hex, :opentelemetry, "1.4.0", "f928923ed80adb5eb7894bac22e9a198478e6a8f04020ae1d6f289fdcad0b498", [:rebar3], [{:opentelemetry_api, "~> 1.3.0", [hex: :opentelemetry_api, repo: "hexpm", optional: false]}, {:opentelemetry_semantic_conventions, "~> 0.2", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: false]}], "hexpm", "50b32ce127413e5d87b092b4d210a3449ea80cd8224090fe68d73d576a3faa15"},
  "opentelemetry_api": {:hex, :opentelemetry_api, "1.3.0", "03e2177f28dd8d11aaa88e8522c81c2f6a788170fe52f7a65262340961e663f9", [:mix, :rebar3], [{:opentelemetry_semantic_conventions, "~> 0.2", [hex: :opentelemetry_semantic_conventions, repo: "hexpm", optional: false]}], "hexpm", "b9e5ff775fd064fa098dba3c398490b77649a352b40b0b730a6b7dc0bdd68858"},

all of these are minor changes, and not breaking change per the semantic. Yet this introduced a breakage . I see no mark of breaking changes https://github.com/open-telemetry/opentelemetry-erlang/blob/main/CHANGELOG.md

I am not sure what this error mean either but any idea what the issue might be?

@tsloughter
Copy link
Member

Looks like a bug then. What exporter version are you also using?

@epinault
Copy link
Author

yup exporter was 1.6.0

Just force to 1.7 and that worked. Seems that the dependencies are not in sync on what is needed then. 1.7 was required to upgrade but the dependency minmum was not correct

@epinault
Copy link
Author

just as a feedback, this happened already a while back for similar reason. Might need to figure a safer strategy to make sure the 3 packages are in sync with correct minimum version

@epinault
Copy link
Author

one suggestion, maybe use a meta package that is the onyl thing people depends on that one meta and get always the correct set of them?

@tsloughter
Copy link
Member

I don't know. Since applications should only depend on the api and then the sdk and exporter included only for the release (tho may be included as deps of the main application of a release) a metapackage may not be that helpful.

But I have also wanted to move out a package of opentelemtry_sdk , making opentelemtry a sort of metapackage and maybe it could depend on the exporter then.

@epinault
Copy link
Author

epinault commented May 1, 2024

you can always make the dependency optional in that meta package for the exported but you can mark it to be a minimum version

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

No branches or pull requests

2 participants