<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Opentelemetry on I'm OWenT</title><link>//owent.net/tags/opentelemetry.html</link><description>Recent content in Opentelemetry on I'm OWenT</description><generator>Hugo</generator><language>zh-cn</language><copyright>&lt;a rel="license" href="https://github.com/owent/blog-hugo/blob/master/LICENSE.md"&gt;&lt;img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /&gt;&lt;/a&gt;</copyright><lastBuildDate>Fri, 23 May 2025 20:15:45 +0000</lastBuildDate><atom:link href="//owent.net/tags/opentelemetry/index.xml" rel="self" type="application/rss+xml"/><item><title>游戏服务的可观测性能力建设（C++生态）</title><link>//owent.net/2025/2504.html</link><pubDate>Fri, 23 May 2025 20:15:45 +0000</pubDate><guid>//owent.net/2025/2504.html</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;近年来可观测性领域越来越成熟，游戏服务的可观测性能力建设日益成为提升产品质量与运维效率的关键环节。随着游戏系统架构的不断复杂化，传统的监控和故障排查方式已难以满足业务高可用和用户体验优化的需求。通过健全的可观测性体系，可以实现对游戏服务全链路的实时监控、异常检测与分析，助力技术团队及时发现和定位问题，推动产品持续优化与稳定迭代，从而为玩家提供更加流畅和可靠的游戏体验。&lt;/p&gt;</description></item><item><title>指标上报的多线程优化和多拉取源点优化</title><link>//owent.net/2025/2503.html</link><pubDate>Wed, 21 May 2025 00:39:45 +0000</pubDate><guid>//owent.net/2025/2503.html</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;我给我们的服务器框架深度集成了一些可观测性的能力。使用 &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;opentelemetry-cpp&lt;/a&gt; 作为接入层。
在指标方面，我们允许业务层自由地定制化指标上报和拉取，并以此实现策略控制。上报的时候有Pull模式接口（异步接口），也有Push模式接口（同步接口）。
为了减少 &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;opentelemetry-cpp&lt;/a&gt; 内部的视图合并开销，性能最佳，我们尽量使用异步接口。
但是这种情况下由于 &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;opentelemetry-cpp&lt;/a&gt; 内部存在后台Processor线程、Exporter线程等，指标的采集往往需要跨线程操作。
这就要求我们上报代码逻辑需要保证线程安全。&lt;/p&gt;</description></item><item><title>std::condition_variable 的信号丢失问题</title><link>//owent.net/2024/2403.html</link><pubDate>Fri, 02 Aug 2024 15:30:45 +0000</pubDate><guid>//owent.net/2024/2403.html</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;这篇分享拖更了好久了。问题起源于去年我们项目组接入 &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;opentelemetry-cpp&lt;/a&gt; 的时候，在进程优雅退出的时候偶现超时，虽然可以直接kill进程没啥影响但是退出不“优雅”的话总归会破坏发布流程，增加人工介入的成本。这里记录一下问题可能其他的组件有类似的用法也会有相似的问题。&lt;/p&gt;</description></item><item><title>Opentelemetry社区在gRPC的几个链接问题(静态库和动态库混用,musl工具链,符号裁剪)</title><link>//owent.net/2023/2308.html</link><pubDate>Sat, 28 Oct 2023 18:10:45 +0000</pubDate><guid>//owent.net/2023/2308.html</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;opentelemetry-cpp&lt;/a&gt; 在标准上报协议OTLP里是支持使用 &lt;a href="https://github.com/grpc/grpc"&gt;gRPC&lt;/a&gt; 作为传输协议的。但是，当 &lt;a href="https://github.com/grpc/grpc"&gt;gRPC&lt;/a&gt; 被作为静态库同时链接进多个动态库时，在一些平台上会有一些问题。这是 &lt;a href="https://github.com/grpc/grpc"&gt;gRPC&lt;/a&gt; 本身的一些实现方式导致的。
一直拖到今天才来比较完整得写这个问题的具体成因和解决方案，实际上也有一些其他库有相似实现的也会有相同的问题，所以分享出来看看有没有其他同学也可能碰到可以参考一下。&lt;/p&gt;</description></item><item><title>Opentelemetry-cpp的Logs模块标准更新(涉及近期版本:1.8-1.9的BREAK CHANGES)</title><link>//owent.net/2023/2302.html</link><pubDate>Sat, 25 Feb 2023 11:39:45 +0000</pubDate><guid>//owent.net/2023/2302.html</guid><description>&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;Opentelemetry-cpp&lt;/a&gt; 是可观测领域，&lt;a href="https://opentelemetry.io/"&gt;opentelemetry&lt;/a&gt; (CNCF基金会孵化项目)的&lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;C++ SDK接入层&lt;/a&gt;。
&lt;a href="https://opentelemetry.io/"&gt;opentelemetry&lt;/a&gt; 里面主要是分链路跟踪(Trace)、指标(Metrics)、日志(Logs)三大块。
同时 &lt;a href="https://opentelemetry.io/"&gt;opentelemetry&lt;/a&gt; 有一个标准规范文档 &lt;a href="https://github.com/open-telemetry/opentelemetry-specification"&gt;opentelemetry-specification&lt;/a&gt; ，而SDK实现主要就是来对这个标准规范文档的特定语言实现。
由于日志(Logs)这一块一直处于Experimental阶段，所以很长时间以来 &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;C++ SDK接入层&lt;/a&gt; 都没有及时更新跟进规范的变化。&lt;/p&gt;</description></item><item><title>关于opentelemetry-cpp社区对于C++ Head Only组件单例和符号可见性的讨论小记</title><link>//owent.net/2022/2209.html</link><pubDate>Sun, 02 Oct 2022 20:43:45 +0000</pubDate><guid>//owent.net/2022/2209.html</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;前段时间有人在 &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;opentelemetry-cpp&lt;/a&gt; 提出了api组件在动态库中单例无法工作的 issue ，( &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp/issues/1520"&gt;https://github.com/open-telemetry/opentelemetry-cpp/issues/1520&lt;/a&gt; ) 。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://opentelemetry.io/"&gt;opentelemetry&lt;/a&gt; 是可观测性领域的开源项目，目标是统一链路跟踪、数据指标和日志的服务、上报、协议和接口规范，目前属于 &lt;a href="https://cncf.io/"&gt;CNCF基金会&lt;/a&gt; 孵化项目。而 &lt;a href="https://github.com/open-telemetry/opentelemetry-cpp"&gt;opentelemetry-cpp&lt;/a&gt; 则是 &lt;a href="https://opentelemetry.io/"&gt;opentelemetry&lt;/a&gt; 中对标准规范SDK的C++实现。&lt;/p&gt;</description></item></channel></rss>