• docker 安装 zipkin,监控服务并持久化到mysql


    1、MySQL新建zipkin库,然后建表

    1. CREATE TABLE IF NOT EXISTS zipkin_spans (
    2. `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
    3. `trace_id` BIGINT NOT NULL,
    4. `id` BIGINT NOT NULL,
    5. `name` VARCHAR(255) NOT NULL,
    6. `remote_service_name` VARCHAR(255),
    7. `parent_id` BIGINT,
    8. `debug` BIT(1),
    9. `start_ts` BIGINT COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL',
    10. `duration` BIGINT COMMENT 'Span.duration(): micros used for minDuration and maxDuration query',
    11. PRIMARY KEY (`trace_id_high`, `trace_id`, `id`)
    12. ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
    13. ALTER TABLE zipkin_spans ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTracesByIds';
    14. ALTER TABLE zipkin_spans ADD INDEX(`name`) COMMENT 'for getTraces and getSpanNames';
    15. ALTER TABLE zipkin_spans ADD INDEX(`remote_service_name`) COMMENT 'for getTraces and getRemoteServiceNames';
    16. ALTER TABLE zipkin_spans ADD INDEX(`start_ts`) COMMENT 'for getTraces ordering and range';
    17. CREATE TABLE IF NOT EXISTS zipkin_annotations (
    18. `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
    19. `trace_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.trace_id',
    20. `span_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.id',
    21. `a_key` VARCHAR(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1',
    22. `a_value` BLOB COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB',
    23. `a_type` INT NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation',
    24. `a_timestamp` BIGINT COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp',
    25. `endpoint_ipv4` INT COMMENT 'Null when Binary/Annotation.endpoint is null',
    26. `endpoint_ipv6` BINARY(16) COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address',
    27. `endpoint_port` SMALLINT COMMENT 'Null when Binary/Annotation.endpoint is null',
    28. `endpoint_service_name` VARCHAR(255) COMMENT 'Null when Binary/Annotation.endpoint is null'
    29. ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
    30. ALTER TABLE zipkin_annotations ADD UNIQUE KEY(`trace_id_high`, `trace_id`, `span_id`, `a_key`, `a_timestamp`) COMMENT 'Ignore insert on duplicate';
    31. ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`, `span_id`) COMMENT 'for joining with zipkin_spans';
    32. ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTraces/ByIds';
    33. ALTER TABLE zipkin_annotations ADD INDEX(`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames';
    34. ALTER TABLE zipkin_annotations ADD INDEX(`a_type`) COMMENT 'for getTraces and autocomplete values';
    35. ALTER TABLE zipkin_annotations ADD INDEX(`a_key`) COMMENT 'for getTraces and autocomplete values';
    36. ALTER TABLE zipkin_annotations ADD INDEX(`trace_id`, `span_id`, `a_key`) COMMENT 'for dependencies job';
    37. CREATE TABLE IF NOT EXISTS zipkin_dependencies (
    38. `day` DATE NOT NULL,
    39. `parent` VARCHAR(255) NOT NULL,
    40. `child` VARCHAR(255) NOT NULL,
    41. `call_count` BIGINT,
    42. `error_count` BIGINT,
    43. PRIMARY KEY (`day`, `parent`, `child`)
    44. ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

    2、安装zipkin

    1. // 拉取镜像
    2. docker pull openzipkin/zipkin:2.21.7
    3. // 部署
    4. docker run --name zipkin -d --restart=always -p 9412:9411 -e MYSQL_USER=root -e MYSQL_PASS=root -e MYSQL_HOST=192.168.221.129 -e STORAGE_TYPE=mysql -e MYSQL_DB=zipkin -e MYSQL_TCP_PORT=3307 openzipkin/zipkin:2.21.7

    3、springboot服务集成

    • pom文件引入包
      1. <dependency>
      2. <groupId>org.springframework.cloudgroupId>
      3. <artifactId>spring-cloud-starter-zipkinartifactId>
      4. <version>2.1.6.RELEASEversion>
      5. dependency>

    • apllication.yml配置
      1. spring:
      2. application:
      3. name: timingtask-api
      4. zipkin:
      5. base-url: http://192.168.221.129:9412
      6. sleuth:
      7. sampler:
      8. probability: 1

    • 效果图

  • 相关阅读:
    【Kotlin精简】第7章 泛型
    数据结构-堆和二叉树
    使用Pytorch构建神经网络
    sonarqube连接gitlab测试netcore项目的避坑点
    工程伦理--9.1 岗位胜任力
    大模型的实践应用6-百度文心一言的基础模型ERNIE的详细介绍,与BERT模型的比较说明
    多元共进|2023 Google 开发者大会主旨演讲亮点回顾
    Spring+SpringMVC+Jsp实现校园二手交易系统
    分布式医疗大数据存储方案研究综述
    JAVA计算机毕业设计药品管理系统Mybatis+系统+数据库+调试部署
  • 原文地址:https://blog.csdn.net/weixin_42280959/article/details/127122135