ZipkinServer存储Cassandra数据分析

接着上篇我们来分析一下存储在cassandra的数据结构。

对cassandra不了解的可以看我cassandra的博客 cassandra博客目录

上一篇博客地址微服务应用开发进阶①链路追踪Zipkin

数据简述

ZipkinServer存储方式选择Cassandra3,指定相应的keyspace,我们可以看到有五张表。

  --STORAGE_TYPE=cassandra3
  • select * from autocomplete_tags; 
  • select * from dependency; 
  • select * from span; 
  • select * from span_by_service; 
  • select * from trace_by_service_span; 

autocomplete_tags: 找到半天找到一份说明,用来压测cassandra的表(浪费时间。。)

dependency:如图明显可以看到是保存依赖关系的一张表

span:zipkin基本的存储单元,包含一次请求的信息

annotations_query  字段类型text  请求的基本信息

http.method░http.method=POST
░http.path░http.path=/demo/servicea/person/save░mvc.controller.class░mvc.controller.class=PersonController░mvc.controller.method░mvc.controller.method=save░

Kind: 字段类型text server还是client;

l_ep和 e_ep :服务名和Ip等,示例如下

 {service:'service-a',ipv4:'192.168.56.1',ipv6:NULL,port:0}   {service:NULL,ipv4:'127.0.0.1',ipv6:NULL,port:58397} 

I_service 字段类型 text serviceName

tag 字段类型 map<text,text>  具体执行信息

span_by_service:serviceName和方法的信息

trace_by_service_span:tracle和service的信息

贴一份es的完整的span信息参考(网上找的,侵删):

{
  "_index": "zipkin:span-2018-08-07",
  "_type": "span",
  "_id": "AWUSkiT_lG0UQ3Osck2S",
  "_version": 1,
  "_score": 1,
  "_source": {
    "traceId": "6c3c748ff257f23b",
    "duration": 2928879,
    "localEndpoint": {
      "ipv4": "10.208.204.119",
      "port": 7900,
      "serviceName": "sleuthconsumer"
    },
    "timestamp_millis": 1533614872966,
    "kind": "SERVER",
    "name": "http:/consumer",
    "id": "6c3c748ff257f23b",
    "timestamp": 1533614872966000,
    "parentId": "6c3c748ff257f23b",
    "tags": {
      "mvc.controller.class": "HomeController",
      "mvc.controller.method": "service1",
      "lc": "hystrix",
      "spring.instance_id": "DESKTOP-CBSVPL2:sleuthConsumer:7900",
      "thread": "hystrix-sleuthConsumer2-1"
    }
  }
}

简单分析 

查询一个完整的链路发现(serviceb调用servicea),一次服务B调用服务A,产生了三个span;

第一次服务B作为服务端,被调用接口

第二次服务B作为客户端,调用A的接口

第三次服务A作为服务端,被服务B调用

所以servicec调用servicea,kafka有两条消息,servicec发送了两条消息

其他

如果不小心存储到了低版本的cassandra中,那么keyspace里面有8张表;不小心存错了一次,简述如下:

## 总共8张表
select * from annotations_index;   // 
select * from autocomplete_tags;
https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/cassandra/src/test/resources/autocomplete_tags-stress.yaml
select * from dependencies;  // 应该就是依赖分析了
select * from service_name_index;// serviceName和bucket、traceId
select * from service_names; // 存储服务名serverName
select * from service_span_name_index; //服务方法和traceId
select * from span_names; // 服务名和服务方法
select * from traces; // trace信息

猜你喜欢

转载自blog.csdn.net/Zzhou1990/article/details/106340064