Releases: ChrisKujawa/zdb
1.3.0
What's Changed
Feats
Deps
- build(deps): bump actions/setup-java from 2.5.0 to 3.0.0 by @dependabot in #116
- build(deps): bump actions/checkout from 2 to 3 by @dependabot in #117
- build(deps): bump zeebe.version from 1.3.4 to 1.3.5 by @dependabot in #118
- build(deps): bump zeebe.version from 1.3.4 to 1.3.5 by @dependabot in #119
- build(deps-dev): bump awaitility from 4.1.1 to 4.2.0 by @dependabot in #122
- build(deps): bump maven-compiler-plugin from 3.10.0 to 3.10.1 by @dependabot in #123
Full Changelog: 1.2.0...1.3.0
1.2.0
What's Changed
Notes: Compatible with Zeebe v1.3.x
Feats
- add key to incident details by @korthout in #114
- feat(cli): detect current path and make 'zdb' able to be run from any folder via PATH env var by @nitram509 in #113
Deps
- build(deps): bump kotlinx-serialization-json-jvm from 1.3.0 to 1.3.1 by @dependabot in #75
- build(deps): bump kotlin.version from 1.5.31 to 1.6.0 by @dependabot in #76
- build(deps): bump actions/cache from 2.1.6 to 2.1.7 by @dependabot in #77
- build(deps-dev): bump junit-jupiter-api from 5.8.1 to 5.8.2 by @dependabot in #80
- build(deps): bump fmt-maven-plugin from 2.12 to 2.13 by @dependabot in #79
- build(deps-dev): bump junit-jupiter-engine from 5.8.1 to 5.8.2 by @dependabot in #78
- build(deps): bump actions/setup-java from 2.3.1 to 2.4.0 by @dependabot in #81
- build(deps-dev): bump zeebe-test-container from 3.1.0 to 3.2.0 by @dependabot in #83
- build(deps): bump zeebe.version from 1.2.4 to 1.2.6 by @dependabot in #84
- build(deps): bump kotlin.version from 1.6.0 to 1.6.10 by @dependabot in #85
- build(deps): bump zeebe.version from 1.2.4 to 1.2.6 by @dependabot in #86
- build(deps): bump zeebe.version from 1.2.6 to 1.2.7 by @dependabot in #87
- build(deps): bump zeebe.version from 1.2.6 to 1.2.7 by @dependabot in #88
- build(deps): bump actions/setup-java from 2.4.0 to 2.5.0 by @dependabot in #89
- build(deps): bump kotlinx-serialization-json-jvm from 1.3.1 to 1.3.2 by @dependabot in #90
- build(deps-dev): bump assertj-core from 3.21.0 to 3.22.0 by @dependabot in #92
- build(deps): bump zeebe.version from 1.2.7 to 1.2.9 by @dependabot in #91
- build(deps): bump zeebe.version from 1.2.7 to 1.2.9 by @dependabot in #93
- build(deps): bump zeebe.version from 1.2.9 to 1.3.0 by @dependabot in #94
- build(deps): bump maven-compiler-plugin from 3.8.1 to 3.9.0 by @dependabot in #96
- build(deps): bump version.slf4j from 1.7.32 to 1.7.33 by @dependabot in #98
- build(deps-dev): bump slf4j-simple from 1.7.32 to 1.7.33 by @dependabot in #97
- build(deps): bump zeebe.version from 1.2.9 to 1.3.1 by @dependabot in #99
- build(deps-dev): bump zeebe-test-container from 3.2.0 to 3.3.0 by @dependabot in #101
- build(deps-dev): bump slf4j-simple from 1.7.33 to 1.7.35 by @dependabot in #104
- build(deps-dev): bump slf4j-simple from 1.7.35 to 1.7.36 by @dependabot in #108
- build(deps): bump version.slf4j from 1.7.33 to 1.7.36 by @dependabot in #107
- build(deps): bump maven-compiler-plugin from 3.9.0 to 3.10.0 by @dependabot in #111
- build(deps): bump picocli from 4.6.2 to 4.6.3 by @dependabot in #109
- build(deps-dev): bump junit-jupiter from 1.16.2 to 1.16.3 by @dependabot in #100
- build(deps): bump zeebe.version from 1.3.1 to 1.3.4 by @dependabot in #110
- build(deps): bump zeebe.version from 1.3.0 to 1.3.4 by @dependabot in #115
New Contributors
- @nitram509 made their first contribution in #113
Full Changelog: 1.1.1...1.2.0
1.1.1
What's Changed
- build(deps): bump maven-surefire-plugin from 2.22.1 to 2.22.2 by @dependabot in #73
- build(deps-dev): bump zeebe-test-container from 3.0.0 to 3.1.0 by @dependabot in #72
- deps: bring deps back by @Zelldon in #74
Full Changelog: 1.1.0...1.1.1
1.1.0
What's Changed
Fixes
- fix: donot reuse the objects for reading multiple records in batch by @deepthidevaki in #61
- fix: handle empty log by @Zelldon in #69
- fix: encode unit in property name by @Zelldon in #70
- Fixed readme by change workflows to processes by @remcowesterhoud in #44
Features
Deps
- build(deps): bump actions/setup-java from 1 to 2.3.0 by @dependabot in #36
- build(deps): bump actions/cache from 1 to 2.1.6 by @dependabot in #35
- build(deps-dev): bump junit-jupiter-api from 5.7.1 to 5.7.2 by @dependabot in #41
- build(deps): bump license-maven-plugin from 3.0 to 4.1 by @dependabot in #40
- build(deps): bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 by @dependabot in #38
- build(deps): bump fmt-maven-plugin from 2.9 to 2.12 by @dependabot in #37
- build(deps-dev): bump junit-jupiter from 1.15.3 to 1.16.0 by @dependabot in #39
- build(deps): bump zeebe.version from 1.1.2 to 1.1.3 by @dependabot in #42
- build(deps-dev): bump junit-jupiter-api from 5.7.2 to 5.8.0 by @dependabot in #46
- build(deps-dev): bump junit-jupiter-engine from 5.7.2 to 5.8.0 by @dependabot in #45
- build(deps): bump zeebe.version from 1.1.2 to 1.1.3 by @dependabot in #43
- build(deps-dev): bump assertj-core from 3.20.2 to 3.21.0 by @dependabot in #48
- build(deps): bump kotlin.version from 1.5.30 to 1.5.31 by @dependabot in #47
- build(deps-dev): bump junit-jupiter-api from 5.8.0 to 5.8.1 by @dependabot in #50
- build(deps-dev): bump junit-jupiter-engine from 5.8.0 to 5.8.1 by @dependabot in #49
- build(deps): bump actions/setup-java from 2.3.0 to 2.3.1 by @dependabot in #52
- build(deps-dev): bump jackson-databind from 2.12.5 to 2.13.0 by @dependabot in #53
- build(deps): bump kotlinx-serialization-json-jvm from 1.2.2 to 1.3.0 by @dependabot in #51
- build(deps-dev): bump junit-jupiter from 1.16.0 to 1.16.1 by @dependabot in #56
- build(deps): bump zeebe.version from 1.1.3 to 1.2.1 by @dependabot in #55
- build(deps-dev): bump awaitility from 4.1.0 to 4.1.1 by @dependabot in #59
- build(deps-dev): bump junit-jupiter from 1.16.1 to 1.16.2 by @dependabot in #58
- build(deps): bump zeebe.version from 1.2.1 to 1.2.2 by @dependabot in #60
- build(deps): bump zeebe.version from 1.2.1 to 1.2.2 by @dependabot in #62
- build(deps): bump zeebe.version from 1.2.2 to 1.2.3 by @dependabot in #63
- build(deps): bump zeebe.version from 1.2.2 to 1.2.3 by @dependabot in #64
- build(deps): bump picocli from 4.6.1 to 4.6.2 by @dependabot in #65
- build(deps): bump zeebe.version from 1.2.3 to 1.2.4 by @dependabot in #66
- build(deps): bump zeebe.version from 1.2.3 to 1.2.4 by @dependabot in #67
New Contributors
- @remcowesterhoud made their first contribution in #44
Full Changelog: 1.0.1...1.1.0
1.0.1
Changelog
Disable annoying log messages
1.0.0
Changelog
ZDB was completely rewritten in Kotlin. All outputs are now valid JSON. The new kotlin backend is completely tested with integration tests (testcontainers) to verify the functionality.
Tested with Zeebe v1.0 (IT tests) and manually with 1.1.
In order to use it download the *.jar
file. For easier access you can use the zdb
script.
Example usage:
./zdb -V
zdb v1.0.0
For more details look at the examples here
1.0.0-alpha1
Description
Be aware this is an alpha release; There might be bugs or some features not fully working yet.
ZDB was completely rewritten in Kotlin. All outputs are now valid JSON. The new kotlin backend is completely tested with integration tests (testcontainers) to verify the functionallity.
Tested with 1.0 (IT tests) and manually with 1.1.
What is missing:
- List blacklisted instances
- Search for entries in the log
- reduce the size of the fat jar
0.5.1
Changelog
Fix Zdb Version
The version is now dynamically resolved from the manifest file.
$ zdb --version
zdb v0.5.1
0.5.0
Changelog
More Instance Information
Thanks @deepthidevaki for your contribution! (#6)
Print Instances for a Workflow
We are now able to print all instances for a workflow.
$ ./zdb workflow -p ../database/data/raft-partition/partitions/1/runtime/ list
Workflow[key: 2251799813685249, BPMN-process-id: "Process_orderprocess_328f2abc", version: 1]
$ ./zdb workflow -p ../database/data/raft-partition/partitions/1/runtime/ instances 2251799813685249
[2251799813685257, 2251799813685263]
Print Details to a specific instance
Based on the element instance key we can also print more details to a element instance:
$ ./zdb workflow -p ../database/data/raft-partition/partitions/1/runtime/ instances 2251799813685249
[2251799813685257, 2251799813685263]
$ ./zdb instance -p ../database/data/raft-partition/partitions/1/runtime/ entity 2251799813685257
Workflow instance:
BPMN process id: Process_orderprocess_328f2abc
Version: 1
WorkflowKey: 2251799813685249
WorkflowInstanceKey: 2251799813685257
ElementId: Process_orderprocess_328f2abc
BpmnElementType: PROCESS
ParentWorkflowInstanceKey: -1
\
|-Key: 2251799813685261
|-ElementId: Activity_0ciygqb
|-BpmnElementType: SERVICE_TASK
$ ./zdb instance -p ../database/data/raft-partition/partitions/1/runtime/ entity 2251799813685261
Workflow instance:
BPMN process id: Process_orderprocess_328f2abc
Version: 1
WorkflowKey: 2251799813685249
WorkflowInstanceKey: 2251799813685257
ElementId: Activity_0ciygqb
BpmnElementType: SERVICE_TASK
ParentWorkflowInstanceKey: -1
|-Key: 2251799813685261
|-ElementId: Activity_0ciygqb
|-BpmnElementType: SERVICE_TASK
Compact Log View
Thanks to @pihme and @korthout for your contribution! (#8)
We can now print the complete log (the ZeebeRecords) in a compact clear view.
$ ./zdb log print --format compact -p ../database/data/raft-partition/partitions/1/
Compact log representation:
--------
['C'ommand/'E'event/'R'ejection] [valueType] [intent] - #[position]->#[source record position] P[partitionId]K[key] - [summary of value]
P9K999 - key; #999 - record position; "ID" element/process id; @"elementid"/[P9K999] - element with ID and key
Keys are decomposed into partition id and per partition key (e.g. 2251799813685253 -> P1K005). If single partition, the partition is omitted.
Long IDs are shortened (e.g. 'startEvent_5d56488e-0570-416c-ba2d-36d2a3acea78' -> 'star..acea78'
--------
C DEPLOYMENT CREATE - #01-> -1 -1 - ship.bpmn
R DEPLOYMENT CREATE - #02->#01 -1 - ship.bpmn !INVALID_ARGUMENT (Expected to deploy new resources, but encountered the following errors:
'ship.bpmn': - Element: definitions
- ERROR: Must contain at least one executable process
- Element: Task_1255o7q
- ER..)
C DEPLOYMENT CREATE - #03-> -1 -1 - cryptocurrency exchange.bpmn
R DEPLOYMENT CREATE - #04->#03 -1 - cryptocurrency exchange.bpmn !INVALID_ARGUMENT (Expected to deploy new resources, but encountered the following errors:
'cryptocurrency exchange.bpmn': class org.camunda.bpm.model.xml.impl.instance.ModelElementInstanceImpl cannot be cast to class..)
C DEPLOYMENT CREATE - #05-> -1 -1 - order-process.bpmn
R DEPLOYMENT CREATE - #06->#05 -1 - order-process.bpmn !INVALID_ARGUMENT (Expected to deploy new resources, but encountered the following errors:
'order-process.bpmn': - Element: Message_15olcus > extensionElements > subscription
- ERROR: Expected expression but found..)
C DEPLOYMENT CREATE - #07-> -1 -1 - order-process.bpmn
E DEPLOYMENT CREATED - #08->#07 K02 - order-process.bpmn
C DEPLOYMENT DISTRIBUTE - #09->#08 K02 - order-process.bpmn
E DEPLOYMENT DISTR - #10->#09 K02 - order-process.bpmn
C WORKFLOW_INST_CREATION CREATE - #11-> -1 -1 - new <process "Process..28f2abc"> (no vars)
E WORKFLOW_INST ACTIVATING - #12->#11 K03 - PROCESS "Process..28f2abc" in <process "Process..28f2abc"[K03]>
E WORKFLOW_INST_CREATION CREATED - #13->#11 K04 - new <process "Process..28f2abc"> (no vars)
E WORKFLOW_INST ACTIVATED - #14->#12 K03 - PROCESS "Process..28f2abc" in <process "Process..28f2abc"[K03]>
E WORKFLOW_INST ACTIVATING - #15->#14 K05 - START_EVENT "Event_0ue554q" in <process "Process..28f2abc"[K03]>
E WORKFLOW_INST ACTIVATED - #16->#15 K05 - START_EVENT "Event_0ue554q" in <process "Process..28f2abc"[K03]>
E WORKFLOW_INST COMPLETING - #17->#16 K05 - START_EVENT "Event_0ue554q" in <process "Process..28f2abc"[K03]>
E WORKFLOW_INST COMPLETED - #18->#17 K05 - START_EVENT "Event_0ue554q" in <process "Process..28f2abc"[K03]>
[...]
0.4.0
Changelog
Illegal Access Warning is prevented from being logged:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.esotericsoftware.kryo.util.UnsafeUtil (file:/tmp/zdb-0.3.0.jar) to constructor java.nio.DirectByteBuffer(long,int,java.lang.Object)
WARNING: Please consider reporting this to the maintainers of com.esotericsoftware.kryo.util.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Is no longer logged on running an command.
Log status was improved:
Initial Entries contain now Indexes:
Before:
InitialEntries: [InitializeEntry{term=2971, timestamp=2021-02-10 03:15:59,934}, InitializeEntry{term=2973, timestamp=2021-02-10 03:18:56,289}, InitializeEntry{term=2975,
Now:
InitialEntries: [Indexed{index=123186138, entry=InitializeEntry{term=2971, timestamp=2021-02-10 03:15:59,934}}, Indexed{index=123186139, entry=InitializeEntry{term=2973, timestamp=2021-02-10 03:18:56,289}}
Meta data is printed
Meta:
Last voted for: 0
Persisted term: 3028
Configuration: Configuration{index=0, time=2020-11-13 11:41:30,995, members=[DefaultRaftMember{id=2, type=ACTIVE, updated=2020-11-13T10:41:30.995318Z}, DefaultRaftMember{id=1, type=ACTIVE, updated=2020-11-13T10:41:30.995318Z}, DefaultRaftMember{id=0, type=ACTIVE, updated=2020-11-13T10:41:30.995318Z}]}
Gives useful information about the cluster and raft.
Fix consistency check
The log was reported as consistent even if detected an invalid position (which was logged).
Install
Download the jar and bash script. Either you move them both to your /usr/bin or you move just the zdb and adjust it such that it can find the related zdb-*.jar. Make sure that you mark the script executable, via chmod +x /usr/bin/zdb.
It is possible to generate auto completion, see here https://github.com/Zelldon/zdb#autocompletion
Requires
In order to run this cli tool, you need to have Java 11 or higher installed.