Client Span Server Span

┌──────────────────┐ ┌──────────────────┐

│ │ │ │

│ TraceContext │ Http Request Headers │ TraceContext │

│ ┌──────────────┐ │ ┌───────────────────┐ │ ┌──────────────┐ │

│ │ TraceId │ │ │ X-B3-TraceId │ │ │ TraceId │ │

│ │ │ │ │ │ │ │ │ │

│ │ ParentSpanId │ │ Inject │ X-B3-ParentSpanId │Extract │ │ ParentSpanId │ │

│ │ ├─┼─────────>│ ├────────┼>│ │ │

│ │ SpanId │ │ │ X-B3-SpanId │ │ │ SpanId │ │

│ │ │ │ │ │ │ │ │ │

│ │ Sampled │ │ │ X-B3-Sampled │ │ │ Sampled │ │

│ └──────────────┘ │ └───────────────────┘ │ └──────────────┘ │

│ │ │ │

└──────────────────┘ └──────────────────┘在客户端调用Inject方法传入Context信息。private void attachTraceInfo(Tracer tracer, Span span, final Request request) {

tracer.inject(span.context(), Format.Builtin.TEXT_MAP, new TextMap() {

@Override

public void put(String key, String value) {

request.setHeader(key, value);

}

@Override

public Iterator> iterator() {

throw new UnsupportedOperationException("TextMapInjectAdapter should only be used with Tracer.inject()");

}

});

}

在服务端调用Extract方法解析Context信息。protected Span extractTraceInfo(Request request, Tracer tracer) {

Tracer.SpanBuilder spanBuilder = tracer.buildSpan("/api/xtrace/test03");

try {

SpanContext spanContext = tracer.extract(Format.Builtin.TEXT_MAP, new TextMapExtractAdapter(request.getAttachments()));

if (spanContext != null) {

spanBuilder.asChildOf(spanContext);

}

} catch (Exception e) {

spanBuilder.withTag("Error", "extract from request fail, error msg:" + e.getMessage());

}

return spanBuilder.start();

}

数据上报java_通过Jaeger上报Java应用数据相关推荐

  1. java系统随机生成数据方式,一个比较全面的java随机数据生成工具包

    最近,由于一个项目的原因需要使用一些随机数据做测试,于是写了一个随机数据生成工具,ExtraRanom.可以看成是Java官方Random类的扩展,主要用于主要用于测试程序.生成密码.设计抽奖程序等情 ...

  2. 原来Java大数据才是真正的高富帅!

    大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇. 国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发.开发程序员的 ...

  3. JAVA大数据需要学什么

    大数据时代,Java开发的需求量越来越大 大数据已经成为了企业竞争的核心力量.而Java是企业大数据技术的主要支撑语言,Hadoop本身就是用Java编写的.当你需要在运行MapReduce的服务器集 ...

  4. python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中

    直接代码,如有不懂请加群讨论 # *-* coding:utf-8 *-* # import json import requests import pytesseract import time i ...

  5. PLC网关金鸽BL102:采集三菱FX-5U数据如何转成MQTT上报?

    PLC网关金鸽BL102:采集三菱FX-5U数据如何转成MQTT上报? 金鸽BL102PLC网关时一款功能强大的PLC数据采集网关,南向可以采集主流的PLC,如三菱.西门子.台达.欧姆龙.施耐德等等P ...

  6. java服务器修改缓存数据,java监控服务器数据存入缓存

    java监控服务器数据存入缓存 内容精选 换一换 本节定义了云数据库GaussDB(for MySQL)上报云监控的监控指标的命名空间,监控指标列表和维度定义,用户可以通过云监控提供的API接口来检索 ...

  7. android p wifi一直在扫描_(一百六十八)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理②...

    接(一百五十五)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理 扫描失败上报梳理发现梳理的差了很多,特补充 1.WificondScannerImpl @Override pub ...

  8. 错误上报_PCIe错误的上报方式

    按Spec定义的原则和内容,前面讲的所有错误类型,包括不可修复错误(Uncorrectable Errors)和可修复错误(Correctable Errors).这些错误的错误检测,都是由各个硬件设 ...

  9. .pgr照片文件解析,C++与Java存储数据差别大小端模式

    一..pgr是什么? .pgr文件是二进制的图像文件,可以用普通的文本文件打开,或者查看十六进制的文本信息: 读取需要了解~~~非常重要 !!! 基本数据类型的大小端存储模式 表头Header 详细信 ...

最新文章

  1. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)...
  2. PostgreSQL数据库设置远程连接
  3. HashMap源码解析(JDK1.8)
  4. mysql中的get_lock锁机制解析
  5. 软件设计原则(七)合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
  6. 关于前端性能优化问题,认识网页加载过程和防抖节流
  7. 四部门联合发文推动数学科学发展,释放支持高校建设基础数学中心信号!
  8. 高中信息技术——Flash动画制作刷题点整理(一)
  9. 拓端tecdat|R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律
  10. __flash__removeCallback 未定义错误
  11. 矩阵的 正定与半正定
  12. 基于赫优讯netX芯片PROFINET IO设备的开发
  13. WinDriver Kernel Plugin开发
  14. 修改chrome默认背景颜色为浅绿色
  15. gamemaker学习笔记:截屏
  16. java之空指针异常处理
  17. Lenovo YOGA 14s(不只适合这一款机型)重装系统后触控板失灵 + 解决方法 )
  18. js导出变量 vue_js文件中怎么引用vue实例?
  19. 【解决方法】友盟分享 已安装QQ,但总提示“没有安装手机QQ客户端”
  20. 图形界面介绍Floorplan ToolBox

热门文章

  1. 【Flink】Flink 使用 CopyOnWriteArrayList 进行数据缓存的时候 一个bug
  2. 【Elasticsearch】索引 强制合并 缓存 refresh flush 等操作
  3. git status或者 git commit 中文文件显示乱码
  4. 【Mac】Mac 下安装MySQL优化工具mysqltuner执行报错 [!!] Attempted to use login credentials
  5. 【Antlr】Antlr 孤岛语法:处理相同文件中的不同格式
  6. 【Flink】Flink source后全过滤数据导致监控数据为0
  7. 【Kafka】Consumer group 'console-consumer-28367' has no active members.
  8. Spring Boot Starter 常用列表
  9. 云计算实战系列十二(Linux系统优化)
  10. SpringBoot中如何实现全链路调用日志跟踪?这方法才优雅!