niclic / helm-charts

Some useful Helm Charts.
Apache License 2.0
3 stars 3 forks source link

UDP protocol is causing ingress errors #4

Open yaron-idan opened 4 years ago

yaron-idan commented 4 years ago

When deploying the chart with ingress enabled, the ingress controller starts to fire this error repeatedly -
ingress-nginx-controller-69f5db9c45-6wwpp controller W0909 07:44:00.417018 6 controller.go:916] Service "monitoring/prometheus-statsd-exporter" does not have any active Endpoint.

If I remove it and leave only the TCP port, things start to work as expected. According to the nginx controller docs, exposing UDP services should be done differently.

Did this setup work for you when you've added it to the chart?

niclic commented 3 years ago

My recollection is using ingress to expose the /metrics endpoint, so the metrics could be viewed in a browser, which is useful for troubleshooting. This requires exposing the webPort of the service, and not the udpPort or tcpPort ports. So, I don't think I experienced the same issue you did.

niclic commented 3 years ago

However, since I am revising this chart in preparation for migration to the prometheus-community chart repo, I will review the ingress implementation from scratch. I don't think the config in values.yaml is clear enough, and it might be a good idea to upgrade the ingress resource version as well.

yaron-idan commented 3 years ago

That's great to hear, good luck with that! I've already deployed my own version of the chart with a few modifications, it addresses the way these different protocols are handled. You're welcome to take a look and if you are interested I can open a PR so you can merge them back into your repository.

niclic commented 3 years ago

Yes, after review, the ingress resource was not properly implemented in this chart. For migration, I considered removing it altogether. However, I have modified it to expose the /metrics endpoint for viewing (or even scraping), which can be useful.

To make this chart expose the tcp and udp endpoints for metrics collection outside a cluster, will require additional work. That can certainly happen, since it does seem to be to be a valid use case. However, the chart will need to support exposing multiple ports, which may require patching of the ingress controller. It's complicated, so probably requires a bit of consideration (e.g. multiple services, etc).

I really appreciate your interest in this and sorry again for the lack of timely feedback. I had an issue with my github notifications.