### etcd-dump-logs etcd-dump-logs dumps the log from data directory. ``` Usage: etcd-dump-logs [data dir] * Data dir is where the snapshots and WAL logs are located. The structure of the data dir should look like this: - data_dir/member - data_dir/member/snap - data_dir/member/wal - data_dir/member/wal/0000000000000000-0000000000000000.wal Flags: -entry-type string If set, filters output by entry type. Must be one or more than one of: ConfigChange, Normal, Request, InternalRaftRequest, IRRRange, IRRPut, IRRDeleteRange, IRRTxn, IRRCompaction, IRRLeaseGrant, IRRLeaseRevoke -start-index uint The index to start dumping -start-snap string The base name of snapshot file to start dumping -stream-decoder string The name and arguments of an executable decoding tool, the executable must process hex encoded lines of binary input (from etcd-dump-logs) and output a hex encoded line of binary for each input line ``` #### etcd-dump-logs -entry-type [data dir] Filter entries by type from WAL log. ``` $ etcd-dump-logs -entry-type IRRTxn /tmp/datadir Snapshot: empty Start dupmping log entries from snapshot. WAL metadata: nodeID=0 clusterID=0 term=0 commitIndex=0 vote=0 WAL entries: lastIndex=34 term index type data 7 13 norm ID:8 txn: > failure: > > Entry types (IRRTxn) count is : 1 $ etcd-dump-logs -entry-type ConfigChange,IRRCompaction /tmp/datadir Snapshot: empty Start dupmping log entries from snapshot. WAL metadata: nodeID=0 clusterID=0 term=0 commitIndex=0 vote=0 WAL entries: lastIndex=34 term index type data 1 1 conf method=ConfChangeAddNode id=2 2 2 conf method=ConfChangeRemoveNode id=2 2 3 conf method=ConfChangeUpdateNode id=2 2 4 conf method=ConfChangeAddLearnerNode id=3 8 14 norm ID:9 compaction: Entry types (ConfigChange,IRRCompaction) count is : 5 ``` #### etcd-dump-logs -stream-decoder [data dir] Decode each entry based on logic in the passed decoder. Decoder status and decoded data are listed in separated tab/columns in the ouput. For parsing purpose, the output from decoder are expected to be in format of "|". Please refer to [decoder_correctoutputformat.sh] as an example. However, if the decoder output format is not as expected, "decoder_status" will be "decoder output format is not right, print output anyway", and all output from decoder will be considered as "decoded_data" ``` $ etcd-dump-logs -stream-decoder decoder_correctoutputformat.sh /tmp/datadir Snapshot: empty Start dupmping log entries from snapshot. WAL metadata: nodeID=0 clusterID=0 term=0 commitIndex=0 vote=0 WAL entries: lastIndex=34 term index type data decoder_status decoded_data 1 1 conf method=ConfChangeAddNode id=2 ERROR jhjaajjjahjbbbjj 3 2 norm noop OK jhjjabjjaajfbfgjfagdfhcjbbahgbbbfhfegibbcabbfhffbbbcbbfhfibbcaebbbgiffbbedgdbhjacbjjchjjdjjjdhjiejjjehjafjjjfhjjgjjjghjahjjajjhhjajj 3 3 norm method=QGET path="/path1" OK jhjaabjdeadgdeedaajfbfgjfagdfhcabbacgbbbcjbbcabbcabbbcbbcbbbcaebbbccbbedgdbhjjcbjjchjjdjjjdhjiejjjehjafjjjfhjjgjjjghjahjjajjhhjajj 7 4 norm ID:8 txn: > failure: > > OK jhjhcbadabjhaajfjajafaabjafbaajhaajfjajafaabjafb 8 5 norm ID:9 compaction: ERROR jhjicajbajja 9 6 norm ID:10 lease_grant: ERROR jhjadbjdjhjaajja 12 7 norm ID:13 auth_enable:<> ERROR jhjdcbcejj 27 8 norm ??? ERROR cf Entry types () count is : 8 ``` ``` $ etcd-dump-logs -stream-decoder decoder_wrongoutputformat.sh /tmp/datadir Snapshot: empty Start dupmping log entries from snapshot. WAL metadata: nodeID=0 clusterID=0 term=0 commitIndex=0 vote=0 WAL entries: lastIndex=34 term index type data decoder_status decoded_data 1 1 conf method=ConfChangeAddNode id=2 decoder output format is not right, print output anyway jhjaajjjahjbbbjj 3 2 norm noop decoder output format is not right, print output anyway jhjjabjjaajfbfgjfagdfhcjbbahgbbbfhfegibbcabbfhffbbbcbbfhfibbcaebbbgiffbbedgdbhjacbjjchjjdjjjdhjiejjjehjafjjjfhjjgjjjghjahjjajjhhjajj 3 3 norm method=QGET path="/path1" decoder output format is not right, print output anyway jhjaabjdeadgdeedaajfbfgjfagdfhcabbacgbbbcjbbcabbcabbbcbbcbbbcaebbbccbbedgdbhjjcbjjchjjdjjjdhjiejjjehjafjjjfhjjgjjjghjahjjajjhhjajj 7 4 norm ID:8 txn: > failure: > > decoder output format is not right, print output anyway jhjhcbadabjhaajfjajafaabjafbaajhaajfjajafaabjafb 8 5 norm ID:9 compaction: decoder output format is not right, print output anyway jhjicajbajja 9 6 norm ID:10 lease_grant: decoder output format is not right, print output anyway jhjadbjdjhjaajja 12 7 norm ID:13 auth_enable:<> decoder output format is not right, print output anyway jhjdcbcejj 27 8 norm ??? decoder output format is not right, print output anyway cf Entry types () count is : 8 ``` #### etcd-dump-logs -start-index [data dir] Only shows WAL log entries after the specified start-index number, exclusively. ``` $ etcd-dump-logs -start-index 30 /tmp/datadir Start dumping log entries from index 30. WAL metadata: nodeID=0 clusterID=0 term=0 commitIndex=0 vote=0 WAL entries: lastIndex=34 term index type data 25 31 norm ID:26 auth_role_get: 26 32 norm ID:27 auth_role_grant_permission: > 27 33 norm ID:28 auth_role_revoke_permission: 27 34 norm ??? Entry types () count is : 4 ``` [decoder_correctoutputformat.sh]: ./testdecoder/decoder_correctoutputformat.sh