Clojure in Monitoring on Kubernetes
• Mark Eschbach
As apart of a migration from a set of on-premises services to AWS we would like to add monitoring. I’ve been trying to reject many additions to the scope for of this project however this one is probably good. With the Prometheus Operator I get basic metrics for the container such as memory usage and CPU. However we would like finer grained details such as heap usage, request timing, etc.
Carrying from the primordial days of running on physical machines these services are run via Java Service Wrapper to start a Clojure service running Ring. I am hoping this is an easy integration.
Prometheus Client is a project providing the underlying platform. If I had to implement this near this by hand this would definitely be a good place to start. Looks like OpenMetrics might also support that direction. Came across a gem on RED versus USE which I’ll have to come back to later. I am wondering if Micrometer might be the solution which just works out of the box, based on a pitch in an instrumenting talk by Simon P.
Enough Flopping, Need Requirements
I could probably waste a few days checking out some cool software. However this project needs to roll forward and there is stupid obvious solution. So, time to do a little System Analysis work. Here are the requirements beyond the default container metrics:
- Latency & Throughput: HTTP services
- Heap utilization and generation.
Obligatory Sad Trombone (In a old-time villain voice) Preempted again! I’ll get you next time…(tune in for the next exciting episode of monitoring!)