Opentelemetry
文章平均质量分 88
breaksoftware
这个作者很懒,什么都没留下…
展开
-
Language APIs & SDKs-C++-Exporters
要将指标数据发送到Prometheus,您可以启用Prometheus的OTLP接收器并使用OTLP导出器,也可以使用PrometheusHttpServer——一个MetricReader来启动HTTP服务器,该服务器将收集指标并根据请求序列化为 Prometheus文本格式。如果您已经设置了Prometheus或与Prometheus兼容的后端,则可以跳过本节并为您的应用程序设置Prometheus或OTLP导出器依赖项。最后,您还可以编写自己的导出器。该收集器现在能够通过OTLP接受遥测数据。原创 2024-04-19 18:00:00 · 561 阅读 · 0 评论 -
Language APIs & SDKs-C++-Instrumentation
然后,您将使用SDK初始化 OpenTelemetry并使用API来测量您的代码。这将从您的应用程序以及您安装的任何也附带测量装置的库发出遥测数据。如果您要测量库,请仅安装适合您的语言的OpenTelemetry API包。Metrics SDK 将隐式创建一个缺失的视图,其中包含装置和聚合之间的默认映射。当给定Span处于活动状态时,新创建的Span将继承活动Span的trace ID和其他上下文属性。活动Span的概念很重要,因为在没有显式指定父级的情况下创建的任何Span都是当前活动Span的父级。原创 2024-04-18 18:30:00 · 1160 阅读 · 0 评论 -
Opentelemetry——分析C++项目链接时循环依赖导致的错误
它的意思是找不到opentelemetry::v1::sdk::common::internal_log::GlobalLogHandler::GetHandlerAndLevel()的定义。我们到工程中定位该文件,然后看它编译到哪个项目里去了。原创 2024-04-18 18:15:00 · 1517 阅读 · 0 评论 -
Opentelemetry-Language APIs & SDKs-C++-Getting Started
在您的otel-cpp-starter文件夹中,创建一个子文件夹roll-dice,其中将通过引用oatpp头文件,并在编译项目时链接它们来使用Oat++库。要将OpenTelemetry添加到您的应用程序,请让CMakeLists.txt使用以下附加依赖项,并更新文件。在该roll-dice文件夹中,创建一个名为main.cpp的文件,并将以下代码添加到该文件中。此命令将在您的系统上安装构建的oatpp库和头文件,使其可以在您的项目中进行开发。成功构建项目后,您可以运行生成的可执行文件。原创 2024-04-17 19:00:00 · 714 阅读 · 0 评论 -
Opentelemetry——Sampling
例如,生成大量跟踪数据的一组服务可能首先使用头部采样仅对一小部分跟踪进行采样,然后在Telemetry管道中使用尾部采样做出更复杂的采样决策,然后再导出到后端。在这种情况下,采样决策是根据Trace ID和所需的采样Trace百分比做出的。尾部采样是通过考虑Trace内的全部或大部分Span来决定对Trace哪些地方的Span进行采样的方法。尾部采样允许您根据Trace的不同部分派生出的特定条件对Trace进行采样,而头部采样则无法提供此选项。不同的组织不仅有自己的采样原因,而且也有自己想要采样的对象。原创 2024-04-17 06:45:00 · 639 阅读 · 0 评论 -
Opentelemetry——Components
此外,许多对遥测数据进行操作的工具都支持 OTLP(例如Prometheus、Jaeger和大多数供应商),在您需要时为您提供高度的灵活性。OpenTelemetry 还提供了针对特定语言的 SDK,让您可以使用 OpenTelemetry API 使用您选择的语言生成遥测数据,并将该数据导出到首选的后端。OpenTelemetry社区当前提供预构建的Lambda层,自动测量您的应用程序,以及可以使用的独立Collector Lambda层的选项用于手动或自动测量应用程序。原创 2024-04-16 18:30:00 · 665 阅读 · 0 评论 -
Opentelemetry——Instrumentation-Libraries
在单个响应的情况下,网络上只有一个上下文,它成为库创建的新Span的父Span。采样输出的Span是低功耗的,您可以检查Span是否正在记录,以避免在填充属性时进行额外的分配以及高功耗的计算。特别注意Span名称;公共 API 是Trace的良好使用方法:为公共 API 调用创建的Span允许用户将遥测数据映射到应用程序代码,了解库调用的持续时间和结果。获取Tracer时,提供您的库(或跟踪插件)名称和版本——它们显示在遥测数据上,并帮助用户处理和过滤遥测数据,了解它的来源,并调试/报告任何测量装置问题。原创 2024-04-16 18:15:00 · 995 阅读 · 0 评论 -
Opentelemetry——Instrumentation-Code-based
您在此处选择的名称应该精确表达正在检测的具体内容—— 例如,如果您正在编写一个库,那么您应该以您的库命名它(例如 com.example.myLibrary),因为该名称将为所有生成的Span或Metric Events提供命名空间。进程内导出数据要求您引入并依赖一个或多个导出器、库,这些库将 OpenTelemetry 的内存中Span和Metric对象转换为适合遥测数据分析工具(如 Jaeger 或 Prometheus)需要的格式。如果您的操作对象是独立的进程或服务,那么您将依赖API和SDK。原创 2024-04-15 18:45:00 · 551 阅读 · 0 评论 -
Opentelemetry——Instrumentation-Zero-code
零代码检测通常以代理或类似代理安装的方式将OpenTelemetry API 和 SDK 功能添加到您的应用程序中。OpenTelemetry可让您快速获得服务的一些可观测性,而无需使用 OpenTelemetry API 和 SDK 进行基于代码的检测。通常,零代码检测会为您正在使用的库添加检测量化装置。要检测您的代码,您需要使用基于代码的检测。首先,您只需要配置一个服务名称,以便您可以在您选择的可观测性后端中识别该服务。此外,零代码检测允许您配置需要加载的检测量化库和导出器。原创 2024-04-15 18:15:00 · 826 阅读 · 0 评论 -
Opentelemetry——Instrumentation
基于代码的解决方案使您可以从应用程序本身获得更深入的洞察和丰富的遥测数据。它们允许您使用 OpenTelemetry API 从应用程序生成遥测数据,这是对零代码解决方案生成的遥测数据的重要补充。它们从您使用的库和/或应用程序运行的环境中提供丰富的遥测数据。OpenTelemetry 提供的不仅仅是零代码和基于代码的遥测解决方案。为了使系统可观察,必须对其进行检测量化,也就是说,来自系统组件的代码必须发出Traces, Metrics和Logs。了解设置基于代码的Instrumentation的基本步骤。原创 2024-04-14 16:00:00 · 714 阅读 · 0 评论 -
Opentelemetry——Signals-Baggage
具体来说,Baggage 和Trace Context的其他部分在 HTTP 标头中发送,使其对检查您的网络流量的任何人都可见。如果您的网络内的流量受到限制,则此风险可能不适用,但请记住,下游服务可能会将Baggage传播到您的网络之外。例如,您可能希望将应用程序中的信息附加到一个Span,并在稍后检索该信息,然后在另一个Span中使用它。例如,假设您希望涉及多个服务的Trace中的每个Span都有一个CustomerId属性,而CustomerId仅在一项特定服务中可用。信号之间传递的上下文信息。原创 2024-04-14 10:00:00 · 836 阅读 · 0 评论 -
Opentelemetry——Signals-Logs
Log通常包含详细的调试/诊断信息,例如操作的输入、操作的结果以及表达该操作的任何元数据。相反,您只需使用您喜欢的Log库,并将其配置成可以将Log发送到 OpenTelemetry LogRecordExporter 的Log Appender / Bridge即可。对于Trace和Metrics,OpenTelemetry采用了全新的设计方法,指定了新的 API,并在多种编程语言的SDK中提供了该API的完整实现。Log Appender / Bridge的一部分,仅当您是Log库的作者时才应使用。原创 2024-04-13 13:05:11 · 775 阅读 · 0 评论 -
Opentelemetry——Signals-Metrics
在某些语言的 SDK 中,已经为您初始化了一个全局的Meter Provider。的概念也是需要理解的一个重要概念。聚合是一种将大量测量结果,组合成有关时间窗口期间发生的度量事件的,精确或预估统计数据的技术。与旨在捕获请求生命周期,并为请求的各个部分提供上下文的请求跟踪(Trace)不同,指标旨在提供聚合的统计信息。要了解OpenTelemetry中的指标是如何工作的,让我们看一下将在检测我们的代码中发挥作用的这些组件。,它不仅包含仅测量值本身,还包含捕获测量值的时刻,以及关联的元数据。原创 2024-04-13 11:00:00 · 1152 阅读 · 0 评论 -
Opentelemetry——Signals-Trace
了解分布式应用程序的完整路径。Traces让我们全面了解请求发送到应用程序时发生的情况。无论您的应用程序是具有单个数据库的单体架构,还是具有复杂的服务网格,Trace对于了解请求在您的应用程序中完整的传播“路径”都至关重要。让我们用三个工作单元来探讨这个问题,这些单元是Spans这是Root Span,表示整个操作的开始和结束。请注意,它有一个指向Trace的字段——trace_id,但没有parent_id。这就是你如何判断它是否是Root Span的方法。原创 2024-04-12 07:00:00 · 656 阅读 · 0 评论 -
Opentelemetry——Signals
OpenTelemetry 的目标是收集、处理和导出Signals。Signals是系统导出的,用于描述在平台上运行的操作系统和应用程序的活动状态。Signals可以是您想在特定时间点测量的东西,例如温度或内存使用情况,或在分布式系统的各个组件上流转的、用于追踪的事件。您可以将不同的Signals组合在一起,以观察同一项技术在不同情况下的内部运作情况。Events是一种特定类型的Log,profiles是基于Profiling Working Group运行的。在Signals之间传递的上下文信息。原创 2024-04-12 08:39:10 · 328 阅读 · 0 评论 -
Opentelemetry——Observability Primer
可观测性入门可观测性核心概念。什么是可观测性?可观测性是指我们可以从外部,在不了解其内部工作原理的情况下,可以向系统提出(诊断)问题(的特性)。(可以理解为医生没有进入我们血管,但是可以问我们“血压多少”)此外,它还使我们能够轻松排查和处理新问题,并帮助我们回答”为什么会发生这种情况?之类的问题。为了能够对系统提出这些问题,应用程序必须被正确检测量化。也就是说,应用程序代码必须发出Traces、Metrics和Logs等信号。原创 2024-04-11 19:45:00 · 1021 阅读 · 0 评论 -
Opentelemetry——What is OpenTelemetry
OpenTelemetry 是一个可观测性框架和工具包,旨在创建和管理telemetry数据,例如Traces、Metrics和Logs。至关重要的是,OpenTelemetry 是与(软件)供应商或工具无关的,这意味着它可以与各种可观测性后端一起使用,包括 Jaeger和 Prometheus 等开源工具,以及商业产品。OpenTelemetry受到众多(软件)供应商的支持,其中许多供应商为OpenTelemetry提供了商业支持,并直接参与了该项目。OpenTelemetry被设计为可扩展的。原创 2024-04-11 19:30:00 · 1113 阅读 · 0 评论