SlideShare a Scribd company logo
Troubleshooting
RabbitMQ
and services that use it
Who am I?
• Staff Engineer, RabbitMQ @ Pivotal
Who am I?
• Staff Engineer, RabbitMQ @ Pivotal
• @michaelklishin, github.com/michaelklishin
Troubleshooting RabbitMQ and Microservices That Use It
The monolith problem
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting publishers
Troubleshooting publishers
• I/O exceptions (shutdown handlers)
Troubleshooting publishers
• I/O exceptions (shutdown handlers)
• Publisher confirms
Troubleshooting RabbitMQ and Microservices That Use It
When in doubt, borrow
ideas from TCP
Troubleshooting publishers
• I/O exceptions (shutdown handlers)
• Publisher confirms
• Returned message handlers
Troubleshooting publishers
• I/O exceptions (shutdown handlers)
• Publisher confirms
• Returned message handlers
• Invalid payload (e.g. fails to deserialize or
decrypt)
Troubleshooting publishers
• I/O exceptions (shutdown handlers)
• Publisher confirms
• Returned message handlers
• Invalid payload (e.g. fails to deserialize or
decrypt)
• Identifying publisher instances
Troubleshooting publishers
• identifying blocked (throttled) publishers
Client-provided
connection names in
RabbitMQ 3.6.3+
Troubleshooting publishers
• identifying blocked (throttled) publishers
• retries
Troubleshooting publishers
• spring-amqp can cover all of the above
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting consumers
Troubleshooting consumers
• I/O exceptions
Troubleshooting consumers
• I/O exceptions
• Inadequate delivery QoS
Troubleshooting consumers
• I/O exceptions
• Inadequate delivery QoS
• Lack of confirmations; double-confirming
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting consumers
• I/O exceptions
• Inadequate delivery QoS
• Lack of confirmations; double-confirming
Troubleshooting consumers
• I/O exceptions
• Inadequate delivery QoS
• Lack of confirmations; double-confirming
• Redelivery metrics
Troubleshooting consumers
• I/O exceptions
• Inadequate delivery QoS
• Lack of confirmations; double-confirming
• Redelivery metrics
• Identifying consumer instances
Troubleshooting consumers
• Consumer utilization (reported by HTTP API)
Troubleshooting consumers
• spring-amqp can help with some of the above
Troubleshooting RabbitMQ and Microservices That Use It
— W. Edwards Deming
“In God we trust, all others must bring data…”
— W. Edwards Deming
“In God we trust, all others must bring data…”
— What do you do for
a living?
— What do you do for a living?
— Tell people to read the logs.
Sources of data useful for
debugging
Sources of data useful for
debugging
• Metrics
Sources of data useful for
debugging
• Metrics
• Your logs
Sources of data useful for
debugging
• Metrics
• Your logs
• Someone else's logs
Sources of data useful for
debugging
• Metrics
• Your logs
• Someone else's logs
• Tracing data
Sources of data useful for
debugging
• Metrics
• Your logs
• Someone else's logs
• Tracing data
• Wireshark (tcpdump, libpcap)
Troubleshooting RabbitMQ and Microservices That Use It
Troubleshooting RabbitMQ and Microservices That Use It
Collecting data from
RabbitMQ
Collecting data from
RabbitMQ
• Logs
Collecting data from
RabbitMQ
• Logs
• rabbitmqctl status
Collecting data from
RabbitMQ
• Logs
• rabbitmqctl status
• rabbitmqctl environment
Collecting data from
RabbitMQ
• Logs
• rabbitmqctl status
• rabbitmqctl environment
• rabbitmq-top (ships with RabbitMQ as of 3.6.3)
Collecting data from
RabbitMQ
• Logs
• rabbitmqctl status
• rabbitmqctl environment
• rabbitmq-top (ships with RabbitMQ as of 3.6.3)
• HTTP API (lots of metrics)
http://{hostname}:15672/api
curl -u guest:guest http://127.0.0.1:15672/api/overview | python -m json.tool
curl -u guest:guest http://127.0.0.1:15672/api/nodes/{node} | python -m json.tool
curl -u guest:guest http://127.0.0.1:15672/api/queues | python -m json.tool
Collecting data from
RabbitMQ
• Logs
• rabbitmqctl status
• rabbitmqctl environment
• rabbitmq-top (ships with RabbitMQ as of 3.6.3)
• HTTP API (lots of metrics)
• Message tracing ("firehose")
Collecting data from
RabbitMQ
• HTTP API (lots of metrics)
• Message tracing ("firehose")
• Infrastructure metrics
Troubleshooting RabbitMQ and Microservices That Use It
Common theme?
Common theme?
• Collect logs system-wide
Common theme?
• Collect logs system-wide
• Collect metrics system-wide
Common theme?
• Collect logs system-wide
• Collect metrics system-wide
• Collect exceptions system-wide
Common theme?
• Collect logs system-wide
• Collect metrics system-wide
• Collect exceptions system-wide
• Trace requests (e.g. with Zipkin)
Common theme?
• Collect logs system-wide
• Collect metrics system-wide
• Collect exceptions system-wide
• Trace requests (e.g. with Zipkin)
• Analyze
Troubleshooting RabbitMQ and Microservices That Use It
Common theme?
• Collect logs system-wide
• Collect metrics system-wide
• Collect exceptions system-wide
• Trace requests (e.g. with Zipkin)
• Analyze
• Sounds like something a structured platform can help
with!
Distributed system
debugging is a problem
far from being solved.
Troubleshooting RabbitMQ and Microservices That Use It
Thank you
Thank you
• @michaelklishin
Thank you
• @michaelklishin
• github.com/michaelklishin
Thank you
• @michaelklishin
• github.com/michaelklishin
• mklishin@pivotal.io

More Related Content

PDF
Improvements in RabbitMQ
PDF
Dissecting the rabbit: RabbitMQ Internal Architecture
PDF
RabbitMQ Data Ingestion at Craft Conf
PDF
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
PDF
RabbitMQ Data Ingestion
PPTX
RabbitMQ Model and Some Example Applications
PDF
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
PDF
Troubleshooting RabbitMQ and services that use it
Improvements in RabbitMQ
Dissecting the rabbit: RabbitMQ Internal Architecture
RabbitMQ Data Ingestion at Craft Conf
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
RabbitMQ Data Ingestion
RabbitMQ Model and Some Example Applications
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Troubleshooting RabbitMQ and services that use it

What's hot (20)

PDF
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
PPTX
Scaling application with RabbitMQ
PDF
PDF
RabbitMQ Operations
PDF
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
KEY
Ruby 1.9 Fibers
PDF
The details of CI/CD environment for Ruby
PDF
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
PDF
Rabbitmq, amqp Intro - Messaging Patterns
PDF
20140925 rails pacific
PDF
Ruby Security the Hard Way
PDF
Async and Non-blocking IO w/ JRuby
PDF
The Future of Bundled Bundler
PDF
Concurrency in Python
KEY
Leave end-to-end testing to Capybara
ODP
Developing high-performance network servers in Lisp
PDF
Developing Java based microservices ready for the world of containers
PDF
Streaming millions of Contact Center interactions in (near) real-time with Pu...
PDF
I can't believe it's not a queue: Kafka and Spring
KEY
Devignition 2011
Alvaro Videla, Building a Distributed Data Ingestion System with RabbitMQ
Scaling application with RabbitMQ
RabbitMQ Operations
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Ruby 1.9 Fibers
The details of CI/CD environment for Ruby
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Rabbitmq, amqp Intro - Messaging Patterns
20140925 rails pacific
Ruby Security the Hard Way
Async and Non-blocking IO w/ JRuby
The Future of Bundled Bundler
Concurrency in Python
Leave end-to-end testing to Capybara
Developing high-performance network servers in Lisp
Developing Java based microservices ready for the world of containers
Streaming millions of Contact Center interactions in (near) real-time with Pu...
I can't believe it's not a queue: Kafka and Spring
Devignition 2011
Ad

Similar to Troubleshooting RabbitMQ and Microservices That Use It (20)

KEY
London devops logging
PDF
«Scrapy internals» Александр Сибиряков, Scrapinghub
PDF
Prometheus Is Good for Your Small Startup - ShuttleCloud Corp. - 2016
PDF
Follow the White Rabbit - Message Queues with PHP
PDF
Measuring CDN performance and why you're doing it wrong
PDF
Aerospike Go Language Client
PDF
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
PDF
Oracle GoldenGate and Apache Kafka: A Deep Dive Into Real-Time Data Streaming
PPTX
Troubleshooting common oslo.messaging and RabbitMQ issues
PDF
Training Slides: 151 - Tungsten Replicator - Moving your Data
PDF
Measuring CDN performance and why you're doing it wrong
PDF
Debugging applications with network security tools
PPTX
Enumeration
PPT
Cdn cs6740
PDF
Simplifying Event Streaming: Tools for Location Transparency and Data Evoluti...
PPTX
PDF
Docker, Monitoring and SLURM Specific Visualisations
PDF
Oracle GoldenGate Architecture Performance
PDF
OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
PDF
OSMC 2016 | Monitor your Infrastructure with Elastic Beats by Monica Sarbu
London devops logging
«Scrapy internals» Александр Сибиряков, Scrapinghub
Prometheus Is Good for Your Small Startup - ShuttleCloud Corp. - 2016
Follow the White Rabbit - Message Queues with PHP
Measuring CDN performance and why you're doing it wrong
Aerospike Go Language Client
Introduction to Apache ZooKeeper | Big Data Hadoop Spark Tutorial | CloudxLab
Oracle GoldenGate and Apache Kafka: A Deep Dive Into Real-Time Data Streaming
Troubleshooting common oslo.messaging and RabbitMQ issues
Training Slides: 151 - Tungsten Replicator - Moving your Data
Measuring CDN performance and why you're doing it wrong
Debugging applications with network security tools
Enumeration
Cdn cs6740
Simplifying Event Streaming: Tools for Location Transparency and Data Evoluti...
Docker, Monitoring and SLURM Specific Visualisations
Oracle GoldenGate Architecture Performance
OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
OSMC 2016 | Monitor your Infrastructure with Elastic Beats by Monica Sarbu
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
PDF
What AI Means For Your Product Strategy And What To Do About It
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
PPTX
Enhancing DevEx and Simplifying Operations at Scale
PDF
Spring Update | July 2023
PPTX
Platforms, Platform Engineering, & Platform as a Product
PPTX
Building Cloud Ready Apps
PDF
Spring Boot 3 And Beyond
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
PPTX
tanzu_developer_connect.pptx
PDF
Tanzu Virtual Developer Connect Workshop - French
PDF
Tanzu Developer Connect Workshop - English
PDF
Virtual Developer Connect Workshop - English
PDF
Tanzu Developer Connect - French
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
PDF
SpringOne Tour: The Influential Software Engineer
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
Spring into AI presented by Dan Vega 5/14
What AI Means For Your Product Strategy And What To Do About It
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Enhancing DevEx and Simplifying Operations at Scale
Spring Update | July 2023
Platforms, Platform Engineering, & Platform as a Product
Building Cloud Ready Apps
Spring Boot 3 And Beyond
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
tanzu_developer_connect.pptx
Tanzu Virtual Developer Connect Workshop - French
Tanzu Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
Tanzu Developer Connect - French
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: Domain-Driven Design: Theory vs Practice

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Big Data Technologies - Introduction.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
A Presentation on Artificial Intelligence
PPTX
sap open course for s4hana steps from ECC to s4
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Empathic Computing: Creating Shared Understanding
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Machine Learning_overview_presentation.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Mobile App Security Testing_ A Comprehensive Guide.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Big Data Technologies - Introduction.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Unlocking AI with Model Context Protocol (MCP)
Programs and apps: productivity, graphics, security and other tools
Building Integrated photovoltaic BIPV_UPV.pdf
The AUB Centre for AI in Media Proposal.docx
Machine learning based COVID-19 study performance prediction
NewMind AI Weekly Chronicles - August'25-Week II
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A Presentation on Artificial Intelligence
sap open course for s4hana steps from ECC to s4
The Rise and Fall of 3GPP – Time for a Sabbatical?
Empathic Computing: Creating Shared Understanding
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Machine Learning_overview_presentation.pptx

Troubleshooting RabbitMQ and Microservices That Use It