数据上报java_通过Jaeger上报Java应用数据
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应用数据相关推荐
- java系统随机生成数据方式,一个比较全面的java随机数据生成工具包
最近,由于一个项目的原因需要使用一些随机数据做测试,于是写了一个随机数据生成工具,ExtraRanom.可以看成是Java官方Random类的扩展,主要用于主要用于测试程序.生成密码.设计抽奖程序等情 ...
- 原来Java大数据才是真正的高富帅!
大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇. 国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发.开发程序员的 ...
- JAVA大数据需要学什么
大数据时代,Java开发的需求量越来越大 大数据已经成为了企业竞争的核心力量.而Java是企业大数据技术的主要支撑语言,Hadoop本身就是用Java编写的.当你需要在运行MapReduce的服务器集 ...
- python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中
直接代码,如有不懂请加群讨论 # *-* coding:utf-8 *-* # import json import requests import pytesseract import time i ...
- PLC网关金鸽BL102:采集三菱FX-5U数据如何转成MQTT上报?
PLC网关金鸽BL102:采集三菱FX-5U数据如何转成MQTT上报? 金鸽BL102PLC网关时一款功能强大的PLC数据采集网关,南向可以采集主流的PLC,如三菱.西门子.台达.欧姆龙.施耐德等等P ...
- java服务器修改缓存数据,java监控服务器数据存入缓存
java监控服务器数据存入缓存 内容精选 换一换 本节定义了云数据库GaussDB(for MySQL)上报云监控的监控指标的命名空间,监控指标列表和维度定义,用户可以通过云监控提供的API接口来检索 ...
- android p wifi一直在扫描_(一百六十八)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理②...
接(一百五十五)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理 扫描失败上报梳理发现梳理的差了很多,特补充 1.WificondScannerImpl @Override pub ...
- 错误上报_PCIe错误的上报方式
按Spec定义的原则和内容,前面讲的所有错误类型,包括不可修复错误(Uncorrectable Errors)和可修复错误(Correctable Errors).这些错误的错误检测,都是由各个硬件设 ...
- .pgr照片文件解析,C++与Java存储数据差别大小端模式
一..pgr是什么? .pgr文件是二进制的图像文件,可以用普通的文本文件打开,或者查看十六进制的文本信息: 读取需要了解~~~非常重要 !!! 基本数据类型的大小端存储模式 表头Header 详细信 ...
最新文章
- 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--12864(ST7565P)液晶驱动(十三)...
- PostgreSQL数据库设置远程连接
- HashMap源码解析(JDK1.8)
- mysql中的get_lock锁机制解析
- 软件设计原则(七)合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
- 关于前端性能优化问题,认识网页加载过程和防抖节流
- 四部门联合发文推动数学科学发展,释放支持高校建设基础数学中心信号!
- 高中信息技术——Flash动画制作刷题点整理(一)
- 拓端tecdat|R语言用关联规则和聚类模型挖掘处方数据探索药物配伍中的规律
- __flash__removeCallback 未定义错误
- 矩阵的 正定与半正定
- 基于赫优讯netX芯片PROFINET IO设备的开发
- WinDriver Kernel Plugin开发
- 修改chrome默认背景颜色为浅绿色
- gamemaker学习笔记:截屏
- java之空指针异常处理
- Lenovo YOGA 14s(不只适合这一款机型)重装系统后触控板失灵 + 解决方法 )
- js导出变量 vue_js文件中怎么引用vue实例?
- 【解决方法】友盟分享 已安装QQ,但总提示“没有安装手机QQ客户端”
- 图形界面介绍Floorplan ToolBox
热门文章
- 【Flink】Flink 使用 CopyOnWriteArrayList 进行数据缓存的时候 一个bug
- 【Elasticsearch】索引 强制合并 缓存 refresh flush 等操作
- git status或者 git commit 中文文件显示乱码
- 【Mac】Mac 下安装MySQL优化工具mysqltuner执行报错 [!!] Attempted to use login credentials
- 【Antlr】Antlr 孤岛语法:处理相同文件中的不同格式
- 【Flink】Flink source后全过滤数据导致监控数据为0
- 【Kafka】Consumer group 'console-consumer-28367' has no active members.
- Spring Boot Starter 常用列表
- 云计算实战系列十二(Linux系统优化)
- SpringBoot中如何实现全链路调用日志跟踪?这方法才优雅!