pinpoint的id的生成

news/2024/9/17 17:57:38

traceId的生成

public String getTransactionId() {return TransactionIdUtils.formatString(agentId, agentStartTime, transactionSequence);}public static final String TRANSACTION_ID_DELIMITER = "^";public static String formatString(String agentId, long agentStartTime, long transactionSequence) {if (agentId == null) {throw new NullPointerException("agentId must not be null");}StringBuilder sb = new StringBuilder(64);sb.append(agentId);sb.append(TRANSACTION_ID_DELIMITER);sb.append(agentStartTime);sb.append(TRANSACTION_ID_DELIMITER);sb.append(transactionSequence);return sb.toString();}

spanId的生成

public class SpanId {public static final long NULL = -1;//    private static final Random seed = new Random();public static long newSpanId() {final Random random = getRandom();return createSpanId(random);}// Changed to ThreadLocalRandom because unique value per thread will be enough.// If you need to change Random implementation, modify this method.private static Random getRandom() {return ThreadLocalRandomUtils.current();}private static long createSpanId(Random seed) {long id = seed.nextLong();while (id == NULL) {id = seed.nextLong();}return id;}public static long nextSpanID(long spanId, long parentSpanId) {final Random seed = getRandom();long newId = createSpanId(seed);while (newId == spanId || newId == parentSpanId) {newId = createSpanId(seed);}return newId;}
}

docs

  • TransactionIdUtils

  • SpanId.java


http://lihuaxi.xjx100.cn/news/254199.html

相关文章

SMS主站点配置详细图解:Sms2003系列之二

SMS主站点配置在上一篇文章中,我们介绍了如何进行SMS2003+SP2的部署。本文中,我们将介绍如何进行SMS主站点的配置。在SMS中,站点(site)定义并包含了所有SMS管理的对象。当我们第一次安装SMS时,实际安装的是一个SMS站点…

LLVM 之父 Chris Lattner:模块化设计决定 AI 前途,不服来辩

作者 | OneFlow社区来源 | OneFlow缺乏模块化的单体系统就像浑然一体的金字塔,失去了演化空间,抑制了创新速度。当前,AI领域正面临系统和工具链的互不兼容和碎片化,对这种混杂局面,编译器大牛Chris Lattner看不下去了。…

Docker 火了!外部网络可直接访问映射到 127.0.0.1 的服务。。。

欢迎关注方志朋的博客,回复”666“获面试宝典来源:云原生实验室这两天 Hacker News 上面有一个贴子火了,这是一封发给 Docker 安全团队的邮件,主要讲的是 Docker 有一个非常离谱的安全隐患。即使你通过像 -p 127.0.0.1:80:80这样的…

将类别加入到别人的名称空间内

怎样把自己的类别加入到别人的名称空间内,在引用时,能在别人的名称空间下使用到自己写的类别。 这是一位台湾朋友问及此问题,因此录制一个视频做演示: 视频文件格式:.wmv;大小:9,706KB&#xff…

mongoDB入门

**使用了不存在的对象,即创建该对象use db 使用db数据库 show dbs 查看当前服务器中写在磁盘上的数据库 show tables 查看数据库中的collection db 查看当前使用的数据库1.增删改查: 增:db.collection.insert({数据}) 自动生成 _id : ObjectI…

学习资源:在线学习 Python(二)

背景 Python 是一种通用编程语言,其在科学计算和机器学习领域具有广泛的应用。如果我们打算利用 Python 来执行机器学习的代码,那么对 Python 有一些基本的了解就是至关重要的。 如果我们希望熟悉 Python 基本语法结构,但不希望在本地安装I…

Datawhale团队第三期录取名单!

Datawhale团队 公示:Datawhale 组织成员 Datawhale已经成立一年半了,从一开始的12个人,学习互助,到提议建立开源组织,做更多开源的事情,帮助更多学习者,也促进我们更好地成长。于是有了我们的愿…

Eclipse create git repository failure(egit)

2019独角兽企业重金招聘Python工程师标准>>> 启动和创建的时候会出现这样的异常信息,具体处理办法如下: cd /path/to/yourRepo.git cd .. mkdir yourRepo mv yourRepo.git yourRepo cd yourRepo git config --local --bool core.bare false g…