-
Notifications
You must be signed in to change notification settings - Fork 116
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
Add ActionCable support #275
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting approach, looks good.
So this would create a transaction for every message you send over the socket right?
Yes, this creates a transaction for every message you process. The actual transmission is part of the |
Maybe it makes sense to group all subscribers for a single event in one transaction? I suggest putting these transactions in their own namespace, that way they don't mess with the normal metrics. |
I don't know how we could group them together. The I can make a separate namespace for it of course. What shall we call it? |
I think |
Change the way our ActiveSupport::Notifications.instrument method override picks up the events. Now we can start a transaction inside an event and have the event be tracked afterwards, inside the transaction. Needed to start a transaction in the ActionCable event before tracking it, and adding it to a transaction.
61d2772
to
d479143
Compare
Support ActionCable by listening for `perform_action.action_cable` events. This allows us to create performance and exception samples for ActionCable events.
d479143
to
28a0630
Compare
Problem with this setup is that we can't set the params of the actual `perform_action` right now, see code comment.
Pushed a new version of this yesterday evening. We now track subscribe and unsubscribe events. We also track the request environment, session data, etc. for the requests. However, we (re)use the request data from the original websocket request, because technically there is only one request. Downside of this new version is that we don't track the parameters for the appsignal-ruby/lib/appsignal/transaction.rb Line 239 in 1a2104c
|
Conflicts: lib/appsignal/transaction.rb
Closing in favor of #309. (I had to rebase and clean up my earlier attempt at getting this to work.) |
@tombruijn Any chance to explain why You used
and we were wondering about chosen technique You used to monkey-patch that class. |
Hi @ipepe , I made the final implementation in PR #309.
but it was not possible to track the action actions as such. Why I used If the Airbrake implementation simply loads a file when something needs to be monkeypatched there's no need for the |
I guess that explains everything I wanted to know, thank you. |
Support ActionCable by listening for
perform_action.action_cable
events. This allows us to create performance and exception samples for
ActionCable events.
Closes #273
To discuss
Support
https://app.intercom.io/a/apps/yzor8gyw/respond/inbox/conversation/9011790920
https://app.intercom.io/a/apps/yzor8gyw/respond/inbox/conversation/9039706354
Events of interest
transmit_subscription_confirmation.action_cable
transmit_subscription_rejection.action_cable
broadcast.action_cable
- for message transmissions?