在OpenTelemetry开源框架中集成OCI APM

2023年 12月 11日 91.3k 0

本文讨论使用软件开发工具包(SDK)手工配置OpenTelemetry的过程,并将Oracle云基础设施的应用程序性能监控服务(OCI APM)作为后端来分析Trace。

OpenTelemetry是一个供应商中立的开源可观测性框架,用于检测、生成、收集和导出遥测数据(如Trace文件、指标数据、日志文件)。作为行业标准,它得到40多家可观测性供应商的支持,被集成在许多开源库、服务和应用程序中,受到最终用户普遍欢迎。

OCI APM服务提供对应用程序性能的深入可视化,快速诊断问题并提供一致性服务的能力。此功能包括监控分布在本地或云端的客户端、第三方服务和后端服务层的多个技术组件和应用程序。

主要讨论以下几点内容:

  • 跟踪管道及其初始化

  • 配置资源和跨度属性

  • 添加跨度事件

  • 语义约定的使用

  • 使用OCI APM探索Trace

架构

如架构图所示中,这些应用程序服务通过HTTP或gRPC协议相互通信,并且每个服务都通过 OpenTelemetry 协议 (OTLP)直接发送Traces到OCI APM。

OTLP是一种通用遥测数据传输协议,定义了遥测数据的编码。该协议在客户端和服务器之间交换数据。该规范定义了如何通过gRPC 和HTTP 1.1传输实现OTLP,并指定用于Payload的协议缓冲区Schema。OTLP是一种请求-响应式协议:客户端发送请求,服务端回复相应的响应报文。

Trace管道说明

配置后端APM
OCI APM作为后端,在使用OpenTelemetry收集器时需要配置并初始化OTLPSpanExporter,配置代码如下:
exporter = OTLPSpanExporter(endpoint="https://.com/20200101/opentelemetry/public/", headers={"authorization": "dataKey "})
配置OpenTelemetry的数据源请参考文档:

https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/configure-open-source-tracing-systems.html#APMGN-GUID-4D941163-F357-4839-8B06-688876D4C61F

添加跨度属性
使用装饰器模式可简化跨度的创建和完成,它处理上下文的传播。如下面代码所示。需要获取当前的跨度才能设置跨度属性和事件。导入语义约定包,并使用常量如:HTTP_METHOD和HTTP_URL。

使用OCI APM分析Trace
在OCI Console 导航菜单中的可观测性和管理下,选择应用程序性能监控。

添加的跨度属性都已列出,使用它们可以过滤Trace。跨度事件显示在日志条目下,并检测到语义常量HTTP_URL和HTTP_METHOD。
如果想进一步增强代码可添加函数child_span,并从single_span内部调用它,将在一条Trace中看到两个跨度:
 
小结
本文介绍了OpenTelemetry基础知识和核心概念。如何配置资源和跨度属性来微调我们的跟踪功能,从而增强应用的可观察性。并使用OCI APM探索和可视化Trace,观测应用程序的性能和行为,为应用程序稳定运行提供保障。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论