iluzone
Joined 8 years ago
Joined 8 years ago
If you want to self-host the App, it's pretty lightweight. While it's an Elixir app and you could compile and run it yourself, it comes packaged as a Docker image and it has a Kubernetes/Helm deployment documented. You can either point it to your own Postgres or it will launch its own so it can hold some of its own data like users, dashboards, monitors, etc. For 2-3 users one instance is plenty and you can easily run that on 1 CPU and 2GB RAM. Double that if you want redundancy.
Good luck with deepsql!
where the differences are clearer is who is it aimed for. Prometheus is a server you need to operate while Trifle pushes data into a database you already own. and then there’s a part that Prometheus scrapes for your data and you need a pushgateway to be able to push to it. one is build for infrastructure monitoring and the other is a library you use to push your increments.
about your update: dashboards are the easy side here. rendering one is a lookup for few points from pre-aggregated buckets. all you need is a key and a timeframe with granularity. unless you are trying to get something like 1 month worth of per-minute data, it will be quick.
if you want real isolation, you can give driver dedicated user with its own limits or point it to dedicated database. we started with Redis to keep it easy, then Postgres as I wanted to ensure persistance and ended up with MongoDB which handled the writes with ease.
That said, it really depends on the use case. For us the last 24h-48h holds the most value and anything older than that is just a reference where margin of error is acceptable. Even if we correct the historical data from 2 weeks ago, it wouldn't change the decisions we make today. For others it may be the opposite.
Tbh nothing stops you from doing both. Trifle is just a library that writes into your own database. If your data requires occasional re-analysis, write them into their own events table. Then you have the ability to rebuild the stats as you need to. I've seen both sides of the table, and as Trifle code lives with the rest of the code, it is simpler to handle this yourself than try to do this somehow via the App (which is optional in the first place) and UI.
Ecommerce with global delivery. We ship products from around the world all around the world. Our stack is Ruby on Rails and React. Kubernetes, Lambda and other fun tools.
Currently looking for Rails senior developers. Background in ecommerce and warehouse/fulfillment is important. Experience with scraping, automation, integrating 3rd party APIs and analytics is good to have.
Apply by emailing to jozef AT desertcart DOT com.
Ecommerce with global delivery. We ship products from around the world all around the world. Our stack is Ruby on Rails and React. Kubernetes, Lambda and other fun tools.
Currently looking for Rails senior developers. Background in ecommerce and warehouse/fulfillment is important. Experience with scraping, automation, integrating 3rd party APIs and analytics is good to have.
Apply by emailing to jozef AT desertcart DOT com.
but I would also say they sit at different layers. while OTel is a standard for emitting telemetry and data still ends up being stored in some backend (jaeger for traces, prometheus for metrics), Trifle keeps data in the database you already have. which was kinda my point from the beginning, you don't need a dedicated database/stack to do basic analytics. I believe the audiences differ a bit as well. OTel grew towards infra/observability, while Trifle mostly ends up tracking product/business counters. for now I don't see these as competition.
back in 2021 I also started working on Trifle::Traces. which is a really (really!) simple tracing library for Ruby to wrap your code in different tracing blocks - I really disliked the idea of having puts statements everywhere and then patching stuff together in raw logs. at the end you get nicely structured output that is then completely up to you how you store it. we ended up putting searchable metadata in MongoDB and actual data in S3. then we built a small internal UI around it. ngl it sounds awfully like OTel tracing and jaeger.
so yea, that's a fair question. if OTel had been where it is today back then, maybe I would have fewer repos. I believe we often get lost thinking that we need these big tools to do basic things. to me, this is the gap that Trifle fills.