Skip to content
This repository has been archived by the owner on May 29, 2024. It is now read-only.

Mission: Distributed Tracing Istio

Ladislav Thon edited this page Jun 29, 2018 · 2 revisions

lthon: THIS PAGE IS (MOST LIKELY) A BAD DUPLICATE AND SHOULD BE REMOVED, THE CORRECT ONE IS HERE: https://github.com/fabric8-launcher/launcher-documentation/wiki/ISTIO-Distributed-Tracing-Mission

ISTIO Distributed Tracing Mission

ID Short Name

109

istio-distributed-tracing

Group Owner

Tracing

Georgios Andrianakis

Description

This mission showcases the interaction of Distributed Tracing capabilities of Istio and properly instrumented microservices.

User Problem

In a microservice topology, where a single incoming HTTP call to the cluster could end up calling a host of other services, getting insights on the interactions of the individual services and performing debugging becomes complicated. Distributed tracing provides developers and operators the ability to gain insights on these interactions. Istio provides some Distributed Tracing features out of the box but also places a small requirement (the propagation of special HTTP headers) on applications deployed in the Service Mesh in order to fully realise the benefits of Distributed Tracing.

Concepts and Architectural Patterns

Prerequisites

The applications deployed to the Service Mesh need to be properly instrumented. At the very least, instrumentation consists of propagating the proper HTTP headers when making requests between microservices. There are two options here: Manual instrumentation where the developer of each service needs to take care to propagate the HTTP headers to all downstream calls Use a library to auto-magically perform the instrumentation These libraries in addition to propagating headers, also create new spans for each application component they instrument

The second option besides making the code of each service much cleaner, also yields the additional benefit of providing extra insight into the inner workings of the application. When the library reports it’s spans to the same collector as the Envoy proxy does, a complete picture of the paths an incoming HTTP request follows can be deduced. This blog post on distributed tracing provides a wealth of details.

Use Case

We simply reuse the standard greeting_service → name_service provided by other boosters. The only difference is that we add the necessary plumbing for propagation of the Tracing HTTP Headers.

Acceptance Criteria

Vert.x-specific Acceptance Criteria

Swarm-specific Acceptance Criteria

Boot-specific Acceptance Criteria

Node.js Acceptance Criteria

Integration Requirements

Tags

Notes

Approval

PM

Name

DevExp

Name

Vert.x

Name

WildFly Swarm

Name

Spring Boot

Name

Node.js

Name

QE

Name

Docs

Name

Architect

Name