We have Jaeger instrumentation in our applications. We usually are happy with the Jaeger UI, but with very large traces the web view becomes quite unusable. With Node.js we also use Chrome Flame Graphs with good and very tactile results.
Jaeger can export JSON files that look like this:
{"data":[{"traceID":"16c0500882122d8a16c05008820aeb3a","spans":[{"traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c05008820aeb3a","flags":1,"operationName":"TaskProcessor","references":[],"startTime":1639398261835322,"duration":216903298,"tags":[{"key":"host","type":"string","value":""},{"key":"requestUri","type":"bool","value":false},{"key":"queryString","type":"string","value":""},{"key":"internal.span.format","type":"string","value":"proto"}],"logs":[],"processID":"p1","warnings":null},{"traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c0500888b52131","flags":1,"operationName":"__construct","references":[{"refType":"CHILD_OF","traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c05008820aeb3a"}],"startTime":1639398261946284,"duration":51,"tags":[{"key":"magentoType","type":"string","value":"model"},{"key":"className","type":"string","value":"Peak_Touristcard_Model_TaskProcessor"},{"key":"internal.span.format","type":"string","value":"proto"}],"logs":[],"processID":"p2","warnings":null},{"traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c0500888b4c024","flags":1,"operationName":"_initOldFieldsMap","references":[{"refType":"CHILD_OF","traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c0500888b52131"}],"startTime":1639398261946305,"duration":6,"tags":[{"key":"magentoType","type":"string","value":"model"},{"key":"className","type":"string","value":"Peak_Touristcard_Model_TaskProcessor"},{"key":"internal.span.format","type":"string","value":"proto"}],"logs":[],"processID":"p2","warnings":null},{"traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c0500888b4982a","flags":1,"operationName":"_addFullNames","references":[{"refType":"CHILD_OF","traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c0500888b52131"}],"startTime":1639398261946321,"duration":5,"tags":[{"key":"magentoType","type":"string","value":"model"},{"key":"className","type":"string","value":"Peak_Touristcard_Model_TaskProcessor"},{"key":"internal.span.format","type":"string","value":"proto"}],"logs":[],"processID":"p2","warnings":null},{"traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c0500888b500f1","flags":1,"operationName":"_construct","references":[{"refType":"CHILD_OF","traceID":"16c0500882122d8a16c05008820aeb3a","spanID":"16c0500888b52131"}],"startTime":1639398261946332,"duration":2,"tags":[{"key":"magentoType","type":"string","value":"model"},{"key":"className","type":"string","value":"Peak_Touristcard_Model_TaskProcessor"},{"key":"internal.span.format","type":"string","value":"proto"}],"logs":[],"processID":"p2","warnings":null},
...
Chrome Flame Graphs can open JSON format like this:
[{"args":{"name":"swapper"},"cat":"__metadata","name":"thread_name","ph":"M","pid":514,"tid":0,"ts":0},
{"args":{"name":"CrBrowserMain"},"cat":"__metadata","name":"thread_name","ph":"M","pid":514,"tid":259,"ts":0},
{"args":{"name":"Compositor"},"cat":"__metadata","name":"thread_name","ph":"M","pid":46733,"tid":42243,"ts":0},
{"args":{"name":"ThreadPoolServiceThread"},"cat":"__metadata","name":"thread_name","ph":"M","pid":514,"tid":25607,"ts":0},
{"args":{"name":"ThreadPoolServiceThread"},"cat":"__metadata","name":"thread_name","ph":"M","pid":46733,"tid":20739,"ts":0},
...
Does anybody have experience with viewing Jaeger traces in anything else than Jaeger UI, possibly even in Google Flame Graph?