Browse Source

tools/etcd-dump-logs: support parsing v3 log

Xiang Li 10 years ago
parent
commit
3611a9ad2e
1 changed files with 19 additions and 12 deletions
  1. 19 12
      tools/etcd-dump-logs/main.go

+ 19 - 12
tools/etcd-dump-logs/main.go

@@ -97,21 +97,28 @@ func main() {
 		switch e.Type {
 		switch e.Type {
 		case raftpb.EntryNormal:
 		case raftpb.EntryNormal:
 			msg = fmt.Sprintf("%s\tnorm", msg)
 			msg = fmt.Sprintf("%s\tnorm", msg)
-			var r etcdserverpb.Request
-			if err := r.Unmarshal(e.Data); err != nil {
-				msg = fmt.Sprintf("%s\t???", msg)
+
+			var rr etcdserverpb.InternalRaftRequest
+			if err := rr.Unmarshal(e.Data); err == nil {
+				msg = fmt.Sprintf("%s\t%s", msg, rr.String())
 				break
 				break
 			}
 			}
-			switch r.Method {
-			case "":
-				msg = fmt.Sprintf("%s\tnoop", msg)
-			case "SYNC":
-				msg = fmt.Sprintf("%s\tmethod=SYNC time=%q", msg, time.Unix(0, r.Time))
-			case "QGET", "DELETE":
-				msg = fmt.Sprintf("%s\tmethod=%s path=%s", msg, r.Method, excerpt(r.Path, 64, 64))
-			default:
-				msg = fmt.Sprintf("%s\tmethod=%s path=%s val=%s", msg, r.Method, excerpt(r.Path, 64, 64), excerpt(r.Val, 128, 0))
+
+			var r etcdserverpb.Request
+			if err := r.Unmarshal(e.Data); err == nil {
+				switch r.Method {
+				case "":
+					msg = fmt.Sprintf("%s\tnoop", msg)
+				case "SYNC":
+					msg = fmt.Sprintf("%s\tmethod=SYNC time=%q", msg, time.Unix(0, r.Time))
+				case "QGET", "DELETE":
+					msg = fmt.Sprintf("%s\tmethod=%s path=%s", msg, r.Method, excerpt(r.Path, 64, 64))
+				default:
+					msg = fmt.Sprintf("%s\tmethod=%s path=%s val=%s", msg, r.Method, excerpt(r.Path, 64, 64), excerpt(r.Val, 128, 0))
+				}
+				break
 			}
 			}
+			msg = fmt.Sprintf("%s\t???", msg)
 		case raftpb.EntryConfChange:
 		case raftpb.EntryConfChange:
 			msg = fmt.Sprintf("%s\tconf", msg)
 			msg = fmt.Sprintf("%s\tconf", msg)
 			var r raftpb.ConfChange
 			var r raftpb.ConfChange