dwyl / learn-devops

🚧 Learn the craft of "DevOps" (Developer Operations) to Deploy your App and Monitor it so it stays "Up"!
GNU General Public License v2.0
417 stars 172 forks source link

How to setup Logging for Phoenix Web Applications #6

Open nelsonic opened 7 years ago

nelsonic commented 7 years ago

Which open source logging system should we use? Leaning towards ELK ... but if anyone knows a better one I'm all ears!

nelsonic commented 2 years ago

@SimonLab what do we need to do on Fly.io to have more advanced (e.g. searchable) logs? 🔍

SimonLab commented 2 years ago

I think Fly provides some metrics. I need to read: https://fly.io/docs/reference/metrics/ and https://fly.io/blog/measuring-fly/ to understand how they work.

nelsonic commented 2 years ago

@SimonLab that link

image

https://prometheus.io/

image

https://github.com/prometheus

image

https://github.com/prometheus/prometheus

image

Architecture overview

image

I feel like this makes sense for some people. But isn't really making the most of Elixir/OTP it's just sending the events a server and then we are forced to learn/write PromQL (Prometheus Query Language) to interact with the data https://prometheus.io/docs/prometheus/latest/querying/basics/

I feel like this is another case of "Databases with cool-sounding names" ... https://twitter.com/ThePracticalDev/status/800752571497545729?s=20&t=BKvsBFIhNOrepzhFwMEAMQ

image

not to be difficult, but I feel like this doesn't solve our problem. it will add infrastructure layers (i.e. complexity), learning curve and maintenance but not actually solve our problem.

Maybe I need to be clearer on what I want. 💭

I want to be as close to the Application Database as possible. I don't want to have to cross-reference multiple data sources / databases to run a basic query.

Leave this with me. You're very welcome to explore Prometheus. e.g. open a new issue in /technology-stack/issues timebox it and write-up your findings.

But from my perspective, having spent 30 mins reading through the docs, this feels like exactly the problem my Data Engineer buddy was describing in https://github.com/dwyl/technology-stack/issues/98 over-complicated stack that only 1 person (or worse, nobody) fully understands that doesn't get used because it's too complex. It fits a very specific use-case, I don't think it's ours, at least not yet ... ⏳