Debugging the Ambassador API Gateway on Kubernetes: Lessons Learned

Daniel Bryant
Ambassador Labs
Published in
2 min readOct 18, 2018

--

Over the past few weeks I’ve been busy experimenting with the distributed tracing functionality included with the the open source Ambassador API gateway — you can read about the OpenZipkin and Jaeger integration, and also about the LightStep [x]PM integration — and due to a couple of small bugs with the Ambassador generated Envoy configuration, I found myself needing to learn more about debugging Ambassador.

I’ve got to tip my hat here to Flynn, who leads the development of Ambassador here at Datawire, and also to Alex Gervais, an engineer at AppDirect and long-time Ambassador contributor, for the help and guidance they provided. I learned a bunch about not only the internals of Ambassador, but also about the v1 Envoy configuration and the v2 configuration and Aggregated Discovery Service (ADS) support in the more recent versions of Envoy (and we have a beta release of Ambassador with support for the latter).

As a result of this, I’ve added a “Debugging Ambassador” guide to the Ambassador documentation, that outlines some of the tricks I learned about determining if Ambassador is up and running, and also about viewing and experimenting with the generated Envoy config.

Please do let me know if this is helpful by dropping a line in the comments below, and I would also welcome feedback and improvements to the docs via a GitHub issue or PR via the Ambassador GitHub repo.

--

--

DevRel and Technical GTM Leader | News/Podcasts @InfoQ | Web 1.0/2.0 coder, platform engineer, Java Champion, CS PhD | cloud, K8s, APIs, IPAs | learner/teacher