top | item 45293788

(no title)

akshayKMR | 5 months ago

I've been putting off a self-hosted observability setup for a long time. Any recommendations on basis ease of setup and operation? (For something low-medium scale).

My ideal setup would be to just write SQL on telemetry data and plot dashboards / set alerts.

Also, thoughts on Vector vs otel agent?

discuss

order

srcreigh|5 months ago

HyperDX is really great. It is basically SQL on telemetry data in clickhouse.

Don’t use vector or otel-agent. Add a materialized view in clickhouse to transform data and swap HyperDX to load from your view (in the UI.)

Jedd|5 months ago

> For something low-medium scale.

This isn't a lot to go on.

The important thing is what you're trying to instrument - hosts, applications, network, microservices, all of the above? (And then whether you want a few weeks retention, or keeping years worth.)

Grafana in front of Prometheus with node-exporter or telegraf (it can expose in prometheus mode) on the clients -- will tick a lot of boxes and is fast to get going.

Grafana in front of InfluxDB + telegraf is similar, but personally I find PromQL easier than InfluxQL.

> ... write SQL on telemetry data and plot dashboards / set alerts.

Read up about the design of TSDBs and log / tracing datastores - their design & intent heavily influences their query languages.

diurnalist|5 months ago

> Also, thoughts on Vector vs otel agent?

IMO, with the current tech, it entirely depends on what data you're talking about.

For metrics and traces, I would use the OTel collector personally. You will have much more flexibility and it's pretty easy to write custom processors in Go. Support for traces is quite mature and metrics isn't far off. We've been running collectors for production scale of metric and trace ingest for the past couple of years, on the order of 1m events/sec (metric datapoints or spans). You mentioned low volume so that's less important, but I just wanted to mention in case others find this comment.

Logs are a bit different. We looked in to this in the past year. Vector has emerging support for OTLP but it's pretty early. Still, I bet it's pretty straightforward if your backend can ingest via OTLP. Our main concern with running the otel-collector as the log ingest agent was around throughput/performance. Vector is battle-tested, otel is still a bit early in this space. I imagine over time the gap will be closed but I would probably still reach for Vector for this use-case for higher scale. That said, YMMV and as with any technical decision, empirical data and benchmarking on your workloads will be the best way to determine the tradeoffs.

For your scale you could probably get away with an OTel collector daemonset and maybe a deployment with the Target Allocator (to allocate Prometheus scrapes) and call it a day :)

GordonS|5 months ago

I'm using OpenObserve - it does logs, metrics and traces all under one roof. Handles alerts too.

It's been solid, but the UI is kind of clunky and a little buggy here and there. Dashboards are tricky to setup too. But it has no dependencies, and was easy to setup, and I couldn't find anything else that handled logs too.

pranay01|5 months ago

you might want to take a look at SigNoz - https://github.com/SigNoz/signoz logs, metrics & traces in a single pane and you can create advanced alerts and dashboards as well

PS: I am one of the maintainers

cyberax|5 months ago

I've been using Uptrace in our docker-compose local setup. It runs just fine on a MacBook Air, and has support for tracing, metrics, and logs.

The UI is predictably an annoying mess, but that's the case with EVERY tracing solution I've tried. Very much including SigNoz.

pranay01|5 months ago

SigNoz maintainer here. Curious, when did you try SigNoz (which version/which timeframe) and any specific feedback on what you don't like about it's tracing UI? Would be helpful for us to understand areas to improve on

oulipo2|5 months ago

I've been looking at HyperDX (ClickStack) and SigNoz, but those indeed are coupled

srcreigh|5 months ago

I tried both. Signoz is pretty sloppily built. For ex the self hosted option starts a ZK instance with 1 clickhouse host-no way to disable, 800MB ram. Signoz log transformation tool is broken and confusing.

HyperDX is just a lot better, sure a few papercuts but they got all the important stuff right imo.

PeterZaitsev|5 months ago

You can also consider https://coroot.com - it supports integration both with Collector and without as well as simulated eBPF traces for applications which are not Otel enabled.

sdairs|5 months ago

Sounds like you should take a look at ClickStack (HyperDX) to me

ndhandala|5 months ago

OneUptime does this with otel. Happy to help! Feel free to reach out at nawazdhandala [at] oneuptime [dot] com