Make
your system
observable

INTRO

RabbitMQ Core Engineer

Gerhard Lazu

gerhardlazu   gerhard

😤 🤬 🤯

Context

😤

Peekaboo! 😤

WHAT IS RABBITMQ?


It’s not what you think

Many distributed sets of apps

Many distributed sets of apps

With shared & non-shared state

Shared & non-shared state

Many distributed sets of apps

With shared & non-shared state

That is continuously flowing

That is continuously flowing

Many distributed sets of apps

With shared & non-shared state

That is continuously flowing

In a complete graph cluster

In a complete graph cluster

Many distributed sets of apps

With shared & non-shared state

That is continuously flowing

In a complete graph cluster

Which is adapting to the cloud

Which is adapting to the cloud

Not born,
adapted

Great, but I don’t 🤬 care


Why is the page not loading?

🤯

Make me understand 🤯

Make it scale

😤 🤬 🤯


😤 🤬 🤯


😤 🤬 🤯

How does this relate to my Ruby?

How does this relate?

ERLANG RUBY
Message passing Message passing
Processes respond to messages Objects respond to messages
Love-hate relationship with memory Love-hate relationship with memory
Phoenix web framework Rails web framework
@michaelklishin @michaelklishin

Expected to run well in the cloud K8S

The great UNIFIER

Or at least explain, understand & improve

WHERE SHOULD I BEGIN?

What is RabbitMQ?

WHERE SHOULD I BEGIN?

What is most important?

Why does this matter?

12 Expose metrics

Choose standards

Choose standards, not products

22 Visualize metrics

Et voilá!

We started by

We continued by

We are now

Because sharing is caring

Other alternatives

  • New Relic / Datadog / Dynatrace / Grafana E.
  • LighStep / Honeycomb / Wavefront
  • etc.

Do what works for you


Only you can answer this

WHAT IS IMPORTANT?

What is RabbitMQ?

Where should I begin?

WHAT IS MOST IMPORTANT?

Why does this matter?

Focus on the story that you are telling

Focus on the story

  • What questions are you answering?
  • Which part of the system are you describing?
  • What is the correlation between various elements shown?

Let me share a story about memory

Let me share a story

Out of 1,000 issues

200 are about memory

Start by counting the right memory

So counting the right memory

Improve memory allocators defaults

and better mem_alloc defaults

and easy concepts

that are well-correlated

at the right level

made improving easy

Make it easy to improve,
so that improving is easy,
and so that anyone can do it

Make it easy to improve

WHY DOES THIS MATTER?

What is RabbitMQ?

Where should I begin?

What is most important?

WHY DOES THIS MATTER?

An increasing number of people
depend on the software
that you develop.

People depend on it

Make it understandable,
simple to work with,
and predictable.

People appreciate simple

Software is means to an end,
it’s not an end in itself.

It’s means to an end

Look around…

You are not alone, first or last.
Learn from others, and pass it on,
like I am doing now.

Learn from others & pass it on

That’s what makes nice things

And builds healthy ecosystems

Download it

Look at it

Read about it

Understand it

Explore further

Maybe learn more this coming Thursday

And maybe learn more

Four other versions of this talk