richardpringle

richardpringle

Managing non-Elixir applications with Elixir

So, I’ve been toying around with the idea of building application monitoring tools with Elixir. I can’t decide whether using the entire BEAM is worth adding just to manage other processes (non-Elixir processes).

I know there are already some great cloud-based tools for monitoring or process managing but I want to build some pretty custom logic depending on exits and stderr messages, etc.

A great tool that I already use is built with Node.js, called PM2, however, I don’t have the ability to add custom logic and even if I did… if I bug finds it’s way into my custom logic, Node.js isn’t fault-tolerant.

I’m not sure if many problems exist like this, but I am essentially trying to monitor blockchain nodes… Downtime is incredibly expensive because the nodes have to “catch-up” for the period in which new blocks were being created. There’s a whole slew of different custom logic triggers depending on the blockchain software’s behaviour. I hate to bring up blockchain because it’s such a buzzword, but I think that the problem could apply to any other log-based distributed system (monitoring kafka nodes for example).

Any thoughts?

Most Liked

dch

dch

personally, I’d add a simple /health style checkpoint to your app, expose it to something like collectd using its curl plugin for an up/down type check, and funnel the results into http://riemann.io/ I’ve been using this setup for a long time, across multiple customers, and it’s super flexible, and not overly hard to get your head around. You can set up multiple riemann servers that monitor each other if required, and you can get collectd to send data to multiple riemann instances as well. Cool kids these days would probably go for prometheus, but I’ve not tried that myself.

OvermindDL1

OvermindDL1

Not at all, it’s well suited to manage Ports too.

Where Next?

Popular in Discussions Top

andre1sk
A big advantage to Elixir is all the distributed goodness but for many applications running on multiple nodes having integrated Etcd, Zoo...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
Fl4m3Ph03n1x
Background This question comes mainly from my ignorance. Today is Black Friday, one of my favorite days of the year to buy books. One boo...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New
Ankhers
Just a little information upfront. Generally speaking, if I feel like I need to either break a pipe chain or use an anonymous function in...
New
tmbb
This is a post to discuss the new Phoenix LiveView functionality. From Chris’s talk, it appears that they generate all HTML on the serve...
342 18146 126
New
und0ck3d
Hello everyone! A few days ago I’ve created a topic here about how people were creating CMSs with Elixir and Phoenix. I’ve been studying...
New
Owens
Hello all, I am developing a new mobile app with Flutter frontend and Phoenix backend. The mobile app has real-time task management and c...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29377 241
New
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30877 112
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New

We're in Beta

About us Mission Statement