Как я могу получить статус rabbitmq-лопатой по HTTP API

Используя "rabbitmqctl eval 'rabbit_shovel_status:status().'" Я могу получить статус лопат на моем сервере rabbitmq.

Я активировал модули rabbitmq_shovel и rabbitmq_shovel_management.

Я создал несколько динамических лопат с помощью HTTP API, проблема в том, что я хочу получить состояние лопат с помощью HTTP API, но я не могу найти способ сделать это.

Есть ли способ сделать это с помощью HTTP API? Или я должен использовать 'rabbitmqctl eval ...'?

Я не хочу использовать rabbitmqctl, так как я хочу представить эти данные в своем собственном API, поэтому мое приложение должно иметь доступ к ним, без необходимости создавать exec.

2 ответа

Решение

Да, вы можете использовать:

http://localhost:15672/api/shovels

Вы должны установить: rabbitmq_shovel_management

В результате json, как:

[  
   {  
      "node":"rabbit@gabrieleMacBook",
      "timestamp":"2015-06-02 15:34:27",
      "name":"test",
      "vhost":"/",
      "type":"dynamic",
      "state":"running",
      "definition":{  
         "src-queue":"test",
         "dest-queue":"test2"
      },
      "src_uri":"amqp://xxxxxxx",
      "dest_uri":"amqp://xxxxxxx"
   }
]

Если вы используете C#, вы можете использовать HareDu следующим образом:

      var result = await _services.GetService<IBrokerObjectFactory>()
    .GetAllShovels();

https://github.com/ahives/HareDu2/blob/master/docs/shovel-get.md

Другие вопросы по тегам