springcloud之zipkin

集成zipkin

1、下载zipkin的jar包 https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec

2、java -jar zipkin-server-2.12.9-exec.jar

3、访问 http://localhost:9411  

客户端集成  pom文件

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

添加配置

spring:
  zipkin:
    base-url: http://127.0.0.1:9411/ #zipkin server的请求地址
    discoveryClientEnabled: false #让nacos把它当成一个URL,而不要当做服务名
  sleuth:
    sampler:
      probability: 1.0 #采样的百分

访问服务  localhost:9003/saleContract/feignTest?id=05d6b89506d54bf586c07d0f89d66b6b

ZipKin数据持久化

创建数据库sql

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';
ALTER TABLE zipkin_annotations ADD INDEX ( `a_key` ) COMMENT 'for getTraces';
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 ) ENGINE = INNODB ROW_FORMAT = COMPRESSED CHARACTER 
	SET = utf8 COLLATE utf8_general_ci;
ALTER TABLE zipkin_dependencies ADD UNIQUE KEY ( `day`, `parent`, `child` );

1、 启动脚本需要修改下

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

2、访问接口,localhost:9003/saleContract/feignTest?id=05d6b89506d54bf586c07d0f89d66b6b 数据就回保存到数据库中

使用elasticsearch实现数据持久化

1、es下载地址: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-8-4

2、启动ES

3、启动zipkin 修改脚本

java -jar zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=elasticsearch --ES --HOST=localhost:9200    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值