-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Added web browser traffic in loadgenerator #1266
Conversation
dfcaf86
to
c3f94c7
Compare
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.
I've left a couple of comments (not a maintainer to approve). I think this is a great addition and will help build up client-side instrumentation use cases.
06e9163
to
4e671a6
Compare
This is does not build. |
Thanks for spotting this @julianocosta89, I have downgraded |
@julianocosta89 can you have another look now? |
Hello @jordibisbal8 and @danielgblanco 👋🏽 I've been playing around with the demo since this PR got merged and I couldn't figure it out what that added to the demo. It happens that this is not happening, and I only get the If that's not what this PR added, could you help me out understanding here what Playwright actually brings to the demo? This was a big change on memory allocation, I just want to make sure we are getting something out of it. FYI: @austinlparker |
Yes, you should be able to see traces with the |
Yes:
|
I have also noticed a similar experience as @julianocosta89 and did a lot more digging to figure it out. The current scripts for the playwright user scenarios, hitting the cart endpoint or going home then clicking a button, don't generate a second request. The scenario of going home and hitting a button is navigating to a link anchor built into the home page and not doing another request. I modified the script to click on a product and then the add to cart button so that it could generate multiple requests. This worked and did produce traces, but they were all missing root spans. This leads me to believe the playwright Javascript engine doesn't properly work with the OpenTelemetry SDK, and that's why we do not see any traces that have a service of It makes sense to open a new issue for this and track it. I don't like the idea of having a 10x memory requirement for the load generator if we don't produce traces that originate from frontend-web. I would like to get this resolved before we release. |
@puckpuck thanks for reporting this issue, I will take a closer look :) |
I believe the issue is related to having a hardcoded Line 16 in 889d455
and also in the chart values In both cases, it expects the collector to be available in
|
The issue @puckpuck related to missing parents could be a timing issue though, possibly related to open-telemetry/opentelemetry-js#2205. Would be good to execute some requests, then navigate away to another page (so So, another PR on this would need:
|
Actually, when the batch processor is configured here We could set a different |
* Added playwright on load generator docker image * Added locust plugins as a dependency * Increased memory constrains and introduced LOCUST_BROWSER_TRAFFIC_ENABLED environment variable * Added playwright user to generate browser traffic * Updated changelog message * Added skipping line + renamed event * Downgraded greenlet to 3.0.0 --------- Co-authored-by: Juliano Costa <julianocosta89@outlook.com> Co-authored-by: Austin Parker <austin@ap2.io>
Changes
In this PR, we aim to add browser traffic by using playwright (as discussed here). The main changes are:
DockerFile
/cart
page and the other clicks theGo shopping
button.Merge Requirements
For new features contributions please make sure you have completed the following
essential items:
CHANGELOG.md
updated to document new feature additionsMaintainers will not merge until the above have been completed. If you're unsure
which docs need to be changed ping the
@open-telemetry/demo-approvers.