Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate dot file format #121

Merged
merged 6 commits into from Mar 11, 2022
Merged

Generate dot file format #121

merged 6 commits into from Mar 11, 2022

Conversation

Zelldon
Copy link
Owner

@Zelldon Zelldon commented Mar 4, 2022

Format flag has changed to -f, --format, see here for more details.


Add support for dot file format on the log print command

    zdb log print [-d,--dot] -p

Resources:

Example:

From test generated:

test.dot
digraph log {
rankdir="RL";
1 [label="\nCOMMAND\nDEPLOYMENT\nCREATE\nKey: -1"];
2 [label="\nEVENT\nPROCESS\nCREATED\nKey: 2251799813685249"];
2 -> 1;
3 [label="\nEVENT\nPROCESS\nCREATED\nKey: 2251799813685250"];
3 -> 1;
4 [label="\nEVENT\nDEPLOYMENT\nCREATED\nKey: 2251799813685251"];
4 -> 1;
5 [label="\nEVENT\nDEPLOYMENT\nFULLY_DISTRIBUTED\nKey: 2251799813685251"];
5 -> 1;
6 [label="\nCOMMAND\nPROCESS_INSTANCE_CREATION\nCREATE\nKey: -1"];
7 [label="\nEVENT\nVARIABLE\nCREATED\nKey: 2251799813685253"];
7 -> 6;
8 [label="\nEVENT\nVARIABLE\nCREATED\nKey: 2251799813685254"];
8 -> 6;
9 [label="\nEVENT\nVARIABLE\nCREATED\nKey: 2251799813685255"];
9 -> 6;
10 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nPROCESS\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685252"];
10 -> 6;
11 [label="\nEVENT\nPROCESS_INSTANCE_CREATION\nCREATED\nKey: 2251799813685256"];
11 -> 6;
12 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nPROCESS\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685252"];
12 -> 10;
13 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATED\nPROCESS\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685252"];
13 -> 10;
14 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nSTART_EVENT\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: -1"];
14 -> 10;
15 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nSTART_EVENT\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685257"];
15 -> 14;
16 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATED\nSTART_EVENT\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685257"];
16 -> 14;
17 [label="\nCOMMAND\nPROCESS_INSTANCE\nCOMPLETE_ELEMENT\nSTART_EVENT\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685257"];
17 -> 14;
18 [label="\nCOMMAND\nMESSAGE\nPUBLISH\nKey: -1"];
19 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETING\nSTART_EVENT\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685257"];
19 -> 17;
20 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETED\nSTART_EVENT\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685257"];
20 -> 17;
21 [label="\nEVENT\nPROCESS_INSTANCE\nSEQUENCE_FLOW_TAKEN\nSEQUENCE_FLOW\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685258"];
21 -> 17;
22 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nPARALLEL_GATEWAY\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685259"];
22 -> 17;
23 [label="\nEVENT\nMESSAGE\nPUBLISHED\nKey: 2251799813685260"];
23 -> 18;
24 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nPARALLEL_GATEWAY\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685259"];
24 -> 22;
25 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATED\nPARALLEL_GATEWAY\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685259"];
25 -> 22;
26 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETING\nPARALLEL_GATEWAY\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685259"];
26 -> 22;
27 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETED\nPARALLEL_GATEWAY\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685259"];
27 -> 22;
28 [label="\nEVENT\nPROCESS_INSTANCE\nSEQUENCE_FLOW_TAKEN\nSEQUENCE_FLOW\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685261"];
28 -> 22;
29 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nSERVICE_TASK\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685262"];
29 -> 22;
30 [label="\nEVENT\nPROCESS_INSTANCE\nSEQUENCE_FLOW_TAKEN\nSEQUENCE_FLOW\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685263"];
30 -> 22;
31 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nSERVICE_TASK\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685264"];
31 -> 22;
32 [label="\nCOMMAND\nMESSAGE\nPUBLISH\nKey: -1"];
33 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nSERVICE_TASK\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685262"];
33 -> 29;
34 [label="\nEVENT\nINCIDENT\nCREATED\nKey: 2251799813685265"];
34 -> 29;
35 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nSERVICE_TASK\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685264"];
35 -> 31;
36 [label="\nEVENT\nJOB\nCREATED\nKey: 2251799813685266"];
36 -> 31;
37 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATED\nSERVICE_TASK\nPI Key: 2251799813685252\nPD Key: 2251799813685249\nKey: 2251799813685264"];
37 -> 31;
38 [label="\nEVENT\nMESSAGE\nPUBLISHED\nKey: 2251799813685267"];
38 -> 32;
39 [label="\nCOMMAND\nPROCESS_INSTANCE_CREATION\nCREATE_WITH_AWAITING_RESULT\nKey: -1"];
40 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nPROCESS\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685268"];
40 -> 39;
41 [label="\nEVENT\nPROCESS_INSTANCE_CREATION\nCREATED\nKey: 2251799813685269"];
41 -> 39;
42 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nPROCESS\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685268"];
42 -> 40;
43 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATED\nPROCESS\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685268"];
43 -> 40;
44 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nSTART_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: -1"];
44 -> 40;
45 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nSTART_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685270"];
45 -> 44;
46 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATED\nSTART_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685270"];
46 -> 44;
47 [label="\nCOMMAND\nPROCESS_INSTANCE\nCOMPLETE_ELEMENT\nSTART_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685270"];
47 -> 44;
48 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETING\nSTART_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685270"];
48 -> 47;
49 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETED\nSTART_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685270"];
49 -> 47;
50 [label="\nEVENT\nPROCESS_INSTANCE\nSEQUENCE_FLOW_TAKEN\nSEQUENCE_FLOW\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685271"];
50 -> 47;
51 [label="\nCOMMAND\nPROCESS_INSTANCE\nACTIVATE_ELEMENT\nEND_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685272"];
51 -> 47;
52 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATING\nEND_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685272"];
52 -> 51;
53 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_ACTIVATED\nEND_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685272"];
53 -> 51;
54 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETING\nEND_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685272"];
54 -> 51;
55 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETED\nEND_EVENT\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685272"];
55 -> 51;
56 [label="\nCOMMAND\nPROCESS_INSTANCE\nCOMPLETE_ELEMENT\nPROCESS\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685268"];
56 -> 51;
57 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETING\nPROCESS\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685268"];
57 -> 56;
58 [label="\nEVENT\nPROCESS_INSTANCE\nELEMENT_COMPLETED\nPROCESS\nPI Key: 2251799813685268\nPD Key: 2251799813685250\nKey: 2251799813685268"];
58 -> 56;
59 [label="\nCOMMAND\nJOB_BATCH\nACTIVATE\nKey: -1"];
60 [label="\nEVENT\nJOB_BATCH\nACTIVATED\nKey: 2251799813685273"];
60 -> 59;

}

Generate dot file via:
zdb log print -d -p ~/playground/raft-partition/partitions/1/ > output.dot

Generate svg
dot -Tsvg -o test.svg test.dot

test

The log content can be converted into dot file format
zdb log print [-d,--dot] -p
* Add rankdir Right to left
* Adjust the newlines, such they are written into one line and add a newline for dot. Reduces lines in the resulting file.
@Zelldon Zelldon requested a review from korthout March 4, 2022 14:14
Copy link
Collaborator

@korthout korthout left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work @Zelldon I like it! 👍

I have a few suggestions, but nothing blocking. Also note that the code scanning is pointing out some style problems.

backend/src/main/kotlin/io/zell/zdb/log/LogContent.kt Outdated Show resolved Hide resolved
backend/src/main/kotlin/io/zell/zdb/log/LogContent.kt Outdated Show resolved Hide resolved
cli/src/main/java/io/zell/zdb/LogPrintCommand.java Outdated Show resolved Hide resolved
@Zelldon Zelldon self-assigned this Mar 9, 2022
Format option allows to change log print output. Defaults to json, new option is dot format. Later we can add compact for example
@Zelldon
Copy link
Owner Author

Zelldon commented Mar 11, 2022

Thank you @korthout for your review ! ❤️ 🙇

@Zelldon Zelldon merged commit f6c6756 into master Mar 11, 2022
@Zelldon Zelldon deleted the zell-dot-file branch March 11, 2022 23:01
@Zelldon Zelldon mentioned this pull request Mar 11, 2022
@korthout
Copy link
Collaborator

@Zelldon Since you refer to the PR in the release, please update the PR description with the new --format flag usage

@Zelldon
Copy link
Owner Author

Zelldon commented Mar 14, 2022

@korthout done. I add yesterday more details to the readme see here https://github.com/Zelldon/zdb#format

@Zelldon Zelldon mentioned this pull request May 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants