Opentelemetry——Signals-Baggage

Baggage

Contextual information that is passed between signals
信号之间传递的上下文信息

In OpenTelemetry, Baggage is contextual information that’s passed between spans. It’s a key-value store that resides alongside span context in a trace, making values available to any span created within that trace.
在 OpenTelemetry 中,Baggage 是在Span之间传递的上下文信息。它是一个键值对存储结构,与Trace中的Span Context并存,可供该Trace中创建的任何Span使用。

For example, imagine you want to have a CustomerId attribute on every span in your trace, which involves multiple services; however, CustomerId is only available in one specific service. To accomplish your goal, you can use OpenTelemetry Baggage to propagate this value across your system.
例如,假设您希望涉及多个服务的Trace中的每个Span都有一个CustomerId属性,而CustomerId仅在一项特定服务中可用。为了实现您的目标,您可以使用OpenTelemetry Baggage在整个系统中传播此值。

OpenTelemetry uses Context Propagation to pass Baggage around, and each of the different library implementations has propagators that parse and make that Baggage available without you needing to explicitly implement it.
OpenTelemetry使用Context Propagation来传递 Baggage,每个不同的库实现都有传播器(propagators)来解析并使 Baggage 可用,而无需您显式实现它。

在这里插入图片描述

Why does OTel Baggage exist?

Baggage provides a uniform way to store and propagate information across a trace and other signals. For example, you may want to attach information from your application to a span and retrieve that information much later and use it later on with another span. However, spans in OpenTelemetry are immutable once created, and can be exported before you need information on them later on. Baggage allows you to work around this problem by providing a place to store and retrieve information.
Baggage提供了一种统一的存储和传播的信息的方案。这些信号可以跨越Trace以及其他信号。例如,您可能希望将应用程序中的信息附加到一个Span,并在稍后检索该信息,然后在另一个Span中使用它。但是,OpenTelemetry中的Span一旦创建就不可变,并且可以在您稍后需要有关它们的信息之前导出。 Baggage提供存储和检索信息的位置来帮助您解决此问题。

What should OTel Baggage be used for?

Common use cases include information that’s only accessible further up a stack. This can include things like Account Identification, User IDs, Product IDs, and origin IPs, for example. Passing these down your stack allows you to then add them to your Spans in downstream services to make it easier to filter when you’re searching in your Observability backend.
常见用例包括:只能在堆栈的更上层访问的信息。例如,这可以包括帐户标识、用户 ID、产品 ID 和源 IP 等内容。将这些传递到堆栈中后,您可以将它们添加到下游服务中的 Spans 中,以便在可观测性后端搜索时更轻松地进行过滤。
在这里插入图片描述

Baggage security considerations

Sensitive Baggage items could be shared with unintended resources, like third-party APIs. This is because automatic instrumentation includes Baggage in most of your service’s network requests. Specifically, Baggage and other parts of trace context are sent in HTTP headers, making it visible to anyone inspecting your network traffic. If traffic is restricted within your network, then this risk may not apply, but keep in mind that downstream services could propagate Baggage outside your network.
便捷的Baggage可能会与第三方API等非预期资源共享信息。这是因为在大多数服务的网络请求的自动测量装置中都包含 Baggage。具体来说,Baggage 和Trace Context的其他部分在 HTTP 标头中发送,使其对检查您的网络流量的任何人都可见。如果您的网络内的流量受到限制,则此风险可能不适用,但请记住,下游服务可能会将Baggage传播到您的网络之外。

Also, there are no built-in integrity checks to ensure that Baggage items are yours, so exercise caution when retrieving them.
此外,没有内置的完整性检查来确保Baggage中项目属于您,因此从中取值时请务必小心。

Baggage is not the same as Span attributes

One important thing to note about Baggage is that it is not a subset of the Span Attributes. When you add something as Baggage, it does not automatically end up on the Attributes of the child system’s spans. You must explicitly take something out of Baggage and append it as Attributes.
关于 Baggage 需要注意的一件重要事情是它不是 Span Attributes的子集。当您将某些内容添加到Baggage中时,它不会自动出现在子系统Span的属性上。您必须明确地从 Baggage 中取出某些内容并将其附加为 Span Attributes。

For example, in .NET you might do this:
例如,在 .NET 中您可以这样做:

var accountId = Baggage.GetBaggage("AccountId");
Activity.Current?.SetTag("AccountId", accountId);

For more information, see the baggage specification.

如需了解更多信息,请参阅baggage specification.。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/542244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

逆向案例二十四——投某界登录接口逆向,扣代码

网址:aHR0cHM6Ly91c2VyLnBlZGFpbHkuY24vbG9naW4uYXNweA 抓包登录接口: 在登录界面登录,不然不会出现login的js文件,按关键词搜索,进入loginjs文件,在文件中搜索,找到疑似加密的位置&#xff0c…

【Java多线程】案例(4):定时器

目录 一、定时器是什么? 二、Java标准库中的定时器 三、自己实现定时器 四、标准库中更推荐使用的定时器 一、定时器是什么? 定时器是一种用于在指定时间间隔或特定时间点执行特定任务的工具或设备。在计算机科学中,定时器通常是软件或硬件组件,用…

《手机维修600G资料》云盘下载地址

无意中发现一个生财之道,哈哈哈,就是发现有人在一些视频平台,发手机维修之类的视频吸引客户。这样自己就不用开店也可以接生意了。问题剩下就一个了,把手机维修技术学好,一技在手,天上我有。 《手机维修600…

python基础——类型注解【变量,函数,Union】

📝前言: 上一篇文章Python基础——面相对象的三大特征提到,python中的多态,python中,类型是动态的,这意味着我们不需要在声明变量时指定其类型。然而,这可能导致运行时错误,因为我们…

HTML5学习记录

简介 超文本标记语言&#xff08;HyperText Markup Language&#xff0c;简称HTML&#xff09;&#xff0c;是一种用于创建网页的标准标记语言。 编辑器 下载传送门https://code.visualstudio.com/ 下载编辑器插件 标题 标题通过 <h1> - <h6> 标签进行定义。 …

前端开发攻略---Vue实现防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。

1、演示 2、水印的目的 版权保护&#xff1a;水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息&#xff0c;以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时&#xff0c;可以追溯到原始作者或版权所有者&#xff0c;从而加强版权保护。 身份识…

2024mathorcup妈妈杯C题数学建模无水印高质量论文新鲜出炉

以下展示部分正文内容&#xff1a;完整内容见文末名片 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片…

搭建个人智能家居 4 -WS2812B-RGB灯

搭建个人智能家居 4 - WS2812B-RGB灯 前言说明ESPHomeHomeAssistant 前言 上一篇文章我们已经完成了第一个外设的添加&#xff08;一个LED灯&#xff09;&#xff0c;今天接着来“壮大”这个系统&#xff0c;添加第二个外设“RGB灯”。 环境搭建可以回顾前面的文章。前文回顾&…

Elasticsearch下载安装 以及Reindex(数据迁移)

部署Elasticsearch集群 这里介绍使用的是Elasticsearch 7.6.1的版本&#xff0c;配置两台服务器&#xff0c;一台部署主节点&#xff0c;一台部署两个从节点。 下载地址&#xff1a;https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64…

版本控制工具Git的使用

1、Git的基本概念和使用 1、Git是什么? ● Git: 是一个开源的分布式版本控制系统&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。 ● GitHub: 全球最大的面向开源及私有软件项目的托管平台,免费注册并且可以免费托管开源代码。 ● GitLab:与GitHub类似&a…

2024认证杯数学建模C题思路模型代码

目录 2024认证杯数学建模C题思路模型代码&#xff1a;4.11开赛后第一时间更新&#xff0c;获取见文末名片 以下为2023年认证杯C题&#xff1a; 2024年认证杯数学建模C题思路模型代码见此 2024认证杯数学建模C题思路模型代码&#xff1a;4.11开赛后第一时间更新&#xff0c;获…

(云HIS)云医院管理系统源码 SaaS模式 B/S架构 基于云计算技术

一、云HIS系统框架简介 1、技术框架 &#xff08;1&#xff09;总体框架&#xff1a; SaaS应用&#xff0c;全浏览器访问 前后端分离&#xff0c;多服务协同 服务可拆分&#xff0c;功能易扩展 &#xff08;2&#xff09;技术细节&#xff1a; 前端&#xff1a;AngularNg…

【C++】深度解析--拷贝构造函数(从0开始,详解浅拷贝到深拷贝,小白一看就懂!!!)

目录 一、前言 二、拷贝构造函数 &#x1f34e;概念解析 &#x1f95d;特性解析 &#x1f4a6;为什么拷贝构造函数使用传值方式会引发无穷递归调用&#xff1f; &#x1f4a6;为什么拷贝构造函数的形参中要加入 const 修饰 &#x1f4a6;若未显式定义&#xff0c;编译器会生…

使用阿里云试用Elasticsearch学习:4. 聚合——2

近似聚合 如果所有的数据都在一台机器上&#xff0c;那么生活会容易许多。 CS201 课上教的经典算法就足够应付这些问题。如果所有的数据都在一台机器上&#xff0c;那么也就不需要像 Elasticsearch 这样的分布式软件了。不过一旦我们开始分布式存储数据&#xff0c;就需要小心…

干货 | 百亿节点,毫秒级延迟,基于nebula的大规模图应用实践

背景 2017年9月携程金融成立&#xff0c;在金融和风控业务中&#xff0c;有多种场景需要对图关系网络进行分析和实时查询&#xff0c;传统关系型数据库难以保证此类场景下的关联性能&#xff0c;且实现复杂性高&#xff0c;离线关联耗时过长&#xff0c;因此对图数据库的需求日…

人工智能科普:人工智能的分类

人工智能的分类多种多样&#xff0c;根据不同的标准和应用场景&#xff0c;可以将其划分为多个不同的类别。以下是对人工智能分类的详细探讨。 一、按应用领域分类 1. 智能机器人&#xff1a;智能机器人是人工智能技术在机器人领域的应用。它们能够根据环境和任务的不同进行自…

视觉SLAM学习打卡【10】-后端·滑动窗口法位姿图

本节是对上一节BA的进一步简化&#xff0c;旨在提高优化实时性.难点在于位姿图部分的雅可比矩阵求解&#xff08;涉及李代数扰动模型求导&#xff09;&#xff0c;书中的相关推导存在跳步&#xff08;可能数学功底强的人认为过渡的理所当然&#xff09;&#xff0c;笔者参考了知…

ELK企业级日志分析系统以及多种部署

目录 ELK简介 ELK简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 ●ElasticSearch&#xff1a;是基于Lucene&#xff08;一个全文检索引…

Command开源AI的未来

在AI的浩瀚宇宙中&#xff0c;有一个新星正在闪耀——Command R。这个开源的大型语言模型不仅在技术排行榜上名列前茅&#xff0c;更以其开放性和高性能赢得了全球开发者的关注和喜爱。 开源精神的胜利 Command R是由CohereAI推出的一款开源大语言模型&#xff0c;拥有1040亿…

CTFshow电子取证——内存取证2

接上回 JiaJia-CP-2 2.佳佳在网页上登录了自己的邮箱&#xff0c;请问佳佳的邮箱是&#xff1f; 因为是在网页上登陆的邮箱 用iehistory插件 查看一下网页历史记录 为了方便分析&#xff0c;使用grep命令正则匹配一下 **com 的记录 vol.py -f JiaJia_Co.raw --profileWin…