-
Notifications
You must be signed in to change notification settings - Fork 436
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
internal/apps: Add two new apps #2868
Conversation
BenchmarksBenchmark execution time: 2024-09-17 09:41:31 Comparing candidate commit 111c73d in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 58 metrics, 1 unstable metrics. |
The internal apps are usually meant to demonstrate new features or to produce screenshots for blog posts. In both cases it is better to be using the latest version of Go as it might contain new features that are needed, or simply to make the screenshots show an up-to-date Go version.
This allows giving nicer names to the services for screenshots.
ffa7cfd
to
0001a9e
Compare
b5378a0
to
8e3358e
Compare
Remove go version workaround. This will be addressed by merging #2871 first. Use go1.23.0 instead of go1.23 since the latter includes pre-release versions which we don't want here.
Updated. But needs #2871 to land first. |
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.
LGTM!
Co-authored-by: Nick Ripley <nick.ripley@datadoghq.com>
What does this PR do?
Add two new internal apps. They are not meant to run in CI (not hooked up), but rather to stage screenshots for blog posts when we need them.
Also upgrade internal apps to use go1.23 since I sometimes get a
go_version:
tag in my screenshot and I want it to be the latest. Additionally I wanted to use some go1.23 convenience features while coding up the test apps.Motivation
The primary motivation is to produce screenshots for an upcoming blog post about cost savings.
One part of the blog will talk about using the CPU profile to identify cost saving opportunities:
This might reveal a high amount of CPU time in GC. The allocated memory profile can be used to figure out how to reduce the frequency of GC cycles:
Additionally the Heap Live Objects profile can help with figuring out how to reduce the cost per GC cycle.
For apps that are bottlenecked on Memory rather than CPU, the Heap Live Size profile can help.
And for queue processing applications that don't manage to utilize their available HW resources efficiently, the timeline feature can help with revealing Off-CPU bottlenecks:
Reviewer's Checklist
Unsure? Have a question? Request a review!