Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Trace object should contain(Span object should be similar to OpenTracing spec)

Code Block
"edata": {
  "id": {UUID}, // TraceId. Common for all sub-systems(this is to track entire workflow front-end to back-end)
  "name": "qr-scan" // service/module name to identify
  "span" {
     "nametraceID": {UUID},
     "operationName": {string}  //ex: "qr-scan" for the qr scan workflow. Use some unique string for each workflow/span
     "idspanID": {worflowId}, // UniqueId for this workflow. Always same for multiple scans
     "parentIdparentSpanId": {span.id} // Optional: This is to track who is the parent of the request. Helps to create the tree structure of the trace
     "context": [{ "type":"", "key":"", "value":""}] // Context of the workflow, ex: "dialcode": "4XJG3F" on scan of this dial code workflow started
     "tags": [{"key":"", "type":"", "value":""}]  // https://github.com/opentracing/specification/blob/master/semantic_conventions.md#span-tags-table
   }  
}

OpenTracing API “SPAN“ spec:

Code Block
{
  "traceID": "73abf3be4c32c2b8",
  "spanID": "73abf3be4c32c2b8",
  "flags": 1,
  "operationName": "operation",
  "references": [],
  "startTime": 1531757144093000,
  "duration": 9888,
  "parentSpanId": 0,
  "tags": [
    {
      "key": "sampler.type",
      "type": "string",
      "value": "const"
    },
    {
      "key": "sampler.param",
      "type": "bool",
      "value": true
    }
  ],
  "logs": [],
  "processID": "p1",
  "warnings": null
}

Use OpenTracing API to generate Trace & Span objects. Jenkins & Jaeger have built on top of these API’s.

Sample Data to Analyze: https://docs.google.com/spreadsheets/d/1v96dZ0m21OVHswfZU84frOcymYd1kVqD7SqYLCyguFE/edit?usp=sharing

font-end implementation:

Use Javascript NPM module for front-end:

...