

Opentelemetry 可观测性规范(二)—— OLTP 协议
source link: https://www.zoucz.com/blog/2023/12/14/242da5c0-9a95-11ee-9fa0-5dbc93f9d3ee/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Opentelemetry 可观测性规范(二)—— OLTP 协议
官方文档:https://opentelemetry.io/docs/specs/otlp/ 我要说话
本文仓库:https://github.com/zouchengzhuo/opentelemetry-proto.git 我要说话
本文UML使用 https://github.com/GoogleCloudPlatform/proto-gen-md-diagrams.git 工具生成 我要说话
1.基本数据结构
opentelemetry/proto 目录下有 log / trace / metrics 的具体数据结构定义 我要说话
├── common
├── logs
├── metrics
├── resource
└── trace
1.1 common 通用数据
AnyValue 是 oneof 这些属性 我要说话

1.2 resource 资源描述
在 OpenTelemetry 中,resource.proto 文件定义了 Resource 数据结构。Resource 是一个表示可观察对象(如服务、应用程序、主机等)的实体。它包含一组键值对,用于描述这些实体的属性。这些属性可以用于过滤和聚合观察到的数据,以便更好地理解和分析系统性能。 我要说话
Resource 数据结构的主要目的是: 我要说话
- 为可观察对象提供上下文信息,以便更好地理解和分析度量、追踪和日志数据。
- 通过提供有关实体的元数据,帮助将观察到的数据与实际系统组件关联起来。
- 允许对观察到的数据进行过滤、分组和聚合,以便根据实体属性对性能进行深入分析。
总之,resource.proto 文件中定义的 Resource 数据结构在 OpenTelemetry 中起到了关键作用,它为可观察对象提供了描述性信息,以便在分析和监控系统性能时获得更丰富的上下文。 我要说话


1.3 logs 数据结构描述


数据构成方式: Data → List<Resource> → List<Scope> → List<Record>
我要说话

metrics 和 trace 也是一样,经过了几层相同的包装,才到最终的具体字段数据结构。 我要说话
1.4 metrics 数据结构描述
数据构成方式: Data → List<Resource> → List<Scope> → List<Metric>
我要说话

省略细节数据结构 我要说话
1.5 trace数据结构描述
数据构成方式: Data → List<Resource> → List<Scope> → List<Span>
我要说话

2. Collector Service 接口定义
opentelemetry/proto/collector 目录下有服务端的 service 定义 我要说话
2.1 logs 服务接口

2.2 metrics 服务接口

2.3 trace服务接口

3. Collector Service 实现规范
docs 目录下有完整的设计理念和设计思路的描述, 包括支持的数据编码格式、支持的通信协议、请求&响应的实现规范等。 我要说话
此处不再赘述,详见文档:https://github.com/zouchengzhuo/opentelemetry-proto/blob/main/docs/specification.cn.md。 我要说话

4. 协议编译
根目录提供了 makefile 文件以从协议文件编译得到各个语言的实现。
我要说话
make gen-cpp / gen-csharp / gen-go / gen-java / gen-kotlin / gen-js / gen-objc / gen-openapi / gen-php / gen-python / gen-ruby
我要说话
本文链接:https://www.zoucz.com/blog/2023/12/14/242da5c0-9a95-11ee-9fa0-5dbc93f9d3ee/我要说话
☞ 参与评论我要说话
Recommend
-
14
CNCF 简介 CNCF(Cloud Native Computing Foundation),中文为“云原生计算基金会”,CNCF是Linux基金会旗下的基金会,可以理解为一个非盈利组织。 当年谷歌内部一直用于编排容器的Borg项目开源了,为了该项目更好的发展...
-
6
2022年2月6日 查看详情 本报告译自 O'Reilly 出品的
-
5
一文读懂可观测性与Opentelemetry_文化 & 方法_刘亚辉_InfoQ精选文章
-
7
什么是可观测相信大家日常经常使用kibana、grafana、jaeger等平台观察系统状态和定位问题,这些就是可观测体系的一部分。可观测主要包括: 日志,实现有ELK(es/logstash/kiba...
-
5
什么是 OpenTelemetry?OpenTelemetry 是一个开源的可观测性框架,由云原生基金会(CNCF)托管。它是 OpenCensus 和 OpenTracing 项目的合并。旨在为所有类型的可观测信号(如跟踪、指标和日志)提供单一标准。https://opentelemetry.ioht...
-
4
使用 OpenTelemetry 构建 .NET 应用可观测性(2):OpenTelemetry 项目简介 ...
-
7
本文将介绍如何在 ASP.NET Core 应用中集成 OTel SDK,并使用 elastic 构建可观测性平台展示 OTel 的数据。 本文只是使用 elastic 做基本的数据展示,详细的使用方式同学可以参考 elastic 的官方文档,后面也会介绍其他的对 OTel 支持较好的可观测性后端。
-
8
本文基于 Opentelemetry JS 语言的实现,梳理了其对 OTEL 的具体实现,方便深入理解 OTEL 的工作原理,便于日常项目中的可观测性数据上报和自定义的三方 instrumentation 组件开发。 我要说话 1. API
-
5
1. Opentelemetry 是什么Opentelemetry 是一个云原生可观测性的行业标准,它作为一个可观测性框架,提供了 trace、metrics、logs 从协议到 API 到可观测性数据从收集到处理到导出的 SDK 实现。 我要说话 它本身并不...
-
5
点击查看目录 本文译自:OpenTelemetry and Observability: Looking Forward 让我们探讨一些令人兴奋的趋势,考虑到我们期待...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK