New Learn Tutorials: Get Started with Service Mesh Observability and Traffic Management

Hello Consulate! I’m happy to share with you the publication of two new tutorials in our Consul on Kubernetes getting started collection. Our new observability tutorial will show you how you can install an evaluation instance of both Prometheus and Grafana to your mesh with just a couple of helm values entries. We also have a new traffic management tutorial that provides a comprehensive overview of all of Consul service mesh’s traffic management features. I hope you enjoy, and as always, feedback is welcome.

4 Likes

Hi @DerekStrickland , is this possible to configure with Nomad instead of Kubernetes?

After a great deal of reading the docs and trying things out, the main hurdle I’ve failed to cross is exposure of the Envoy metrics at the envoy_prometheus_bind_addr in my proxy’s configuration. What you see below is a snippet of my Nomad job configuration regarding the proxy’s configuration (which I’ve also tried with 0.0.0.0 instead of the node’s interpolated IP):

        sidecar_service {
          proxy {
            config {
              protocol = "http"
              envoy_prometheus_bind_addr = "{{ env \"NOMAD_IP_service\" }}:5555"
            }
          }
        }

I’ve also tried this in combination with setting the prometheus_backend_port setting in my sidecar_task configuration within my Nomad job:

        sidecar_task {
          config {
            args = [
              "-prometheus-backend-port",
              "5555"
            ]
          }
        }

I’ve framed my question in the light of “is this possible outside of k8s” because the documentation of this feature of Consul seems almost completely (but not totally :slight_smile: ) intertwined with references to Kubernetes. It’s quite possible I just don’t have the configuration done right yet, but perhaps a Learn guide on configuring this in Nomad would help, if that were the case.

Thank you for working on all these cool features!

Docs I’ve read:
The tutorial in this post

Hi @paladin-devops,

Thanks for bringing up this question! I actually have now transitioned to the Nomad engineering team, so you asking this question of me is very serendipitous.

I’ll look into this for you and see what I can find out and if I can’t provide some samples. Also, I’d like to mention Nomad Pack, our new package manager for Nomad. We just released in the week of HashiConf, and it already includes packs for Grafana and Prometheus. I’ll probably start by looking at how to enhance those packs to include the necessary configuration.

If you happen to get there before me, please update this thread. I’d love to get this incorporated.

Thanks for using Consul and Nomad

Derek

1 Like

@DerekStrickland after a little more persistence and digging, I’ve got it working! This blog post helped me out a lot:

Also, I was running Consul 1.10.1, but the fix for the issue below was backported to 1.10 in version 1.10.2. After upgrading my client, I was able to successfully scrape Envoy metrics from Prometheus!

Thank you for considering to take another look into this. I still think a Learn guide would be helpful to Nomad users, though! :slight_smile:

Good luck with Nomad!

Great news! Thanks for sharing with the Community. I totally agree that a learn guide would be useful, and I’ve got this in my backlog now. Great work!

1 Like