Live data from Hacker News

Riemann – A network monitoring system

riemann.io

101–109 of 109 posts

Re: Riemann – A network monitoring system

#101
post #35

Earlier quoted context omitted.

Clojure is a bigger language than small custom DSL.

Custom DSLs eventually pick up those things, anyway. Greenspun's 10th rule? http://c2.com/cgi/wiki?GreenspunsTenthRuleOfProgramming

I had forgotten about this... Thanks!

Re: Riemann – A network monitoring system

#102
post #97
post #40

Earlier quoted context omitted.

> Config file isn't a config file, it's an executed bit of Clojure code For stream processing engines, configuration will be code. Unfortunate, but unavoidable. > Riemann is not a replacement for an alerting mechanism > Riemann is not a replacement for a trend graphing mechanism. Indeed it is not. It's misadvertised as a monitoring solution, while it's a stream processing engine. What I think of it is that you're sup…

> For stream processing engines, configuration will be code. Unfortunate, but unavoidable. How so? Kafka is a stream processing engine that uses plain old Zookeeper data structures for config. Edit: Kafka also seems to have the missing features you mentioned if Riemann should be taken seriously as a general-purpose stream processing engine.

I would argue Kafka isn't a stream processing engine so much as a stream shipping engine. Kafka barely looks at the content of your messages.

I'd also argue that Zookeeper nodes are anything but "plain" :)

Re: Riemann – A network monitoring system

#103
post #52
post #40

Earlier quoted context omitted.

> Config file isn't a config file, it's an executed bit of Clojure code For stream processing engines, configuration will be code. Unfortunate, but unavoidable. > Riemann is not a replacement for an alerting mechanism > Riemann is not a replacement for a trend graphing mechanism. Indeed it is not. It's misadvertised as a monitoring solution, while it's a stream processing engine. What I think of it is that you're sup…

It seems like having a small tool to turn yaml files into basic clojure code for easy rulesets would be an easy extension. It might encourage Bad behavior and of course it couldn't do everything ... just an idea.

That would actually be quite easy to do in clojure without the need for an external tool by writing a clojure macro that reads the other format and emits the s-expressions that represent it.

Re: Riemann – A network monitoring system

#104
We use Riemann to track all requests on Apis amongst other things. Have become rather fond of it. It happily handles 40k events p/s on rather modest hardware. The dashboard is not the prettiest but it is functional. Overall it has proved invaluable for spotting anomalies in our metrics.

Re: Riemann – A network monitoring system

#105
post #96

Earlier quoted context omitted.

> The lack of a plugin system We have many ways to plugin to Prometheus across the ecosystem, the textfile collector you're using is one of them. > You can't run 23 different daemons, each on their own port, to collect stats from things like PostgreSQL stats or RabbitMQ. There's no fundamental challenge with this approach. If you've got good basic infrastructure, particularly configuration management, the rollout of…

> If you've got good basic infrastructure [...] We do have good basic infrastructure, thanks. We use Puppet and have a decent deploy system that performs atomic deploys from Git. We also do think in terms of services. But the exporter has to run somewhere. About half of our exporters are machine-specific (reads local stats from files or proc or whatever), about half run on the Prometheus node itself and talk to servi…

> (reads local stats from files or proc or whatever)

If there's useful stats from /proc we're missing, we accept PRs.

> about half run on the Prometheus node itself and talk to services like ElasticSearch or Postgres.

That doesn't sound right, those two should run on the ES/Postgres nodes.

Only things like the blackbox exporter and snmp exporter should be considered for running beside Prometheus.

> When I have time, my plan is to write a small HTTP server that spawns plugin as subprocesses that emit their metrics via stdout, which seems like a much more reasonable, low-maintenance solution, and something node_exporter ought to support in the first place.

We went with the textfile collector approach, rather than reinventing cron.

Re: Riemann – A network monitoring system

#107
post #86
post #36

Earlier quoted context omitted.

Functional means different things to different people. By all means learn Clojure, but also learn a functional language with a first-class type system (e.g. Haskell).

Ah, Haskell. I find it equal parts fascinating and scary. I definitely won't start at Haskell, although I would surely want to come to it at some point of time. Static typing looks nice.

OCaml might be a friendlier option (though you'll want HKTs eventually, and the syntax is a bit ugly), or maybe Ceylon if you're willing to go a bit less mainstream. (I'm a Scala programmer myself, but I can't really recommend it unless you're already familiar with the JVM and its oddities, there are a lot of warts that have to be there for Java compatibility).

But yeah, there's the Lisp tradition and the typed tradition and they're almost entirely separate, but through accidents of history we call them both "functional". So in the same way that you'd learn an OO language and a functional language, I'd say it's worth learning one of each.

Re: Riemann – A network monitoring system

#108

Earlier quoted context omitted.

> If you've got good basic infrastructure [...] We do have good basic infrastructure, thanks. We use Puppet and have a decent deploy system that performs atomic deploys from Git. We also do think in terms of services. But the exporter has to run somewhere. About half of our exporters are machine-specific (reads local stats from files or proc or whatever), about half run on the Prometheus node itself and talk to servi…

> (reads local stats from files or proc or whatever) If there's useful stats from /proc we're missing, we accept PRs. > about half run on the Prometheus node itself and talk to services like ElasticSearch or Postgres. That doesn't sound right, those two should run on the ES/Postgres nodes. Only things like the blackbox exporter and snmp exporter should be considered for running beside Prometheus. > When I have time,…

Sorry, I misspoke. Only non-machine-specific collectors run on the Prometheus machine.

> rather than reinventing cron.

But Prometheus already has a job interval setting. With text files emitted with cron jobs, you get the silly effect where metrics are produced at intervals which don't correspond with the job interval.

Post reply on HN