Skip to content

Copy the traceparent header between calls to show how tracing works across multiple API calls #650

Open
@msfussell

Description

@msfussell

This is for updating the Hello-World and Hello-Kubernetes quickstarts to show tracing across two independent API calls. A small change in the Node application can show this end to end by copying the trace header as shown below.

app.post('/neworder', (req, res) => {
    const data = req.body.data;
    const traceparent = req.headers.traceparent;
    const orderId = data.orderId;
    console.log("Got a new order! Order ID: " + orderId + " traceparent: " + traceparent);

    const state = [{
        key: "order",
        value: data
    }];

    fetch(stateUrl, {
        method: "POST",
        body: JSON.stringify(state),
        headers: {
            "Content-Type": "application/json",
            "traceparent": traceparent  //copy the traceparent header from the incoming request to trace the call to state management API
        }
    }).then((response) => {
        if (!response.ok) {
            throw "Failed to persist state.";
        }


Then instead of this

image

you get this for zipkin tracing.

image

This will work for both self hosted and K8s. At the same time it is worth updating the Observability Tutorial to show this end to end tracing since this not that well described in the docs today.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions