分布式跟蹤系統zipkin+mysql


1.初始化數據庫:
1)
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 64bit',
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 'forjoining with zipkin_annotations';
ALTER TABLE zipkin_spans ADD INDEX(trace_id_high, trace_id) COMMENT 'forgetTracesByIds';
ALTER TABLE zipkin_spans ADD INDEX(name) COMMENT 'for getTraces and getSpanNames';
ALTER TABLE zipkin_spans ADD INDEX(start_ts) COMMENT 'for getTraces ordering andrange';

CREATE TABLE IF NOT EXISTS zipkin_annotations (
trace_id_high BIGINT NOT NULL DEFAULT 0COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64bit',
trace_id BIGINT NOT NULL COMMENT 'coincideswith zipkin_spans.trace_id',
span_id BIGINT NOT NULL COMMENT 'coincideswith 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 toimplement TTL; Annotation.timestamp or zipkin_spans.timestamp',
endpoint_ipv4 INT COMMENT 'Null whenBinary/Annotation.endpoint is null',
endpoint_ipv6 BINARY(16) COMMENT 'Null whenBinary/Annotation.endpoint is null, or no IPv6 address',
endpoint_port SMALLINT COMMENT 'Null whenBinary/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 'forgetTraces/ByIds';
ALTER TABLE zipkin_annotations ADD INDEX(endpoint_service_name) COMMENT 'forgetTraces and getServiceNames';
ALTER TABLE zipkin_annotations ADD INDEX(a_type) COMMENT 'for getTraces';
ALTER TABLE zipkin_annotations ADD INDEX(a_key) COMMENT 'for getTraces';
ALTER TABLE zipkin_annotations ADD INDEX(trace_id, span_id, a_key) COMMENT 'fordependencies 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
)ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

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

2.修改啟動參數:

  • MYSQL_DB: The database to use. Defaults to "zipkin".
  • MYSQL_USER and MYSQL_PASS: MySQL authentication, which defaults to empty string.
  • MYSQL_HOST: Defaults to localhost
  • MYSQL_TCP_PORT: Defaults to 3306
  • MYSQL_MAX_CONNECTIONS: Maximum concurrent connections, defaults to 10
  • MYSQL_USE_SSL: Requires javax.net.ssl.trustStore and javax.net.ssl.trustStorePassword, defaults to false.

STORAGE_TYPE=mysql MYSQL_USER=root MYSQL_PASS=password MYSQL_HOST=localhost MYSQl_TCP_PORT=3306 java -jar zipkin.jar

每次trace的數據會存放在數據庫中,zipkin數據庫已經存在數據.

默認使用zipkin數據庫,當數據庫中缺少zipkin的schema,在網頁健康檢查的之后,會出現:zipkin schema is missing.的報錯.

mysql導入外部shell腳本:

1.使用cmd命令執行:
$mysql -uroot -pkasumi -Dzipkin < zipkin.sql
如果在腳本中使用了use zipkin,可以不用-D指明連接的數據庫.

2.在mysql控制台執行:

use zipkin
source zipkin.sql


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM