-
Notifications
You must be signed in to change notification settings - Fork 342
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
Any plans to implement telemetry when using Bamboo deliver functions? #599
Comments
Hi @aleDsz I'm glad you asked this question! I've been thinking that telemetry would be a nice addition to Bamboo. But I haven't had the need for it yet in a production project, so I don't know which events would be helpful to create. I'd like to start the conversation by trying to figure out which events we should send.
I like that idea for
I'd love to hear your thoughts on what events would be good for And if you're interested, these are some other question I have in my mind related to this work:
|
hi @germsvel. I liked ur second option for I'm working in a company that uses Bamboo, and we use a lot of telemetry handlers to trace every action inside our system, as we can observe if:
So, answering your questions:
I would say, the:
I liked this, because we can have
We connect to API's when using e.g. Sendgrid, right? Can we have events when using the API?
I'm not so sure if its a good idea, but we can check with another Bamboo users/Adapter maintainers.
I like the Middleware implementation in Tesla, you can implement everything you want, so you can implement the telemetry on start and on the end and pass data though the process. Their telemetry middleware can do all telemetry events using the same behaviour of I'm not so sure how the OR We can export those functions allowing the |
Hi @germsvel!
Since it's a wall of yml, I'll try to surmise the approach: There would be a
The whole email struct sounds nice. Also things that could have changed the email struct (such as Interceptors), and things that do side effect using the email struct (such as Adapters). As for metadata in delivery_later, we should add the delivery later strategy module being used.
This is a hard question to answer, since the delivery strategy behavior gives users total control—enough so that users can choose not to send the telemetry events if they don't want to. I believe the best thing we could do, without breaking changes, is to document really well the telemetry events and when do we expect the user to call it. |
Thanks for all that input @gugahoa and @aleDsz. Here's my understanding at the moment. And I'd love to hear if this is what you're thinking too. Tracking two functionsWe would track two functions,
Like Gustavo mentioned, the What about
|
I'd also would love to see telemetry events in bamboo! Great work so far! Regarding the leaking of sensitive information, I think handling this is ultimately the responsibility of the telemetry handlers subscribing to the events. It's unknown to Bamboo what the user will do with the metadata so it can send everything and leave it to the user. Most instrumentation libraries that hook into telemetry have their own ways to filter data. Helpful guide for telemetry https://keathley.io/blog/telemetry-conventions.html |
What I suggested is a bit different. We would have two This way we guarantee that we have the
Going with two events (thus two
It does 🔝
💯
I have the same opinion as @maartenvanvliet on this one |
MetadataI think @maartenvanvliet made a good point, so I think we could proceed with passing as much data as possible. Deliver later events@gugahoa thank you for that clarification:
So, to confirm, these would be the initial Bamboo events: # deliver_now
[:bamboo, :deliver_now, :start]
[:bamboo, :deliver_now, :stop]
[:bamboo, :deliver_now, :exception]
#deliver_later produce
[:bamboo, :deliver_later, :produce, :start]
[:bamboo, :deliver_later, :produce, :stop]
[:bamboo, :deliver_later, :produce, :exception]
#deliver_later consume
[:bamboo, :deliver_later, :consume :start]
[:bamboo, :deliver_later, :consume, :stop]
[:bamboo, :deliver_later, :consume, :exception] Do you know if If we think |
After a little more thought, I think we shouldn't use I now think that it would be better to keep things as standard as possible, so instead we could have That way, we get the following events: # deliver_now
[:bamboo, :deliver_now, :start]
[:bamboo, :deliver_now, :stop]
[:bamboo, :deliver_now, :exception]
#deliver_later
[:bamboo, :deliver_later, :start]
[:bamboo, :deliver_later, :stop]
[:bamboo, :deliver_later, :exception]
#deliver_later_strategy (span when the deliver later strategy gets executed)
[:bamboo, :deliver_later_strategy, :start]
[:bamboo, :deliver_later_strategy, :stop]
[:bamboo, :deliver_later_strategy, :exception] I like that better. And that seems good enough to get started. If we discover more need for other telemetry events, we can add those when the need arises. @gugahoa @maartenvanvliet @aleDsz any thoughts on that? |
@germsvel I liked it |
@germsvel Hello there! I'd like to inquire if this is still open for contributions. |
Thanks for reaching out @hamzahejja. I'm unfortunately no longer Bamboo's maintainer (due to time constraints). But I still have access to make changes. And this telemetry functionality was one of the last things I really wanted to get in. So, long story short, it's definitely open to contributions, and I would happily review a PR for this! |
@germsvel I'd love to add the functionality, but let me recap the things discussed above really quick:
|
Hi, my team was thinking about how we can implement instrumentations around Bamboo context and I thought about if we implement
:telemetry
app inside Bamboo, we can get all data fromstart
,stop
andexception
events.So, only to check y'all have plans to do it, we'll wait. If not, I'm going to think about contributing this repo.
The text was updated successfully, but these errors were encountered: