jigsaw
Automatically generate a sequence diagram from JSON of Trace in Datadog.
Example
w/ response
$ jigsaw -config ./example/config.yaml ./example/trace.json
@startuml
"v1-service" -> "v2-service": Ping Request
"v2-service" -> "v3-service": Pong Request
"v2-service" <-- "v3-service": Pong Response
"v1-service" <-- "v2-service": Ping Response
@enduml
w/o response
$ jigsaw -config ./example/config.yaml -no-response ./example/trace.json
@startuml
"v1-service" -> "v2-service": Ping Request
"v2-service" -> "v3-service": Pong Request
@enduml
Usage
You can get a trace as a JSON via https://app.datadoghq.com/api/v1/trace/TRACE_ID
.
$ go get -u github.com/upamune/jigsaw
$ jigsaw trace.json -c config.yaml
$ cat config.yaml
include_services:
- foo-service
- bar-service
exclude_grpc_services:
- /foo.bar.v0.Service
grpc_serivce_alias:
/foo.bar.v1.Service: v1-serivce
/foo.bar.v2.Service: v2-serivce