GoogleCloudPlatform / GoogleCloudPlatform/microservices-demo
Increment profiler version at release time
- Dominant language
- Go
- Stars
- 20.9k
- Forks
- 10.5k
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 20
Description
### Describe request or inquiry
The `@google-cloud/profiler` is used in our services to produce profiling information and to track issue when something is noticed. The profiler is always initialized with a version. This version needs to be updated and maintained with releases of the applications so that whenever we notice a sudden issue with the latest release, we can compare profiling information against previous version.
Since the first release of the sample app, the profiler version has never been updated. (see [currencyservice](https://github.com/GoogleCloudPlatform/microservices-demo/blob/master/src/currencyservice/server.js#L25), [paymentservice](https://github.com/GoogleCloudPlatform/microservices-demo/blob/master/src/paymentservice/index.js#L22) and [frontend](https://github.com/GoogleCloudPlatform/microservices-demo/blob/master/src/frontend/main.go#L106) as examples) . This version should match sample application release version.
Thus, we must add steps in the release process documentation to instruct the `release-owner` to manually create PRs for updating the `profiler version` on the release branches. We should then later add automation to update these versions automatically during the release process.
Doing this will ensure that we can filter through [profiler data](https://pantheon.corp.google.com/profiler;timespan=10m;end=2021-11-25T17:35:00.000Z/paymentservice;type=HEAP/space?project=onlineboutique-ci) by release version and compare them to see where resource utilization has changed over time. This enables tracking down issues like #538 easier.
### What purpose/environment will this feature serve?
- Troubleshooting and debugging issues with the app in newer releases
- Identifying adverse effects of new code changes and feature inclusions
Contributor guide
Research direction
Start with the profiler version references in src/currencyservice/server.js, src/paymentservice/index.js, and src/frontend/main.go, then locate the release process documentation. Document the release-owner steps for creating PRs that update profiler versions on release branches, ensuring they match the sample application release version.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, google-cloud, javascript
- Domain
- backend, documentation, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100