from Hacker News

Show HN: Distributed Tracing Using OpenTelemetry and ClickHouse

by vmihailenco on 12/28/21, 7:40 AM with 41 comments

  • by vmihailenco on 12/28/21, 7:46 AM

    Uptrace is an open source distributed tracing system that uses OpenTelemetry to collect data and ClickHouse database to store it. ClickHouse is the only dependency.

    Would be happy to answer your questions here.

  • by mritchie712 on 12/28/21, 1:20 PM

    Nice, I'm using Clickhouse to build Luabase[0]. I saw "ClickHouse cluster support" on your roadmap, are you just using a single node right now? How are you handling persistent storage?

    0 - https://luabase.com/

  • by tomnipotent on 12/28/21, 11:58 AM

    Is data being inserted into CH as it's received, or is there an intermediary buffer? A general overview of the flight of telemetry data through the system would be very welcome.
  • by shazzy on 12/28/21, 6:20 PM

    Uptrace looks really pretty interesting. I particularly like the query language that you can use to query your distributed trace data. This is the biggest limitation I have found with jaeger, lots valuable data is stored in storage, but it's very hard to analyze in aggregate.

    For example, a question I want to be able to answer with a query against the distributed trace data: show me the (mean, median) time between a parent http request and a child http request in the same trace tree. As far as I understand, this requires the query language to be able to group by trace id, then be able to identify parent/child relations.

    Does the Uptrace query language allow you to do something like this?

  • by drchaim on 12/28/21, 11:24 AM

    I've been thinking about mixing OpenTelemetry and CH for a while. There is a wild competition in this area, hope you luck and fun!
  • by rad_gruchalski on 12/29/21, 12:24 AM

    This solution has some great ideas but there’s always “but”.

    Main things distinguishing this from Jaeger are on the storage side. Jaeger has pluggable span writers and readers so it would be possible to do the same right in Jaeger.

    The UI part is probably more work than the actual storage but the default Jaeger UI is anyway not the main tool people tend to work with.

  • by pachico on 12/29/21, 6:32 AM

    Now that ClickHouse has released async writes you won't need to use the buffer engine anymore, which has been always a non recommended solution anyway.
  • by cpursley on 12/28/21, 8:22 AM

    Looks interesting. Can you share a couple of common use cases, say - for somebody running a typical saas app? Also, are there plans for an Elixir client?
  • by d-fal on 12/28/21, 8:22 AM

    This is quite cool piece of work. Would you please make a comparison between uptrace and jaeger?
  • by joshxyz on 12/29/21, 4:46 AM

    I wonder how this works well with cloki (loki for clickhouse)
  • by debuggerpk on 12/28/21, 1:03 PM

    how is different from datadog ?
  • by debuggerpk on 12/29/21, 11:35 AM

    how is it different from https://signoz.io

    signoz datastore is built with cassandra and yours with clickhouse.