-
Notifications
You must be signed in to change notification settings - Fork 39
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
Go server support #645
Go server support #645
Conversation
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.
r+wc
LGTM, I have successfully tested this end to end in a staging project.
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.
one thing blocking this, once fixed this should be good to go.
node_dependency: mark a test that requires node. | ||
ruby_dependency: mark a test that requires ruby. | ||
go_dependency: mark a test that requires go. |
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.
thank you
Co-authored-by: Jan-Erik Rediger <jrediger@mozilla.com>
9256722
to
d5a8d9a
Compare
Problem
We're getting a Go service up and running and want to be able to get some business metrics that will help inform our decisions and awareness of how the ads funnel is performing. Some of these metrics will correlate with client telemetry, so we want to be able to collect them and analyze them in BQ for convenience (to avoid having to compare data from service monitoring dashboard and then have difficulty correlating them, or worry about having different retention durations between data in different systems)
Solution
Following the patterns of ruby_server and js_server, this adds support for go_server. It only supports the "events" ping and doesn't support custom pings -- this is a difference between ruby_server and js_server, but it was an intentional decision to leave it out from ruby_server and we want that to be the pattern going forward for server implementations.
The go_server implementation supports all three currently allowed types in the extra_keys field for event metrics, and supports string and quantity metrics as well. We expect numeric data to be common (e.g. how many ads were returned to the client), so that is another difference between go_server and the other two existing ones.
The generated code hasn't yet been deployed in GCP to confirm the flow in its entirety, so there may be some follow up adjustments with that step.
Pull Request checklist
make test
runs without emitting any warningsmake lint
runs without emitting any errorsCHANGELOG.md
or an explanation of why it does not need one