【可观测性系列】 OpenTelemetry Collector的部署模式分析
作者简介:大家好,我是蓝胖子
️博客首页:主页蓝胖子的编程梦
️热门专题:我的服务监控实践 ,500行代码手写Docker**每日一句:白日莫闲过,青春不再来

大家好,我是蓝胖子,在前面我介绍了下OpenTelemetry的概念,但是究竟在项目中应该如何来使用OpenTelemetry 来帮助我们完成可观测性的构建?接下来,我将会谈谈有关 OpenTelemetry如何落地的一些问题。
这一节我们来看看OpenTelemetry Collector 的部署模式,OpenTelemetry Collector 是OpenTelemetry 项目中的一个代理软件,作为遥测数据(也就是日志,指标,trace数据)的中转站,能够对遥测数据做一些预处理的逻辑。
不使用OpenTelemetry Collector
OpenTelemetry Collector 并不是必须的,我们可以直接使用OpenTelemetry 客户端SDK发送遥测数据到监控组件中,比如将trace数据发送到jaeger,发送metric数据到prometheus。部署模式如下图所示,

代理模式部署
如果要使用OpenTelemetry Collector 对遥测数据的预处理功能,则需要在应用程序和后端监控组件之间部署上OpenTelemetry Collector,OpenTelemetry Collector和应用程序之间是通过OTLP协议传输遥测数据,这个协议是OpenTelemetry 客户端SDK封装好的。

但这种模式有个问题,如果应用程序产生的遥测数据太多,一个OpenTelemetry Collector 已经不能满足快速处理数据的要求,那应该怎么办呢?
集群网关模式
这就要提到第三种部署模式,集群网关模式部署OpenTelemetry Collector ,如下图所示,通过在多个OpenTelemetry Collector 前面部署一个拥有负载均衡功能的OpenTelemetry Collector 来让分发发往整个集群的遥测数据。

负载均衡的策略一般也是按trace id去划分,这样同一个请求轨迹的trace数据会被同一个OpenTelemetry Collector所处理,这对于某些类型的Collector中的处理器而言非常重要,比如后置采样处理器( Tail Sampling processor) ,它需要分析完整的trace链才能决定该条trace数据是否应该被采样。
从OpenTelemetry Collector导出遥测数据的功能是其组成部分之一exporter完成的,社区目前已经有现成的exporter可以配置在Opentelemetry Collector里,Trace ID/Service-name aware load-balancing exporter ,通过该exporter将遥测数据分发到Opentelemetry Collector集群里,在集群节点中做复杂的过滤清洗遥测数据的工作,在负载均衡网关Collector节点上,只做简单的分发操作。
【可观测性系列】 OpenTelemetry Collector的部署模式分析的更多相关文章
- 【Xamarin开发 Android 系列 1】环境部署搭建
原文:[Xamarin开发 Android 系列 1]环境部署搭建 开篇自然先扯一段,近几年移动互联网如果熊猫零食一样,蔓延迅速.楼主身为一个微软忠实的粉丝,无奈,老爹不给力.Silverlight开 ...
- Wix打包系列(五) 部署数据库
原文:Wix打包系列(五) 部署数据库 很多人在使用vs进行打包的时候,经常会为数据库部署的问题犯愁,即便是重写Installer类的方法,也不是很可靠方便,下面我们来看看在wix中如何部署数据库. ...
- RX系列一 | ReactiveX根源 | 观察者模式分析
RX系列一 | ReactiveX根源 | 观察者模式分析 Rx的响应式编程算是很火了,对吧,但是我的工作基本上就不会接触,所以学习的比较晚,到现在才分享给大家,我们一点点的去学,当你看完这整个系列的 ...
- scrapy爬虫学习系列三:scrapy部署到scrapyhub上
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- kubernetes系列03—kubeadm安装部署K8S集群
本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...
- k8s入门系列之guestbook快速部署
k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序
系列目录 [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...
- kettle系列-kettle管理平台部署说明
本介绍我的开源项目[kettle-manager]kettle管理平台如何获取并部署使用,该项目介绍请参看另一篇博文:http://www.cnblogs.com/majinju/p/5739820. ...
- jQuery MiniUI开发系列之:安装部署
jQuery MiniUI是一套纯Javascript的WebUI控件库,它由几十个Javascript控件组成,是不依赖服务端和数据库的. 下载jQuery MiniUI,解压缩后,开发者可以直接在 ...
随机推荐
- Linux 系统安全加固经验总结
本文为博主原创,转载请注明出处: 目录 1. 禁止root密码登录 2. linux 用户密钥复杂度及有效期设置 3. 检查sudo权限 4.关闭ftp 5.设置文件的属主并指定读写执行权限 6.管 ...
- webflux 的使用总结
本文为博主原创,未经允许不得转载: 1. Servlet 3.0 简介 2. WebFlux 简介 及 特点 3. 基于函数式的 WebFlux 开发 4. webFlux 全局异常 5. webF ...
- zookeeper源码(06)ZooKeeperServer及子类
ZooKeeperServer 实现了单机版zookeeper服务端功能,子类实现了更加丰富的分布式集群功能: ZooKeeperServer |-- QuorumZooKeeperServer |- ...
- 2023-SWPU NSS秋季招新赛(校外赛道)Misc—我要成为原神高手WP
1.题目信息 我是神里绫华的狗!!! 2.解题方法 有个genshin.h文件夹,打开看看发现里面是一堆文件夹0 1A 1A0等等,而且每个文件夹里面都有文件,0 1A 1A0...看着很眼熟,我们用 ...
- Kubernerts - 概览
1. Kubernerts K8s,是用于自动部署.扩容和管理容器化应用程序的开源系统 1.1 特性 自动化上线与回滚 分步骤针对应用或者配置更改上线,监控应用的运行状态同时不会终止所有实例,若出现问 ...
- Go-用本地时间解析时间字符串
Go-用本地时间解析时间字符串 1. 指定本地时区 const ( gLocalTimeZone = "Asia/Shanghai" ) 2. 加载本地时区 var ( gLoca ...
- Linux-运行级别-init
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.11.17)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- [转帖]TiDB 最佳实践
https://docs.pingcap.com/zh/tidb/stable/tidb-best-practices 本文档总结使用 TiDB 时的一些最佳实践,主要涉及 SQL 使用和 OLAP/ ...
- [转帖]不同CPU性能大PK
https://plantegg.github.io/2022/01/13/%E4%B8%8D%E5%90%8CCPU%E6%80%A7%E8%83%BD%E5%A4%A7PK/ 前言 比较Hygon ...