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

Instrument Concurrent::RubyExecutorService#post #1601

Closed
kaylareopelle opened this issue Nov 8, 2022 · 5 comments · Fixed by #1682
Closed

Instrument Concurrent::RubyExecutorService#post #1601

kaylareopelle opened this issue Nov 8, 2022 · 5 comments · Fixed by #1682
Assignees

Comments

@kaylareopelle
Copy link
Contributor

kaylareopelle commented Nov 8, 2022

Acceptance Criteria

  • Create a segment when Concurrent::RubyExecutorService#post is called, and add that segment to the existing transaction
    • This method does not need to create a transaction because it is most likely taking place within a library we already instrument to start transactions
  • Allow customer to rename segment to something more specific
@workato-integration
Copy link

@kaylareopelle
Copy link
Contributor Author

Blocked by: #1602

@kaylareopelle
Copy link
Contributor Author

#1602 is complete! All clear. Please branch off concurrent_ruby

@kaylareopelle kaylareopelle changed the title Instrument Concurrent:ExecutorService#post Instrument Concurrent::RubyExecutorService#post Dec 14, 2022
@kaylareopelle
Copy link
Contributor Author

Changing the focus for this ticket to the RubyExecutorService class, at a minimum, instead of the ExecutorService class. The post method in ExecutorService is a no-op. Previously, we thought it could be an access point for the classes that inherit from it.

We'll need to add instrumentation for each ExecutorService subclass individually.
Concurrent::Promises#future and Concurrent::Future#execute both route through RubyExecutorService#post.

@kaylareopelle
Copy link
Contributor Author

Here are the caller locations for three methods we instrumented, showing they all route through Concurrent::ThreadPoolExecutor#post, by way of RubyThreadPoolExecutor#post.

Caller locations for Concurrent APIs.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants