otel-cli高级用法:后台Span管理、事件添加与自定义时间戳实战
otel-cli高级用法后台Span管理、事件添加与自定义时间戳实战【免费下载链接】otel-cliOpenTelemetry command-line tool for sending events from shell scripts similar environments项目地址: https://gitcode.com/gh_mirrors/ot/otel-cliOpenTelemetry command-line toolotel-cli是一款专为Shell脚本及类似环境设计的事件发送工具能够帮助开发者轻松实现分布式追踪。本文将深入探讨otel-cli的高级用法包括后台Span管理、事件添加与自定义时间戳等实战技巧让你快速掌握分布式追踪的核心技能。一、后台Span管理轻松处理长时间运行任务 后台Span管理是otel-cli的核心功能之一特别适用于处理长时间运行的任务。通过将Span置于后台运行你可以避免阻塞当前脚本的执行流程同时持续收集追踪数据。1.1 简单后台Span示例以下是一个简单的后台Span示例展示了如何在后台启动一个Span并设置超时时间../otel-cli span background \ --service otel-cli-demo \ --name executing $0 \ --timeout 2 在这个示例中--timeout 2参数设置了Span的超时时间为2秒符号将命令置于后台运行。当脚本退出时otel-cli也会随之退出因此总运行时间会略超过1秒。1.2 分层后台Span管理对于更复杂的场景你可以使用分层后台Span管理。以下示例展示了如何创建一个后台Span添加事件并创建子Spancarrier$(mktemp) # traceparent propagation via tempfile sockdir$(mktemp -d) # a unix socket will be created here export OTEL_SERVICE_NAMEotel-cli-demo # 启动后台Span服务器 ../otel-cli span background \ --verbose --fail \ --tp-carrier $carrier \ --sockdir $sockdir \ --tp-print \ --name $0 script execution \ --timeout 10 # 添加事件到后台Span ../otel-cli span event \ --verbose \ --name did a thing \ --sockdir $sockdir \ --attrs data1$data1 # 创建子Span ../otel-cli exec \ --verbose --fail \ --name sleep 0.2 \ --tp-required \ --tp-carrier $carrier \ --tp-print \ sleep 0.2 # 结束后台Span ../otel-cli span end --sockdir $sockdir在这个示例中我们使用了--tp-carrier参数来传递追踪上下文--sockdir参数指定了Unix socket的目录用于与后台Span进行通信。二、事件添加丰富Span信息 事件是Span的重要组成部分能够提供关于Span执行过程的详细信息。otel-cli允许你在Span运行过程中动态添加事件并为事件添加属性。2.1 添加基本事件以下命令展示了如何为后台Span添加一个基本事件../otel-cli span event \ --verbose \ --name slept 1 second \ --sockdir $sockdir在这个命令中--name参数指定了事件的名称--sockdir参数指定了与后台Span通信的Unix socket目录。2.2 添加带属性的事件你还可以为事件添加属性以提供更丰富的信息。以下示例展示了如何添加一个带有属性的事件data1$(uuidgen) ../otel-cli span event \ --verbose \ --name did a thing \ --sockdir $sockdir \ --attrs data1$data1在这个示例中我们使用--attrs参数为事件添加了一个名为data1的属性其值为一个随机生成的UUID。三、自定义时间戳精确控制事件时间 ⏱️虽然otel-cli默认使用当前时间作为事件的时间戳但在某些情况下你可能需要使用自定义时间戳。例如当你需要回溯性地添加事件时自定义时间戳就非常有用。3.1 设置自定义时间戳otel-cli提供了--timestamp参数允许你为事件设置自定义时间戳。时间戳的格式为Unix时间戳秒级或毫秒级。以下示例展示了如何使用自定义时间戳# 获取当前时间戳毫秒级 timestamp$(date %s%3N) # 模拟延迟 sleep 1 # 添加带有自定义时间戳的事件 ../otel-cli span event \ --verbose \ --name delayed event \ --sockdir $sockdir \ --timestamp $timestamp在这个示例中我们首先获取了当前时间戳毫秒级然后模拟了1秒的延迟最后使用--timestamp参数将事件的时间戳设置为延迟前的时间。四、实战案例构建完整的追踪流程 ️为了更好地理解otel-cli的高级用法我们来看一个完整的实战案例。这个案例将展示如何使用后台Span、添加事件、创建子Span以及使用自定义时间戳。4.1 案例脚本以下是一个完整的示例脚本展示了如何构建一个完整的追踪流程#!/bin/bash set -e set -x carrier$(mktemp) sockdir$(mktemp -d) export OTEL_SERVICE_NAMEotel-cli-demo # 启动后台Span ../otel-cli span background \ --verbose --fail \ --tp-carrier $carrier \ --sockdir $sockdir \ --tp-print \ --name full demo execution \ --timeout 20 # 等待后台Span启动 sleep 0.5 # 添加开始事件 start_time$(date %s%3N) ../otel-cli span event \ --verbose \ --name demo started \ --sockdir $sockdir \ --attrs start_time$start_time \ --timestamp $start_time # 执行任务1 task1_start$(date %s%3N) sleep 1 task1_end$(date %s%3N) ../otel-cli span event \ --verbose \ --name task1 completed \ --sockdir $sockdir \ --attrs duration$((task1_end - task1_start))ms \ --timestamp $task1_end # 创建子Span执行任务2 ../otel-cli exec \ --verbose --fail \ --name task2 execution \ --tp-required \ --tp-carrier $carrier \ --attrs tasktask2 \ sleep 0.5 # 添加结束事件 end_time$(date %s%3N) ../otel-cli span event \ --verbose \ --name demo completed \ --sockdir $sockdir \ --attrs total_duration$((end_time - start_time))ms \ --timestamp $end_time # 结束后台Span ../otel-cli span end --sockdir $sockdir # 清理临时文件 rm $carrier rm -rf $sockdir4.2 案例解析在这个案例中我们首先创建了一个后台Span并设置了超时时间为20秒。然后我们添加了开始事件并使用自定义时间戳记录了开始时间。接着我们执行了两个任务每个任务完成后都添加了相应的事件并记录了任务的持续时间。在执行第二个任务时我们创建了一个子Span以展示Span的嵌套关系。最后我们添加了结束事件并清理了临时文件。通过这个案例你可以看到otel-cli如何帮助你构建一个完整的分布式追踪流程从而更好地理解和优化你的应用程序。五、总结otel-cli是一款功能强大的命令行工具能够帮助开发者轻松实现分布式追踪。通过本文介绍的后台Span管理、事件添加与自定义时间戳等高级用法你可以更加灵活地收集和分析追踪数据从而提高应用程序的可靠性和性能。如果你想深入了解otel-cli的更多功能可以参考项目中的演示脚本如demos/10-span-background-simple.sh和demos/15span-background-layered.sh这些脚本提供了更多实际应用场景的示例。希望本文能够帮助你更好地掌握otel-cli的高级用法为你的分布式追踪之旅提供有力的支持【免费下载链接】otel-cliOpenTelemetry command-line tool for sending events from shell scripts similar environments项目地址: https://gitcode.com/gh_mirrors/ot/otel-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

免费开源PDF查看器实战指南:三步用 PdfiumViewer 搭建你的专属 PDF 工具

免费开源PDF查看器实战指南:三步用 PdfiumViewer 搭建你的专属 PDF 工具

免费开源PDF查看器实战指南:三步用 PdfiumViewer 搭建你的专属 PDF 工具 【免费下载链接】PdfiumViewer PDF viewer based on Googles PDFium. 项目地址: https://gitcode.com/gh_mirrors/pd/PdfiumViewer 当你手头有一批 PDF 需要频繁查看、标注、打印&…

2026/10/17 8:49:41 阅读更多 →
RTL960x光猫改造实战:把运营商光猫换成2.5G SFP模块的完整指南

RTL960x光猫改造实战:把运营商光猫换成2.5G SFP模块的完整指南

RTL960x光猫改造实战:把运营商光猫换成2.5G SFP模块的完整指南 【免费下载链接】RTL960x Hacking & Reverse Engineering RTL960x-based xPON ONTs to suit your OLT 项目地址: https://gitcode.com/gh_mirrors/rt/RTL960x 如果你的路由器带 SFP 光口、家…

2026/10/16 4:03:05 阅读更多 →
光场相机2.0:从原理到应用,深度解析三维视觉感知技术演进

光场相机2.0:从原理到应用,深度解析三维视觉感知技术演进

1. 从“记录光”到“理解光”:光场相机的演进脉络如果你和我一样,是个对成像技术着迷的从业者,那么“光场相机”这个词,绝对能让你心跳加速。它不像传统相机那样,只是简单地按下快门,把镜头前某个平面的光线…

2026/10/16 4:16:38 阅读更多 →

最新新闻

C++ libcurl工业级实战:断点续传、进度回调与SSL证书校验

C++ libcurl工业级实战:断点续传、进度回调与SSL证书校验

简介:本资源是一套面向C中高级开发者与跨平台网络编程学习者的实战项目包,聚焦libcurl在HTTP文件上传与下载场景下的工程化应用,并配套Node.js服务端用于端到端功能验证。资源共872个文件,涵盖227个JavaScript服务端逻辑文件、128…

2026/10/17 8:49:26 阅读更多 →
artcraft:融合数字艺术与手工工艺的创作实践指南

artcraft:融合数字艺术与手工工艺的创作实践指南

1. 项目定位与创作思路拆解1.1 “artcraft”到底要做什么“artcraft”这个名字,我第一次看到时就觉得挺有意思:前半段是 art(艺术),后半段是 craft(工艺、手艺)。很多人把它理解成“艺术手作”&…

2026/10/17 8:49:26 阅读更多 →
Flutter Sliver 固定头布局:SliverPersistentHeader 与 SliverToBoxAdapter 实战

Flutter Sliver 固定头布局:SliverPersistentHeader 与 SliverToBoxAdapter 实战

在 Flutter 的滚动体系里,Sliver 家族算是把“灵活”两个字玩到极致的一层。很多人第一次接触 CustomScrollView 的时候,看到一堆 Sliver 前缀的组件会本能地犯怵,觉得这玩意儿比 ListView 复杂太多。但真正在项目里做过复杂头部交互的人都知…

2026/10/17 8:49:26 阅读更多 →
OSPF区域外路由计算:FA值与Type-4/5 LSA深度解析

OSPF区域外路由计算:FA值与Type-4/5 LSA深度解析

1. 从一个让人抓头的现象说起如果你平时维护过企业内网或者数据中心的网络,大概率遇到过这种场景:明明路由表里看到了一条外部路由,下一跳也正确,但数据包就是不通。抓包一看,流量被丢到了错误的出口,或者干…

2026/10/17 8:49:26 阅读更多 →
图表即代码:diagram-design让架构图像代码一样可维护、评审、复用

图表即代码:diagram-design让架构图像代码一样可维护、评审、复用

写这套图表脚本,我前后重构了三次,中间推翻过两版,才找到一套真正能扛住真实业务压力的结构。如果你也在用手拖拽画架构图、时序图,画完发现版本对不上、变更查不到、图形风格全靠个人手感,那这篇东西应该对你有用。这…

2026/10/17 8:49:26 阅读更多 →
GLA与KDA对比:门控线性注意力与Delta规则的长文本建模实战

GLA与KDA对比:门控线性注意力与Delta规则的长文本建模实战

聊到长文本建模,GLA(Gated Linear Attention,门控线性注意力)和KDA(KimiDeltaAttention,一类基于Delta规则的线性注意力变体)是我最近被问得最多的两个名字。如果你一直在用标准Softmax注意力&a…

2026/10/17 8:48:26 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →