springboot2 zipkin mysql

zipkin官方已不推荐自己搭建zipkin-server;官方推荐的几种快速启动一个zipkin-server:
springboot2 zipkin mysql

集成MySQL的注意事项:只在MySQL5.6-7的版本上测试过,因此最好安装MySQL的5.6-7的版本。

1、安装MySQL
2、建库、建表
建表语句(数据库名为zipkin,创建省略):

CREATE TABLE IF NOT EXISTS zipkin_spans (
  `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT If non zero, this means the trace uses 128 bit traceIds instead of 64 bit,
  `trace_id` BIGINT NOT NULL,
  `id` BIGINT NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  `parent_id` BIGINT,
  `debug` BIT(1),
  `start_ts` BIGINT COMMENT Span.timestamp(): epoch micros used for endTs query and to implement TTL,
  `duration` BIGINT COMMENT Span.duration(): micros used for minDuration and maxDuration query
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

ALTER TABLE zipkin_spans ADD UNIQUE KEY(`trace_id_high`, `trace_id`, `id`) COMMENT ignore insert on duplicate;
ALTER TABLE zipkin_spans ADD INDEX(`trace_id_high`, `trace_id`, `id`) COMMENT for joining with zipkin_annotations;
ALTER TABLE zipkin_spans ADD INDEX(`trace_id_high`, `trace_id`) COMMENT for getTracesByIds;
ALTER TABLE zipkin_spans ADD INDEX(`name`) COMMENT for getTraces and getSpanNames;
ALTER TABLE zipkin_spans ADD INDEX(`start_ts`) COMMENT for getTraces ordering and range;

CREATE TABLE IF NOT EXISTS zipkin_annotations (
  `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT If non zero, this means the trace uses 128 bit traceIds instead of 64 bit,
  `trace_id` BIGINT NOT NULL COMMENT coincides with zipkin_spans.trace_id,
  `span_id` BIGINT NOT NULL COMMENT coincides with zipkin_spans.id,
  `a_key` VARCHAR(255) NOT NULL COMMENT BinaryAnnotation.key or Annotation.value if type == -1,
  `a_value` BLOB COMMENT BinaryAnnotation.value(), which must be smaller than 64KB,
  `a_type` INT NOT NULL COMMENT BinaryAnnotation.type() or -1 if Annotation,
  `a_timestamp` BIGINT COMMENT Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp,
  `endpoint_ipv4` INT COMMENT Null when Binary/Annotation.endpoint is null,
  `endpoint_ipv6` BINARY(16) COMMENT Null when Binary/Annotation.endpoint is null, or no IPv6 address,
  `endpoint_port` SMALLINT COMMENT Null when Binary/Annotation.endpoint is null,
  `endpoint_service_name` VARCHAR(255) COMMENT Null when Binary/Annotation.endpoint is null
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

ALTER TABLE zipkin_annotations ADD UNIQUE KEY(`trace_id_high`, `trace_id`, `span_id`, `a_key`, `a_timestamp`) COMMENT Ignore insert on duplicate;
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`, `span_id`) COMMENT for joining with zipkin_spans;
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`) COMMENT for getTraces/ByIds;
ALTER TABLE zipkin_annotations ADD INDEX(`endpoint_service_name`) COMMENT for getTraces and getServiceNames;
ALTER TABLE zipkin_annotations ADD INDEX(`a_type`) COMMENT for getTraces and autocomplete values;
ALTER TABLE zipkin_annotations ADD INDEX(`a_key`) COMMENT for getTraces and autocomplete values;
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id`, `span_id`, `a_key`) COMMENT for dependencies job;

CREATE TABLE IF NOT EXISTS zipkin_dependencies (
  `day` DATE NOT NULL,
  `parent` VARCHAR(255) NOT NULL,
  `child` VARCHAR(255) NOT NULL,
  `call_count` BIGINT,
  `error_count` BIGINT
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

ALTER TABLE zipkin_dependencies ADD UNIQUE KEY(`day`, `parent`, `child`);

 

3、启动zipkin

java -jar D:\jar\zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=localhost --MYSQL_TCP_PORT=3306 --MYSQL_DB=zipkin --MYSQL_USER=root --MYSQL_PASS=root

 

4、Zipkin访问地址
基于Undertow WEB服务器,提供对外端口:9411,可以打开浏览器访问http://ip:9411,eg:
http://127.0.0.1:9411/zipkin/

后面我们再传输链路信息,Zipkin会将Span信息持久化到mysql中。

springboot2 zipkin mysql

上一篇:gdb+gdbserver 嵌入式调试


下一篇:MYSQL5-7版本sql_mode=only_full_group_by问题