frouioui / tagenal

Tagenal is a playground app using Vitess, Redis, Traefik and Jaeger on Kubernetes
https://frouioui.github.io/tagenal/
MIT License
7 stars 0 forks source link

Simple integration of Jaeger / Opentracing #32

Closed frouioui closed 3 years ago

frouioui commented 3 years ago

This PR proposes a simple a integration of Jaeger in to tagenal. A new namespace observability was created and hosts the operator, the agent, and all the other required resources to run Jaeger.

Jaeger is run using the AllInOne configuration, as the purposes is solely for demo / experimentation.

Tracing is implemented throughout the whole application. From Traefik to Vitess.

Is traced:

The propagation from the APIs to Vitess was achieved by adding a DialOption (grpc.UnaryClientInterceptor) into the GRPCDialOptions of the vitessdriver's configuration.

A new service was created in the vitess keyspace, which aim to ease of development. We can now call vitess-zone1-vtgate-srv instead of calling the pseudo-random-generated service name by Vitess operator.

frouioui commented 3 years ago

Here is an example of a trace going from the web client, to Traefik, then to the Frontend, then to the Articles API, and finally reaching Vitess cluster (more specifically vtgate, and then the multiple vttablets, since we have 2 shards).

image