You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
opentelemetry's StatusCode enum can be 0 (Unset), 1 (Ok)
or 2 (Error). otel specification says "don't ever use Ok, just leave it
unset".
So for, non-error spans, the opentelemetry-datadog exporter does the
right thing: it sets the datadog trace's status code to 0.
However, for errors, the opentelemetry-datadog exporter sets the
status_code to 2. This isn't explicitly discouraged by the available
Datadog docs, but it causes something really interesting: the trace
shows up with a "red" left border in Datadog APM (instead of a "green"
one). The "Ok/Error" filter filters those traces correctly. However,
half the UI is missing: when opening the trace, there's no '!' in the
left-hand corner, there's no "Errors (1)" tab, and there's no detail
of the error being shown in a user-friendly way.
tl;dr In the Datadog backend, there's some code that does "status_code
!= 0", and some code that does "status_code == 1". The 2 value isn't set
by their Go exporter, and so the opentelemetry-rust exporter should
never use it.
Co-authored-by: Amos Wenger <fasterthanlime@users.noreply.github.com>
0 commit comments