Alex Koutmos' Blog

In my first blog post I cover how to package an Elixir 1.9 release within a Docker container using multi-stage builds. I also go over introspecting the running app with observer_cli. Check it out!

16 Likes

In this blog post I cover how to add error monitoring to your Elixir+Phoenix application using Sentry. Check it out!

6 Likes

Ever wondered how to use Prometheus and PostGIS within your Phoenix application? Check out Part 1 of my 2 part series:

4 Likes

Part 2 of the Prometheus+PostGIS+Phoenix series is now published. Check it out if you want to learn how to make cool dashboards like the one below.

9 Likes

Really liked going through this! Very well explained. The stress tester with the erlang modules was a sweet surprise :wink:

I would love a Prometheus and Grafana deep dive! Hope I’m not alone here :grin:

1 Like

Glad you enjoyed the tutorial :smiley:. I’ll be releasing my next post later this week on RabbitMQ+Broadway. I’ll put something in the queue for Prom and Grafana though. Stay tuned!

2 Likes

In this blog post I cover how to setup RabbitMQ along side Broadway to create a powerful yet simple data processing pipeline. Check out Part 1!

4 Likes

Part 2 of my RabbitMQ + Broadway series is up on my blog at

Check it out and learn how to use RabbitMQ+Broadway and monitor your pipeline with Prometheus and Grafana!

You’ll have to scroll all the way to the bottom to see the trend data on HackerNews for Elixir and Erlang :smiley:

2 Likes

Ever wonder how you could write a rate limiter in Elixir? Check out my latest post to learn about GenServers, Task.Supervisor and Erlang’s built in queue data structure.

4 Likes

I haven’t been able to deploy the docker-compose.yml in this project(the elixir_app service fails). So I made another project which builds the elixir app from a local Dockerfile.

I got it running and deploying but I had to disable prometheus_process_collector because it was crashing at startup on both Linux and MacOS.

Another issue I noticed with my repo is that the Brewery Search does not render metrics(have not investigated root cause) but everything else seems to work OK.

Howdy!

Thanks for giving the blog tutorial a whirl…and sorry about the issue that you came across. I am currently not on my Linux machine so I can’t comment on the Linux side of things. But I did have an issue on my MacBook with Docker. Seems like when I was trying to shadow the volume mount it didn’t take (I could have sworn this worked on my Linux box, but I can’t verify at the moment).

This updated docker-compose.yml elixir_app section seems to sort out that Docker issue:

elixir_app:
  image: elixir:1.9.1
  command: >
    /bin/sh -c 'apt-get update && apt-get install -y inotify-tools &&
    mix local.hex --force &&
    mix local.rebar --force &&
    mix deps.get &&
    mix ecto.setup &&
    mix phx.server'
  ports:
    - '4000:4000'
  depends_on:
    - postgres
  working_dir: /app
  volumes:
    - ./config:/app/config:ro
    - ./lib:/app/lib:ro
    - ./priv:/app/priv:ro
    - ./.formatter.exs:/app/formatter.exs:ro
    - ./mix.exs:/app/mix.exs:ro
    - ./mix.lock:/app/mix.lock:ro
    - elixir-deps:/app/deps/
    - elixir-build:/app/_build/

As for the metrics not showing up, I just ran the stress tester in the repo and looks like things are working on that front (after the docker fix).


Let me know if you have issues after that docker fix or if you can provide additional information as to the error.

I see so it was a volume issue. It’s working great on Linux Mint/Ubuntu now, thanks.

2 Likes

Glad to hear it works now! And thanks for letting me know about the issue. Really appreciate the feedback :). I’m fixing the blog and the repo now with the changes.

2 Likes