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

Search by error tag does not work #98

Closed
bocharovf opened this issue Oct 15, 2021 · 3 comments · Fixed by #103
Closed

Search by error tag does not work #98

bocharovf opened this issue Oct 15, 2021 · 3 comments · Fixed by #103
Labels
bug Something isn't working

Comments

@bocharovf
Copy link
Collaborator

Describe the bug
Filter "error=true" does not show traces with errors.

To Reproduce
Steps to reproduce the behavior:

  1. Use clickhouse storage plugin
  2. Run HotROD and produce some traces
  3. In Jaeger UI select "Redis" service and find traces. Check that there are traces with errors in Redis service.
  4. Add Tags filter "error=true"
  5. See "No trace results. Try another query."

Expected behavior
Traces with Redis error found

Screenshots
there are errors in traces

errors are in Redis

Redis errors not found

Version (please complete the following information):

  • OS: windows
  • Jaeger version: 1.27
  • Deployment: docker-compose
  • Clickhouse plugin version: 0.8
  • Clickhouse version: yandex/clickhouse-server:21

What troubleshooting steps did you try?
Tag filter works as expected with another tags (e.g. "param.driverID").
Error tag filter works with Elasticsearch plugin.

I use that docker-compose to compare ELK and Clickhouse storages.

@bocharovf bocharovf added the bug Something isn't working label Oct 15, 2021
@pavolloffay
Copy link
Member

cc) @EinKrebs

@rlex
Copy link

rlex commented Nov 1, 2021

Same issue. http.status_code=200 works fine, error=true returns empty results. Tested with jaeger hotrod.

@bocharovf
Copy link
Collaborator Author

Root cause: there could be more than one tag with the same name in tags.key / tags.value columns of jaeger_index_local table but we only check the first occurrence of it. This is because we also serialize events (logs) into tags.* column.

So we end up with multiple "error" tag:

client-uuid=534bc4dfd268070c
driver_id=T762908C
error=redis timeout
error=true
...
span.kind=client

image

And only first value could be found because we use filter tags.value[indexOf(tags.key, ?)] == ?
image

Seems there is no easy way to get all array indexes of values so it's hard to check all tag values.

Should we really support searching for events (log) attributes?
We could either stop serialize them into tags columns or at least prefix with "event." to distinguish from boolean error tag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants