0

Is there a standard way to monitor the traffic of K8 Ingress. We were trying to extract metrics like

  • Requests per second
  • HTTP errors
  • Response time
  • etc...

Specific Environment

  • AWS EKS
  • Nginx ingress
  • AWS Elastic search service [Store and search metrics]
  • Kibana and Easy Alert [Dashboard and alerting]

Solutions tried

Looking for something generic to K8 . Any hints ?

arunvg
  • 1,209
  • 1
  • 20
  • 31
  • You should try [linkerd](https://linkerd.io/2/overview/) which is super easy in comparison to istio and delivers the required insights. The config for it is simple and fast. – mkorbi Sep 02 '19 at 11:49
  • Thank you. An architecture including the service mesh is very difficult to justify as the application components do not have significant inter-service calls. Also, the solution needs the metrics to be pumped to a centralized elastic search or APM. I was looking for a smaller footprint solution – arunvg Sep 02 '19 at 12:17
  • as said, getting this service mesh up and running takes you a couple of minutes. to export the metrics there is, for example, a prometheus exporter https://linkerd.io/2/tasks/exporting-metrics/ – mkorbi Sep 02 '19 at 12:47
  • It is not the bootstrapping I am worried about. A service mesh would bring in the dimension of micro services and inter service communications. In this particular solution which uses an old versioned product, the containers do not have any significant inter service calls , basically the good old shared Data base model. So particularly the team prefer to keep the solution foot print ( number of components etc...) small enough to its capability. – arunvg Sep 02 '19 at 12:59

2 Answers2

2

The ingress-nginx project has a monitoring guide that describes how to send basic statistics to Prometheus, which can then be viewed in Grafana. If you cluster already has these tools installed, then it is just a matter of configuring prometheus to scrape nginx ingress controller pods.

James McShane
  • 779
  • 8
  • 15
1

First of all, there is not "standard way" to monitor a cluster. People or companies have different needs, so you should implement your best solution.

If you are managing all ingress traffic from Nginx ingress controller, then you can implement Nginx based solutions. Said that, linkerd is also a great tool to monitor and manage your network stack, especially if it's simple. There is a dashboard and you can check all your requirements. Linkerd components are also not heavy as istio.

Akin Ozer
  • 1,001
  • 6
  • 14
  • Thank you. An architecture including the service mesh is very difficult to justify as the application components do not have significant inter-service calls. Also, the solution needs the metrics to be pumped to a centralized elastic search or APM. I was looking for a smaller footprint solution. – arunvg Sep 02 '19 at 12:06