-
Notifications
You must be signed in to change notification settings - Fork 823
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
[Performance] - Added a new metric inside the allocator to track the success retry rate inside the retry loop #3927
Conversation
Build Failed 😭 Build Id: 0f7a5893-6cde-4df1-b197-39ec5149f5d0 Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😭 Build Id: fc6bb5e6-26d5-4326-905f-6bca3ccab458 Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Succeeded 🥳 Build Id: e2c4011c-aa43-4073-89e1-a3d782d350e9 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
pkg/gameserverallocations/metrics.go
Outdated
@@ -82,8 +101,8 @@ func (r *metrics) setStatus(status string) { | |||
} | |||
|
|||
// setError set the latency status tag as error. | |||
func (r *metrics) setError() { | |||
r.mutate(tag.Update(keyStatus, "error")) | |||
func (r *metrics) setError(errorType string) { |
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.
This whole function seems... odd to me.
Any reason we aren't using stats.RecordWithTags()
everywhere instead?
We have some nice helpers too:
Lines 45 to 49 in 96c3d26
func recordWithTags(ctx context.Context, mutators []tag.Mutator, ms ...stats.Measurement) { | |
if err := stats.RecordWithTags(ctx, mutators, ms...); err != nil { | |
logger.WithError(err).Warn("error while recoding stats") | |
} | |
} |
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.
Mmmm i'm not entirely sure why we aren't using stats.RecordWithTags()
. There's only one other metric in this file which is the latency one and it uses stats.Record(r.ctx, gameServerAllocationsLatency.M(time.Since(r.start).Seconds()))
directly. I could update this file and change it in this PR to use stats.RecordWithTags()
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.
SGTM
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.
Ohhh i think i see why, it first records the metrics and then it does a lot of manipulation with the tags for example: latency.setRequest(gsa) mutates tags same case with latency.setResponse(out) I can probably merge latency.record()
and latency.setRequest(gsa)
but not sure about latency.setResponse(out)
since that happens later in the function and the code can return before that. Wdyt ?
Build Failed 😭 Build Id: b6259f67-d6b3-45d7-b6e6-1e1e21a141fa Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😭 Build Id: f9d573da-bd4a-4b60-b785-682b9f7db633 Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😭 Build Id: c6e0a254-23ce-431a-85f7-754694c0b0d6 Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😭 Build Id: 85d95b8d-c99f-489e-9d9c-54f4bbc171a7 Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😭 Build Id: 639e5381-e7e0-41b8-9d92-cbd2403b32f3 Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😭 Build Id: c7506251-d532-4760-a93e-d1ac4453dc18 Status: FAILURE To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Succeeded 🥳 Build Id: e9f2495f-b9f1-404a-9c8a-7a9d9651c17b The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Build Succeeded 🥳 Build Id: a58b657d-9dce-4dcf-8272-32346d40012a The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Build Succeeded 🥳 Build Id: cafa4a1f-80fc-4c9c-a894-6609a0f71e50 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Build Succeeded 🥳 Build Id: 4c0e4600-5979-4e88-8de6-be52ec42a260 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Build Succeeded 🥳 Build Id: 42c40261-f22c-4900-a08f-2fdf11e231ee The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [agones](https://agones.dev) ([source](https://redirect.github.com/googleforgames/agones)) | minor | `1.42.0` -> `1.43.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>googleforgames/agones (agones)</summary> ### [`v1.43.0`](https://redirect.github.com/googleforgames/agones/releases/tag/v1.43.0) [Compare Source](https://redirect.github.com/googleforgames/agones/compare/v1.42.0...v1.43.0) This is the 1.43.0 release of Agones. In this release, we updated the supported Kubernetes version, added a new scheduled autoscaler, as well as Unity support for Counters and Lists.. - **Kubernetes 1.30 Support** With this release, the Kubernetes support matrix for Agones is now 1.28, 1.29 and 1.30. - **Alpha support for ScheduledAutoscaler** This provides the ability to have Fleet autoscaler scheduling with the feature flag `ScheduledAutoscaler`, to allow you to schedule what level of autoscaling you would like on a schedule or between dates, giving you more control over your autoscaling needs. - **Unity SDK: Counters and Lists** We now have support for `GameServer` [Counters and Lists](https://agones.dev/site/docs/guides/counters-and-lists/) with our Unity SDK! - **New Helm Installation Configuration Options** Two new installation options! We made the parameters that control how fast we scale up and down `GameServers` configurable, so you can see how fast your Kubernetes control plane really is when spinning up lots of `GameServer` instances. We also have new Helm configuration options that allow the use of the host network for the Agones controller and extensions for AWS EKS when using Cilium. - **Beta support for Passthrough PortPolicy on GKE Autopilot** We’ve graduated Passthrough Port Policy support from Alpha to Beta on GKE Autopilot, which you can now enable using the feature flag `AutopilotPassthroughPort`. <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Breaking changes - Revert "Update Supported Kubernetes to 1.28, 1.29, 1.30 ([#​3933](https://redirect.github.com/googleforgames/agones/issues/3933))" by [@​gongmax](https://redirect.github.com/gongmax) in [https://github.com/googleforgames/agones/pull/3952](https://redirect.github.com/googleforgames/agones/pull/3952) ##### Implemented enhancements - Add Option to Use Host Network and Configure Ports by [@​Orza](https://redirect.github.com/Orza) in [https://github.com/googleforgames/agones/pull/3895](https://redirect.github.com/googleforgames/agones/pull/3895) - Graduate Passthrough Port Policy to Beta on Autopilot by [@​vicentefb](https://redirect.github.com/vicentefb) in [https://github.com/googleforgames/agones/pull/3916](https://redirect.github.com/googleforgames/agones/pull/3916) - Agones Unity SDK development setup instructions + Agones Unity SDK Ready test by [@​aallbrig](https://redirect.github.com/aallbrig) in [https://github.com/googleforgames/agones/pull/3887](https://redirect.github.com/googleforgames/agones/pull/3887) - feat: Add API Changes and Validation for FleetAutoscaler Schedule/Chain Policy by [@​indexjoseph](https://redirect.github.com/indexjoseph) in [https://github.com/googleforgames/agones/pull/3893](https://redirect.github.com/googleforgames/agones/pull/3893) - feat: Adds autoscaling logic for new Chain and Schedule policies by [@​indexjoseph](https://redirect.github.com/indexjoseph) in [https://github.com/googleforgames/agones/pull/3929](https://redirect.github.com/googleforgames/agones/pull/3929) - Adds basic framework for the in place Agones upgrades test controller by [@​igooch](https://redirect.github.com/igooch) in [https://github.com/googleforgames/agones/pull/3956](https://redirect.github.com/googleforgames/agones/pull/3956) - \[Performance] - Added a new metric inside the allocator to track the success retry rate inside the retry loop by [@​vicentefb](https://redirect.github.com/vicentefb) in [https://github.com/googleforgames/agones/pull/3927](https://redirect.github.com/googleforgames/agones/pull/3927) - Make the parameters that limits the number of GameServers to add configurable by [@​vicentefb](https://redirect.github.com/vicentefb) in [https://github.com/googleforgames/agones/pull/3950](https://redirect.github.com/googleforgames/agones/pull/3950) - feat: Adds e2e tests for chain/schedule policy and bump ScheduledAutoscaler to Alpha by [@​indexjoseph](https://redirect.github.com/indexjoseph) in [https://github.com/googleforgames/agones/pull/3946](https://redirect.github.com/googleforgames/agones/pull/3946) - Implement CountsAndLists for Unity SDK + Tests by [@​ZeroParticle](https://redirect.github.com/ZeroParticle) in [https://github.com/googleforgames/agones/pull/3883](https://redirect.github.com/googleforgames/agones/pull/3883) ##### Fixed bugs - Resolves `make site-server` issue [#​3885](https://redirect.github.com/googleforgames/agones/issues/3885) by [@​aallbrig](https://redirect.github.com/aallbrig) in [https://github.com/googleforgames/agones/pull/3914](https://redirect.github.com/googleforgames/agones/pull/3914) ##### Other - Preparation for Release v1.43.0 by [@​kamaljeeti](https://redirect.github.com/kamaljeeti) in [https://github.com/googleforgames/agones/pull/3910](https://redirect.github.com/googleforgames/agones/pull/3910) - Introduce external resource(s) on multiplayer game programming to docs by [@​aallbrig](https://redirect.github.com/aallbrig) in [https://github.com/googleforgames/agones/pull/3884](https://redirect.github.com/googleforgames/agones/pull/3884) - Added line of code to update failure count details inside runscenario by [@​vicentefb](https://redirect.github.com/vicentefb) in [https://github.com/googleforgames/agones/pull/3915](https://redirect.github.com/googleforgames/agones/pull/3915) - updated golang upgrade template by [@​ashutosji](https://redirect.github.com/ashutosji) in [https://github.com/googleforgames/agones/pull/3902](https://redirect.github.com/googleforgames/agones/pull/3902) - Changes for GitHub/Cloud Build app integration by [@​zmerlynn](https://redirect.github.com/zmerlynn) in [https://github.com/googleforgames/agones/pull/3918](https://redirect.github.com/googleforgames/agones/pull/3918) - Meta: Contributor role by [@​markmandel](https://redirect.github.com/markmandel) in [https://github.com/googleforgames/agones/pull/3922](https://redirect.github.com/googleforgames/agones/pull/3922) - Fix allocator metrics endpoint by [@​vicentefb](https://redirect.github.com/vicentefb) in [https://github.com/googleforgames/agones/pull/3921](https://redirect.github.com/googleforgames/agones/pull/3921) - Meta: Contributor => Collaborator by [@​markmandel](https://redirect.github.com/markmandel) in [https://github.com/googleforgames/agones/pull/3928](https://redirect.github.com/googleforgames/agones/pull/3928) - Rewrite agones-bot, commit to Agones repo by [@​zmerlynn](https://redirect.github.com/zmerlynn) in [https://github.com/googleforgames/agones/pull/3923](https://redirect.github.com/googleforgames/agones/pull/3923) - Small cleanup of incorrect comment in features.go file by [@​igooch](https://redirect.github.com/igooch) in [https://github.com/googleforgames/agones/pull/3944](https://redirect.github.com/googleforgames/agones/pull/3944) - Update Supported Kubernetes to 1.28, 1.29, 1.30 by [@​ashutosji](https://redirect.github.com/ashutosji) in [https://github.com/googleforgames/agones/pull/3933](https://redirect.github.com/googleforgames/agones/pull/3933) - remove ctx within the condition func by [@​peterzhongyi](https://redirect.github.com/peterzhongyi) in [https://github.com/googleforgames/agones/pull/3959](https://redirect.github.com/googleforgames/agones/pull/3959) - Reapply "Update Supported Kubernetes to 1.28, 1.29, 1.30 ([#​3933](https://redirect.github.com/googleforgames/agones/issues/3933))" ([#​3](https://redirect.github.com/googleforgames/agones/issues/3)… by [@​gongmax](https://redirect.github.com/gongmax) in [https://github.com/googleforgames/agones/pull/3961](https://redirect.github.com/googleforgames/agones/pull/3961) - change kubernetes API version to fix broken CI by [@​peterzhongyi](https://redirect.github.com/peterzhongyi) in [https://github.com/googleforgames/agones/pull/3962](https://redirect.github.com/googleforgames/agones/pull/3962) - docs(godot): add Agones x Godot third party example by [@​andresromerodev](https://redirect.github.com/andresromerodev) in [https://github.com/googleforgames/agones/pull/3938](https://redirect.github.com/googleforgames/agones/pull/3938) - Link Unity Netcode for Gameobjects example in documentation by [@​mbychkowski](https://redirect.github.com/mbychkowski) in [https://github.com/googleforgames/agones/pull/3937](https://redirect.github.com/googleforgames/agones/pull/3937) - Docs: Use k8s-api-version for links by [@​markmandel](https://redirect.github.com/markmandel) in [https://github.com/googleforgames/agones/pull/3963](https://redirect.github.com/googleforgames/agones/pull/3963) #### New Contributors - [@​Orza](https://redirect.github.com/Orza) made their first contribution in [https://github.com/googleforgames/agones/pull/3895](https://redirect.github.com/googleforgames/agones/pull/3895) **Full Changelog**: googleforgames/agones@v1.42.0...v1.43.0 Images available with this release: - [us-docker.pkg.dev/agones-images/release/agones-controller:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-controller:1.43.0) - [us-docker.pkg.dev/agones-images/release/agones-sdk:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-sdk:1.43.0) - [us-docker.pkg.dev/agones-images/release/agones-ping:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-ping:1.43.0) - [us-docker.pkg.dev/agones-images/release/agones-allocator:1.43.0](https://us-docker.pkg.dev/agones-images/release/agones-allocator:1.43.0) - [us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.9](https://us-docker.pkg.dev/agones-images/examples/allocation-endpoint-proxy:0.9) - [us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.14](https://us-docker.pkg.dev/agones-images/examples/autoscaler-webhook:0.14) - [us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.18](https://us-docker.pkg.dev/agones-images/examples/cpp-simple-server:0.18) - [us-docker.pkg.dev/agones-images/examples/crd-client:0.17](https://us-docker.pkg.dev/agones-images/examples/crd-client:0.17) - [us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.10](https://us-docker.pkg.dev/agones-images/examples/nodejs-simple-server:0.10) - [us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.13](https://us-docker.pkg.dev/agones-images/examples/rust-simple-server:0.13) - [us-docker.pkg.dev/agones-images/examples/simple-game-server:0.34](https://us-docker.pkg.dev/agones-images/examples/simple-game-server:0.34) - [us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.14](https://us-docker.pkg.dev/agones-images/examples/supertuxkart-example:0.14) - [us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3](https://us-docker.pkg.dev/agones-images/examples/unity-simple-server:0.3) - [us-docker.pkg.dev/agones-images/examples/xonotic-example:2.0](https://us-docker.pkg.dev/agones-images/examples/xonotic-example:2.0) Helm chart available with this release: - <a href="https://agones.dev/chart/stable/agones-1.43.0.tgz" data-proofer-ignore> <code>helm install agones agones/agones --version 1.43.0</code></a> > Make sure to add our stable helm repository using `helm repo add agones https://agones.dev/chart/stable` </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ny4xIiwidXBkYXRlZEluVmVyIjoiMzguNTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvaGVsbSIsInR5cGUvbWlub3IiXX0=-->
What type of PR is this?
What this PR does / Why we need it:
Which issue(s) this PR fixes:
Closes #
Special notes for your reviewer: