-
Notifications
You must be signed in to change notification settings - Fork 183
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
feat: add proxy for Prometheus remote write #2065
Conversation
deploy/helm/sumologic/templates/metrics/remote-write-proxy/deployment.yaml
Outdated
Show resolved
Hide resolved
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.
Please add a changelog entry for this
deploy/helm/sumologic/templates/metrics/remote-write-proxy/deployment.yaml
Outdated
Show resolved
Hide resolved
autoscalling will probably end with poor loadbalancing like we observe for current architecture, but I think it will be improvement anyway |
f2fa6b1
to
61c1e63
Compare
In the real world, I'm not convinced anyone will actually need more than three Nginx instances - the three replicas are only here for availability. In a real-world use case, a customer is pushing ~13M samples per minute through nginx, and the total CPU usage is around 500 mCPU. Nginx also eats so few resources doing this, that I think the additional complexity of the HPA isn't worth it. |
a1cc929
to
e5d56de
Compare
deploy/helm/sumologic/templates/metrics/remote-write-proxy/deployment.yaml
Outdated
Show resolved
Hide resolved
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 overall pending some comments :)
Prometheus remote write uses a single persistent HTTP connection per target, which interacts poorly with TCP load balancing with iptables that K8s Services do. Use a real HTTP load balancer for this instead - nginx with a very simple configuration.
e533333
to
de2242f
Compare
Description
Prometheus remote write uses a single persistent HTTP connection per target, which interacts poorly with TCP load balancing with iptables that K8s Services do. Use a real HTTP load balancer for this instead - nginx with a very simple configuration.
I manually ran integration tests and they passed. I don't want to add another test to run for all K8s versions, so I'll add the integration test after we redo the test matrix in the CI do allow tests to only run in a single K8s environment.
Checklist
Remove items which don't apply to your PR.
Testing performed