数据模型
数据模型
为了说明 Zipkin 展现的追踪数据,让我们把 Zipkin 中的信息与其对应的数据进行关联。通过对比,我们可以发现:
- 带内和带外请求在不同的跨度中
- 包含
cs的跨度可以记录一个它要去哪里的sa的标记这有助于当目标没有 Zipkin 装配的时候,比如 MySQL
首先,让我们看一下在 Zipkin 追踪视图里的展现的一条追踪数据:

相同数据在 Zipkin 数据模型中:
1. [2. {3. "traceId": "bd7a977555f6b982",4. "name": "get",5. "id": "bd7a977555f6b982",6. "timestamp": 1458702548467000,7. "duration": 386000,8. "annotations": [9. {10. "endpoint": {11. "serviceName": "zipkin-query",12. "ipv4": "192.168.1.2",13. "port": 941114. },15. "timestamp": 1458702548467000,16. "value": "sr"17. },18. {19. "endpoint": {20. "serviceName": "zipkin-query",21. "ipv4": "192.168.1.2",22. "port": 941123. },24. "timestamp": 1458702548853000,25. "value": "ss"26. }27. ],28. "binaryAnnotations": []29. },30. {31. "traceId": "bd7a977555f6b982",32. "name": "get-traces",33. "id": "ebf33e1a81dc6f71",34. "parentId": "bd7a977555f6b982",35. "timestamp": 1458702548478000,36. "duration": 354374,37. "annotations": [],38. "binaryAnnotations": [39. {40. "key": "lc",41. "value": "JDBCSpanStore",42. "endpoint": {43. "serviceName": "zipkin-query",44. "ipv4": "192.168.1.2",45. "port": 941146. }47. },48. {49. "key": "request",50. "value": "QueryRequest{serviceName=zipkin-query, spanName=null, annotations=[], binaryAnnotations={}, minDuration=null, maxDuration=null, endTs=1458702548478, lookback=86400000, limit=1}",51. "endpoint": {52. "serviceName": "zipkin-query",53. "ipv4": "192.168.1.2",54. "port": 941155. }56. }57. ]58. },59. {60. "traceId": "bd7a977555f6b982",61. "name": "query",62. "id": "be2d01e33cc78d97",63. "parentId": "ebf33e1a81dc6f71",64. "timestamp": 1458702548786000,65. "duration": 13000,66. "annotations": [67. {68. "endpoint": {69. "serviceName": "zipkin-query",70. "ipv4": "192.168.1.2",71. "port": 941172. },73. "timestamp": 1458702548786000,74. "value": "cs"75. },76. {77. "endpoint": {78. "serviceName": "zipkin-query",79. "ipv4": "192.168.1.2",80. "port": 941181. },82. "timestamp": 1458702548799000,83. "value": "cr"84. }85. ],86. "binaryAnnotations": [87. {88. "key": "jdbc.query",89. "value": "select distinct `zipkin_spans`.`trace_id` from `zipkin_spans` join `zipkin_annotations` on (`zipkin_spans`.`trace_id` = `zipkin_annotations`.`trace_id` and `zipkin_spans`.`id` = `zipkin_annotations`.`span_id`) where (`zipkin_annotations`.`endpoint_service_name` = ? and `zipkin_spans`.`start_ts` between ? and ?) order by `zipkin_spans`.`start_ts` desc limit ?",90. "endpoint": {91. "serviceName": "zipkin-query",92. "ipv4": "192.168.1.2",93. "port": 941194. }95. },96. {97. "key": "sa",98. "value": true,99. "endpoint": {100. "serviceName": "spanstore-jdbc",101. "ipv4": "127.0.0.1",102. "port": 3306103. }104. }105. ]106. },107. {108. "traceId": "bd7a977555f6b982",109. "name": "query",110. "id": "13038c5fee5a2f2e",111. "parentId": "ebf33e1a81dc6f71",112. "timestamp": 1458702548817000,113. "duration": 1000,114. "annotations": [115. {116. "endpoint": {117. "serviceName": "zipkin-query",118. "ipv4": "192.168.1.2",119. "port": 9411120. },121. "timestamp": 1458702548817000,122. "value": "cs"123. },124. {125. "endpoint": {126. "serviceName": "zipkin-query",127. "ipv4": "192.168.1.2",128. "port": 9411129. },130. "timestamp": 1458702548818000,131. "value": "cr"132. }133. ],134. "binaryAnnotations": [135. {136. "key": "jdbc.query",137. "value": "select `zipkin_spans`.`trace_id`, `zipkin_spans`.`id`, `zipkin_spans`.`name`, `zipkin_spans`.`parent_id`, `zipkin_spans`.`debug`, `zipkin_spans`.`start_ts`, `zipkin_spans`.`duration` from `zipkin_spans` where `zipkin_spans`.`trace_id` in (?)",138. "endpoint": {139. "serviceName": "zipkin-query",140. "ipv4": "192.168.1.2",141. "port": 9411142. }143. },144. {145. "key": "sa",146. "value": true,147. "endpoint": {148. "serviceName": "spanstore-jdbc",149. "ipv4": "127.0.0.1",150. "port": 3306151. }152. }153. ]154. },155. {156. "traceId": "bd7a977555f6b982",157. "name": "query",158. "id": "37ee55f3d3a94336",159. "parentId": "ebf33e1a81dc6f71",160. "timestamp": 1458702548827000,161. "duration": 2000,162. "annotations": [163. {164. "endpoint": {165. "serviceName": "zipkin-query",166. "ipv4": "192.168.1.2",167. "port": 9411168. },169. "timestamp": 1458702548827000,170. "value": "cs"171. },172. {173. "endpoint": {174. "serviceName": "zipkin-query",175. "ipv4": "192.168.1.2",176. "port": 9411177. },178. "timestamp": 1458702548829000,179. "value": "cr"180. }181. ],182. "binaryAnnotations": [183. {184. "key": "jdbc.query",185. "value": "select `zipkin_annotations`.`trace_id`, `zipkin_annotations`.`span_id`, `zipkin_annotations`.`a_key`, `zipkin_annotations`.`a_value`, `zipkin_annotations`.`a_type`, `zipkin_annotations`.`a_timestamp`, `zipkin_annotations`.`endpoint_ipv4`, `zipkin_annotations`.`endpoint_port`, `zipkin_annotations`.`endpoint_service_name` from `zipkin_annotations` where `zipkin_annotations`.`trace_id` in (?) order by `zipkin_annotations`.`a_timestamp` asc, `zipkin_annotations`.`a_key` asc",186. "endpoint": {187. "serviceName": "zipkin-query",188. "ipv4": "192.168.1.2",189. "port": 9411190. }191. },192. {193. "key": "sa",194. "value": true,195. "endpoint": {196. "serviceName": "spanstore-jdbc",197. "ipv4": "127.0.0.1",198. "port": 3306199. }200. }201. ]202. }203. ]
