July 2019
Intermediate to advanced
502 pages
14h
English
There are several steps here, but the gist of it is that you can think of tracing as another form of middleware. The core abstraction is a span. A request spans multiple microservices, and you record those spans and associate logs with them.
Here is the tracing middleware, which is similar to the logging middleware, except that it starts a span for the GetLinks() method instead of logging. As usual, there is the factory function that returns a linkManagerMiddleware function that calls the next middleware in the chain. The factory function accepts a tracer, which can start and finish a span:
package serviceimport ( "github.com/opentracing/opentracing-go" om "github.com/the-gigi/delinkcious/pkg/object_model" ...