Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AMQP Support #385

Closed
jaxxstorm opened this issue Jan 20, 2014 · 31 comments
Closed

AMQP Support #385

jaxxstorm opened this issue Jan 20, 2014 · 31 comments
Assignees

Comments

@jaxxstorm
Copy link

I know this is on the roadmap, but I wanted to create a ticket to track it.

Kafka is an interesting solution, but ideally I'd like AMQP support back ASAP as we already have a RabbitMQ in use.

@henrikjohansen
Copy link

+1

@kroepke kroepke mentioned this issue Jan 20, 2014
@jaxxstorm
Copy link
Author

I should add, ideally this would be broke agnostic. There is some talk of utilising ActiveMQ in our company, and I know it's a popular solution due to mcollective using it. Previously only RabbitMQ was available

@RabidDog
Copy link

+1

@lennartkoopmann
Copy link
Contributor

Scheduled for v0.20.1 - We are aware that there is big demand for getting AMQP back into Graylog2 and will work on that right after 0.20.0 is out. Probably with a follow up version that brings only this rapidly after the release.

@henrikjohansen
Copy link

@lennartkoopmann will this resurrected AMQP support include the ability to let inputs route messages to different queues (like the first invocation of graylog-radio) ?

@lennartkoopmann
Copy link
Contributor

👍 yes

@henrikjohansen
Copy link

<3

@tommymonk
Copy link

+1

4 similar comments
@h0nIg
Copy link

h0nIg commented Jan 30, 2014

+1

@bonJoeV
Copy link

bonJoeV commented Feb 9, 2014

+1

@d-ulyanov
Copy link

+1

@ezmorph
Copy link

ezmorph commented Feb 10, 2014

+1

@lennartkoopmann
Copy link
Contributor

Great news everybody! I am now starting to implement this for v0.20.1, which is a small milestone that will come out really soon.

@lennartkoopmann lennartkoopmann modified the milestones: 0.20.1, 0.21.0 Feb 20, 2014
@kroepke
Copy link
Member

kroepke commented Feb 20, 2014

@h0nIg
Copy link

h0nIg commented Feb 22, 2014

it can happen that the amqp process will flood the queue's after a long period of shutdown. so there are no cpu resources left for the processing, because all resources are used for managing buffers and getting amqp messages and pushing them back. this problem will likely occur for hardware configuration where graylog2/amqp-broker are bundled on one machine. on this issue the qos feature of amqp has to be used and maybe a configuration option should be added. this feature will only get X messages for a request for new messages

channel.basicQos(1);

@02strich
Copy link

Is this now part of v0.20.1?

@kroepke
Copy link
Member

kroepke commented Feb 25, 2014

No, it will be in 0.20.2.
0.20.1 had to be released quickly to fix some bugs.

Best,
Kay
On Feb 25, 2014 11:13 AM, "Stefan Richter" [email protected] wrote:

Is this now part of v0.20.1?


Reply to this email directly or view it on GitHubhttps://github.com//issues/385#issuecomment-35992964
.

@jaxxstorm
Copy link
Author

Do we have any update? :(

@lennartkoopmann
Copy link
Contributor

yepp, work is going on with this! :)

@lennartkoopmann lennartkoopmann self-assigned this Mar 10, 2014
h0nIg pushed a commit to h0nIg/graylog2-server that referenced this issue Mar 22, 2014
@agentgt
Copy link

agentgt commented Mar 28, 2014

I couldn't wait for graylog2 to re-support AMQP so I wrote a small daemon that takes messages off of AMQP and just forwards it to graylog2 via UDP.

https://github.com/agentgt/gelf-amqp-bridge

@kroepke kroepke assigned kroepke and unassigned lennartkoopmann and kroepke Mar 31, 2014
@lennartkoopmann
Copy link
Contributor

Sorry that this took so much longer than expected.

@h0nIg
Copy link

h0nIg commented Apr 4, 2014

why you are going to ack the message if a failure occured? personally i would prefer that messages are not lost if they are incomplete

@kroepke
Copy link
Member

kroepke commented Apr 4, 2014

Well, I agree that they shouldn't be lost, but not ack'ing would mean they
get redelivered with the same result. Constantly bouncing between the
broker and graylog2.

We definitely need a better way of handling incomplete messages, but I
think nack is not the correct approach either. :(

On Fri, Apr 4, 2014 at 4:06 PM, Hans-Joachim Kliemeck <
[email protected]> wrote:

why you are going to ack the message if a failure occured? personally i
would prefer that messages are not lost if they are incomplete


Reply to this email directly or view it on GitHubhttps://github.com//issues/385#issuecomment-39568179
.

@henrikjohansen
Copy link

Incomplete messages should be shipped to a failure queue that can be inspected from the UI - that would make it consistent with the current way of handling input / extractor errors ?

@lennartkoopmann
Copy link
Contributor

Yepp, that's a follow-up issue!

@h0nIg
Copy link

h0nIg commented Apr 8, 2014

btw: is there a reason that the current version is inserting the entries through insertCached instead of the old one that was insertFailFast ? the messages that are inserted are lost on a server restart / crash. instead of inserting them into the cache, they should added via insertFailFast and be returned to the queue if there is no space left on the queue

@dennisoelkers
Copy link
Member

h0nig, the idea is that the process/output buffers are limited in size and therefore create backpressure on other parts of the system if there are load spikes. Calling insertCached() means that the message is inserted into a Cache (whose size is limited only by heap size) when the process buffer's capacity is reached. When the server is shut down, it will process all messages in the process/output buffers and caches before it exits, so no messages are lost in this case. You are right about message loss in case of a sudden crash, but this is also the case for all messages in the process/output buffers.

@h0nIg
Copy link

h0nIg commented Apr 10, 2014

You are right about message loss in case of a sudden crash, but this is also the case for all messages in the process/output buffers.

yeah, but why provoking a loss of all messages on the cache instead of only loosing those messages that are on the buffer? i think amqp got a character of NOT loosing a message / loosing only a little bit. (e.g. on high thoughput systems the buffer is much less than the heap limited cache). what do you think about a configuration option that gives more reliability?

@dennisoelkers
Copy link
Member

You are right. Actually it does not make sense to do cache-backed inserts for protocols that are queued externally. Thanks much for the hint!

@lennartkoopmann
Copy link
Contributor

There is a scheduled follow-up ticket for this already. One needs to put some thought into the acking and nacking mechanisms for different use cases and we chose the easiest way for now.

Thanks! :)

@henrikjohansen
Copy link

@lennartkoopmann @kroepke even thought this issue has been closed we're still lacking the ability to route messages from different radio-inputs to different AMQP queues ...

See my comment from Jan 23 2014 above :)

dennisoelkers pushed a commit that referenced this issue Aug 25, 2023
* Bump fsevents to 1.2.11

Adding node 12 support
Refs #7088

* Update yarn.lock after build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests