All Projects → rabbitmq → rabbitmq-tracing

rabbitmq / rabbitmq-tracing

Licence: other
RabbitMQ Tracing

Programming Languages

erlang
1774 projects
Makefile
30231 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to rabbitmq-tracing

rabbitmq-peer-discovery-aws
AWS-based peer discovery backend for RabbitMQ 3.7.0+
Stars: ✭ 23 (-52.08%)
Mutual labels:  rabbitmq, rabbitmq-plugin
rabbitmq-stomp
RabbitMQ STOMP plugin
Stars: ✭ 49 (+2.08%)
Mutual labels:  rabbitmq, rabbitmq-plugin
rabbitmq-vshovel
RabbitMQ vShovel plugin
Stars: ✭ 26 (-45.83%)
Mutual labels:  rabbitmq, rabbitmq-plugin
rabbitmq-peer-discovery-etcd
etcd-based peer discovery backend for RabbitMQ 3.7.0+
Stars: ✭ 15 (-68.75%)
Mutual labels:  rabbitmq, rabbitmq-plugin
rabbitmq-web-stomp-examples
www.rabbitmq.com/
Stars: ✭ 90 (+87.5%)
Mutual labels:  rabbitmq, rabbitmq-plugin
rabbitmq-management-agent
RabbitMQ Management Agent
Stars: ✭ 16 (-66.67%)
Mutual labels:  rabbitmq, rabbitmq-plugin
dockerX
Examples of amazing Docker/Docker-Compose/Docker Swarm technologies
Stars: ✭ 17 (-64.58%)
Mutual labels:  rabbitmq
net-amqp-rabbitmq
Perl bindings to the librabbitmq-c AMQP library.
Stars: ✭ 23 (-52.08%)
Mutual labels:  rabbitmq
seckill parent
基于springboot+springcloud的高并发和商品秒杀项目,通过redis,rabbitmq等技术实现秒杀的高并发。
Stars: ✭ 59 (+22.92%)
Mutual labels:  rabbitmq
rb-spider
基于 RabbitMQ 中间件的爬虫的 Ruby 实现 [Developing]
Stars: ✭ 13 (-72.92%)
Mutual labels:  rabbitmq
epiphany
Cloud and on-premises automation for Kubernetes centered industrial grade solutions.
Stars: ✭ 114 (+137.5%)
Mutual labels:  rabbitmq
express-typescript-seed
Node API seed written in typescript using Express, Sequelize, Passport, and RabbitMQ
Stars: ✭ 67 (+39.58%)
Mutual labels:  rabbitmq
RabbitMQ.Client.Core.DependencyInjection
.Net Core library-wrapper of RabbitMQ.Client for Dependency Injection.
Stars: ✭ 103 (+114.58%)
Mutual labels:  rabbitmq
b-rabbit
A thread safe library that aims to provide a simple API for interfacing with RabbitMQ. Built on top of rabbitpy, the library make it very easy to use the RabbitMQ message broker with just few lines of code. It implements all messaging pattern used by message brokers
Stars: ✭ 15 (-68.75%)
Mutual labels:  rabbitmq
celery-connectors
Want to handle 100,000 messages in 90 seconds? Celery and Kombu are that awesome - Multiple publisher-subscriber demos for processing json or pickled messages from Redis, RabbitMQ or AWS SQS. Includes Kombu message processors using native Producer and Consumer classes as well as ConsumerProducerMixin workers for relay publish-hook or caching
Stars: ✭ 37 (-22.92%)
Mutual labels:  rabbitmq
go-amqp-reconnect
auto reconnecting example for github.com/streadway/amqp Connection & Channel
Stars: ✭ 79 (+64.58%)
Mutual labels:  rabbitmq
dokku-rabbitmq
a rabbitmq plugin for dokku
Stars: ✭ 41 (-14.58%)
Mutual labels:  rabbitmq
http-proxy-amqp
an amqp connection pool implementation
Stars: ✭ 17 (-64.58%)
Mutual labels:  rabbitmq
amqpextra
Golang AMQP on steroids. Reliable connection. Publisher. Consumer.
Stars: ✭ 59 (+22.92%)
Mutual labels:  rabbitmq
Distributed-eStore
Ecommerce SPA application with a microservices architecture implemented from scratch. Tech stack - Docker, Consul, Fabio, RabbitMQ, .Net Core, Mediatr, CQRS, React, Redux. .NET Core Microservices template, .NET React Redux, .NET RabbitMQ, .NET Distributed, Docker, .NET Core with Docker.
Stars: ✭ 99 (+106.25%)
Mutual labels:  rabbitmq

RabbitMQ (Message) Tracing Plugin

This is an opinionated tracing plugin that extends RabbitMQ management UI. It logs messages passing through vhosts with enabled tracing to a log file.

This was migrated to https://github.com/rabbitmq/rabbitmq-server

This repository has been moved to the main unified RabbitMQ "monorepo", including all open issues. You can find the source under /deps/rabbitmq_tracing. All issues have been transferred.

Usage

This plugin ships with RabbitMQ. Enabled it with rabbitmq-plugins enable, then see a "Tracing" tab in the management UI.

Configuration

Configuration options are under the rabbitmq_tracing app (config section, if you will):

  • directory: controls where the log files go. It defaults to "/var/tmp/rabbitmq-tracing".
  • username: username to be used by tracing event consumers (default: <<"guest">>)
  • password: password to be used by tracing event consumers (default: <<"guest">>)

Performance

TL;DR: this plugin is intended to be used in development and QA environments. It will increase RAM consumption and CPU usage of a node.

On a few year old developer-grade machine, rabbitmq-tracing can write about 2000 msg/s to a log file. You should be careful using rabbitmq-tracing if you think you're going to capture more messages than this. Any messages that can't be logged are queued.

The code to serve up the log files over HTTP is not at all sophisticated or efficient, it loads the whole log into memory. If you have large log files you may wish to transfer them off the server in some other way.

HTTP API Endpoints

GET            /api/traces
GET            /api/traces/node/<node>
GET            /api/traces/<vhost>
GET            /api/traces/node/<node>/<vhost>
GET PUT DELETE /api/traces/<vhost>/<name>
GET PUT DELETE /api/traces/node/<node>/<vhost>/<name>
GET            /api/trace-files
GET            /api/trace-files/node/<node>
GET     DELETE /api/trace-files/<name>    (GET returns the file as text/plain)
GET     DELETE /api/trace-files/node/<node>/<name>    (GET returns the file as text/plain)

Example for how to create a trace using RabbitMQ HTTP API:

curl -i -u guest:guest -H "content-type:application/json" -XPUT \
     http://localhost:15672/api/traces/%2f/my-trace \
     -d'{"format":"text","pattern":"#", "max_payload_bytes":1000,
         "tracer_connection_username":"guest", "tracer_connection_password":"guest"}'

The format and pattern fields are mandatory.

tracer_connection_username and tracer_connection_password control what credentials the tracing connection will use. Both are optional and default to the configured plugin values.

max_payload_bytes is optional (omit it to prevent payload truncation).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].