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

Automatic Instrumentation of Main Process for Performance Monitoring #523

Open
AbhiPrasad opened this issue Jul 29, 2022 · 2 comments
Open

Comments

@AbhiPrasad
Copy link
Member

AbhiPrasad commented Jul 29, 2022

Add automatic instrumentation to track the performance of the main process. We can start off by instrumenting startup time, and then move on from there.

Open questions:

  • How do we know when startup is done?
  • What child spans do we attach to the transaction?
  • What metrics do we automatically attach to the transaction?
  • How do we link transactions that happen in the main process to the renderer? Do we even need to this?
@AbhiPrasad AbhiPrasad changed the title Electron Main Process Performance Monitoring Automatic Instrumentation Automatic Instrumentation of Main Process for Performance Monitoring Jul 29, 2022
@timfish
Copy link
Collaborator

timfish commented Aug 2, 2022

One key metric is app startup time which will be from main process start to when the apps UI is displayed.

From the Electron main process we have access to process.uptime() to get the real start point and we can subscribe to the renderer dom-ready event to know when displaying the app is complete.

Alternatively, we could intercept the transaction from BrowserTracing and modify it to represent the entire app load rather than solely the browser front-end.

@AbhiPrasad
Copy link
Member Author

Alternatively, we could intercept the transaction from BrowserTracing

We could also do away with BrowserTracing entirely if we feel like it has minimal value, and replace it with our own more opinionated version for the Electron renderer.

IMO I'd like it if the transaction represents then entire app load. We do this in mobile with a high degree of success.

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

No branches or pull requests

2 participants