临汾山东漯河饰品美体美文
投稿投诉
美文创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品
漯河衢州
兴义眉山
桂林阳泉
玉溪简阳
山东遂宁
永城新余
梧州洛阳
泸州温州
临汾清远
营口常熟
浙江大连
桐乡宜昌

OpenTelemetrySpringCloudSleuth

11月23日 碧落盟投稿
  前言
  分布式跟踪可让您深入了解特定服务在分布式软件系统中作为整体的一部分是如何执行的。它跟踪和记录从起点到目的地的请求以及它们经过的系统。
  在本文中,我们将使用OpenTelemetry、SpringCloudSleuth、Kafka和Jaeger在三个SpringBoot微服务中实现分布式跟踪。
  我们先来看看分布式追踪中的一些基本术语。
  跨度:表示系统内的单个工作单元。跨度可以相互嵌套以模拟工作的分解。例如,一个跨度可能正在调用一个REST端点,然后另一个子跨度可能是该端点调用另一个,等等在不同的服务中。
  Trace:所有共享相同根跨度的跨度集合,或者更简单地说,将所有跨度创建为原始请求的直接结果。跨度的层次结构(每个跨度在根跨度旁边都有自己的父跨度)可用于形成有向无环图,显示请求在通过各种组件时的路径。
  OpenTelemetry
  OpenTelemetry,也简称为OTel,是一个供应商中立的开源Observability框架,用于检测、生成、收集和导出遥测数据,例如跟踪、指标和日志。作为云原生计算基金会(CNCF)的孵化项目,OTel旨在提供与供应商无关的统一库和API集主要用于收集数据并将其传输到某处。OTel正在成为生成和管理遥测数据的世界标准,并被广泛采用。
  SpringCloudSleuth
  Sleuth是一个由SpringCloud团队管理和维护的项目,旨在将分布式跟踪功能集成到SpringBoot应用程序中。它作为一个典型SpringStarter的。以下是一些开箱即用的Sleuth工具:
  在SpringMVC控制器(REST端点)收到的请求通过Kafka或MQ等消息传递技术的请求用RestTemplate,WebClient等发出的请求
  Sleuth添加了一个拦截器,以确保在请求中传递所有跟踪信息。每次调用时,都会创建一个新的Span。它在收到响应后关闭。
  Sleuth能够跟踪您的请求和消息,以便您可以将该通信与相应的日志条目相关联。您还可以将跟踪信息导出到外部系统以可视化延迟。
  Jaeger
  Jaeger最初由Uber的团队构建,然后于2015年开源。它于2017年被接受为云原生孵化项目,并于2019年毕业。作为CNCF的一部分,Jaeger是云原生架构中公认的项目。它的源代码主要是用Go编写的。Jaeger的架构包括:
  InstrumentationLibrariesCollectors查询服务和网页界面数据库存储
  与Jaeger类似,Zipkin在其架构中也提供了相同的组件集。尽管Zipkin是一个较老的项目,但Jaeger具有更现代和可扩展的设计。对于此示例,我们选择Jaeger作为后端。
  追踪系统设计
  让我们设计三个SpringBoot微服务:
  customerservicebff:使用backendforfrontend模式,此服务位于UI和后端之间。它由UIWeb应用程序调用,而后者又通过RESTAPI调用调用后端客户服务。customerservice:一个简单的客户CRUD服务。除了在CRUD操作时将数据持久化到其数据库之外,它还在创建、更新或删除客户记录时将事件发布到Kafka。orderservice:监听Kafka主题,使用客户创建更新删除的事件。
  这三个微服务旨在:
  通过RESTAPI(customerservicebff和customerservice)进行通信通过Kafka(customerservice和orderservice)通过事件驱动的pubsub进行通信
  这是为了观察OpenTelemetry如何结合SpringCloudSleuth处理代码的自动检测以及生成和传输跟踪数据。上面的虚线捕获了微服务导出的跟踪数据的路径,通过OTLP(OpenTelemetryProtocol)传输到OpenTelemetryCollector,收集器依次处理并将跟踪数据导出到后端Jaeger进行存储和查询。
  使用monorepo,我们的项目结构如下:
  第1步:添加POM依赖项
  这是使用OTel和SpringCloudSleuth实现分布式跟踪的关键。我们的目标是不必手动检测我们的代码,因此我们依靠这些依赖项来完成它们设计的工作自动检测我们的代码,除了跟踪实现、将遥测数据导出到OTel收集器等。
  dependencyManagementdependenciesdependencygroupIdorg。springframework。cloudgroupIdspringclouddependenciesartifactIdversion{springcloud。version}versiontypepomtypescopebimportbscopedependencydependencygroupIdorg。springframework。cloudgroupIdspringcloudsleuthoteldependenciesartifactIdversion{springcloudsleuthotel。version}versionscopebimportbscopetypepomtypedependencydependenciesdependencyManagementdependenciesdependencygroupIdorg。springframework。cloudgroupIdspringcloudstartersleuthartifactIdexclusionsexclusiongroupIdorg。springframework。cloudgroupIdspringcloudsleuthbraveartifactIdexclusionexclusionsdependencydependencygroupIdorg。springframework。cloudgroupIdspringcloudsleuthotelautoconfigureartifactIddependencydependencygroupIdio。opentelemetrygroupIdopentelemetryexporterotlptraceartifactIddependencydependencies
  springclouddependencies:SpringCloud依赖springcloudsleuthoteldependencies:SpringCloudSleuthOpenTelemetry依赖项springcloudstartersleuth:Sleuth通过模块中可用的桥与OpenZipkinBrave跟踪器集成springcloudsleuthbrave。由于我们将在示例中使用OpenTelemetry跟踪器,因此我们springcloudsleuthbrave从springcloudstartersleuth依赖项中排除,而是添加springcloudsleuthotelautoconfigure依赖项。这将基于Brave的默认跟踪实现替换为基于OpenTelemetry的实现。opentelemetryexporterotlptrace:这是SpringCloudSleuthOTel中向OpenTelemetryCollector发送跟踪的组件。
  第2步:OpenTelemetry配置
  OpenTelemetry收集器端点
  对于每个微服务,我们需要在其中添加以下配置application。yml(请参阅下面部分中的示例片段)。spring。sleuth。otel。exporter。otlp。endpoint主要是配置OTelCollector端点。它告诉导出器,在我们的例子中是Sleuth,通过OTLP将跟踪数据发送到指定的收集器端点http:otelcollector:4317。注意otelcollector端点URL来自otelcollector图像的dockercompose服务。
  跟踪数据概率抽样
  spring。sleuth。otel。config。traceidratiobased属性定义了跟踪数据的采样概率。它根据提供给采样器的分数对一部分迹线进行采样。概率抽样允许OpenTelemetry跟踪用户通过使用随机抽样技术降低跨度收集成本。如果该比率小于1。0,则某些迹线将不会被导出。对于此示例,我们将采样配置为1。0、100。
  有关其他OTelSpringCloudSleuth属性,请参阅常见应用程序属性。
  spring:application:name:customerservicesleuth:otel:config:traceidratiobased:1。0exporter:otlp:endpoint:http:fontiotelcollector:4317ifontfontfont
  OpenTelemetry配置文件
  我们需要项目根目录下的OTel配置文件otelconfig。yaml。内容如下。此配置文件定义了OTel接收器、处理器和导出器的行为。正如我们所看到的,我们定义了我们的接收器来监听gRPC和HTTP,处理器使用批处理和导出器作为jaeger和日志记录。
  extensions:memoryballast:sizemib:512zpages:endpoint:0。0。0。0:55679receivers:otlp:protocols:grpc:http:processors:batch:exporters:logging:logLevel:debugjaeger:endpoint:jaegerallinone:14250tls:insecure:btruebservice:pipelines:traces:receivers:〔otlp〕processors:〔batch〕exporters:〔logging,jaeger〕extensions:〔memoryballast,zpages〕
  第3步:dockercompose将所有内容串在一起
  让我们看看我们需要启动哪些docker容器来运行这三个微服务并观察它们的分布式跟踪,前三个微服务在上面的部分中进行了解释。
  customerservicebffcustomerserviceorderservicepostgrescustomer:数据库customerservicepostgresorder:数据库orderservicejaegerallinone:运行所有Jaeger后端组件和UI的单个图像otelcollector:OpenTelemetry追踪引擎,接收、处理、导出追踪数据到后端zookeeper:跟踪Kafka集群中节点的状态,维护Kafka主题和消息列表kafka:发布订阅事件流处理平台
  services:customerservicebff:image:customerservicebff:0。0。1SNAPSHOTports:font8080:8080fontfontdependson:zookeeperkafkacustomerservice:image:customerservice:0。0。1SNAPSHOTports:fontfont8081:8081fontfontdependson:zookeeperkafkapostgrescustomerenvironment:SPRINGDATASOURCEJDBCURLjdbc:postgresql:fontfontipostgrescustomer:5432customerserviceifontfontSPRINGDATASOURCEUSERNAMEpostgresSPRINGDATASOURCEPASSWORDpostgresSPRINGJPAHIBERNATEDDLAUTOupdateorderservice:image:orderservice:0。0。1SNAPSHOTports:fontfont8082:8082fontfontdependson:zookeeperkafkapostgresorderenvironment:SPRINGDATASOURCEJDBCURLjdbc:postgresql:fontfontipostgresorder:5432orderserviceifontfontSPRINGDATASOURCEUSERNAMEpostgresSPRINGDATASOURCEPASSWORDpostgresSPRINGJPAHIBERNATEDDLAUTOupdatepostgrescustomer:image:postgresports:fontfont5432:5432fontfontenvironment:POSTGRESPASSWORDpostgresPOSTGRESUSERpostgresPOSTGRESDBcustomerservicepostgresorder:image:postgresports:fontfont5431:5431fontfontenvironment:POSTGRESPASSWORDpostgresPOSTGRESUSERpostgresPOSTGRESDBorderservicejaegerallinone:image:jaegertracingallinone:latestports:fontfont16686:16686fontfontfontfont14268fontfontfontfont14250fontfontotelcollector:image:otelopentelemetrycollector:0。47。0command:〔fontfontconfigetcotelcollectorconfig。yamlfontfont〕volumes:。otelconfig。yaml:etcotelcollectorconfig。yamlports:fontfont1888:1888fontfontpprofextensionfontfont13133:13133fontfonthealthcheckextensionfontfont4317fontfontOTLPgRPCreceiverfontfont55670:55679fontfontzpagesextensiondependson:jaegerallinonezookeeper:image:confluentinccpzookeeper:latestenvironment:ZOOKEEPERCLIENTPORT:2181ZOOKEEPERTICKTIME:2000ports:22181:2181kafka:image:confluentinccpkafka:latestdependson:zookeeperports:29092:29092environment:KAFKABROKERID:1KAFKAZOOKEEPERCONNECT:zookeeper:2181KAFKAADVERTISEDLISTENERS:PLAINTEXT:fontfontikafka:9092,PLAINTEXTHOST:localhost:29092ifontfontKAFKALISTENERSECURITYPROTOCOLMAP:PLAINTEXT:PLAINTEXT,PLAINTEXTHOST:PLAINTEXTKAFKAINTERBROKERLISTENERNAME:PLAINTEXTKAFKAOFFSETSTOPICREPLICATIONFACTOR:1font
  运行dockercomposeupd以调出所有九个容器:
  第4步:追踪数据在行动
  快乐之路
  现在,让我们启动customerservicebff流程的入口点,以创建新客户。
  启动JaegerUI,http:localhost:16686〔urlhttps:link。zhihu。com?targethttp3Alocalhost3A166862C〕按〔url〕服务搜索customerservicebff,单击FindTraces按钮,这是我们看到的创建客户跟踪:它跨越三个服务,总共跨越六个,持续时间82。35毫秒。
  除了TraceTimeline视图(上面的屏幕截图),Jaeger还提供了一个图形视图(TraceGraph在右上角的下拉菜单中选择):
  三个微服务在docker中的日志输出显示相同的跟踪id,以红色突出显示,并根据其应用程序名称显示不同的跨度id(应用程序名称及其对应的跨度id以匹配的颜色突出显示)。在的情况下customerservice,相同的spanid从RESTAPI请求传递到Kafka发布者请求。
  错误场景
  customerservice让我们在docker中暂停我们的PostgreSQL数据库,然后重复从customerservicebff。500internalservererror正如预期的那样,我们得到了。检查Jaeger,我们看到以下跟踪,异常堆栈跟踪抱怨SocketTimeoutException,再次如预期的那样。
  识别长期运行的跨度
  JaegerUI允许我们搜索超过指定最大持续时间的跟踪。例如,我们可以搜索所有耗时超过1000毫秒的跟踪。然后,我们可以深入研究长期运行的跟踪以调查其根本原因。
  总结
  在这个故事中,我们从OpenTelemetry、SpringCloudSleuth和Jaeger的角度解压了分布式跟踪,验证了RESTAPI调用和Kafkapubsub中分布式跟踪的自动检测。我希望这个故事能让你更好地理解这些跟踪框架和工具,尤其是OpenTelemetry,以及它如何从根本上改变我们在分布式系统中进行可观察性的方式。

美媒曝欧文将正式加盟湖人,球迷建议再招募一个干脏活的角色球员休赛季以来,杜兰特和欧文逼宫篮网管理层闹得沸沸扬扬,杜欧去向扑朔迷离,备受关注。近日,篮网随队记者确认欧文或将将正式加盟湖人。虽然还没有进行官宣,但种种迹象已经表明欧文与……新研究提出针对虚假数据注入攻击的防御机制来源:【科学网】近日,华东理工大学信息科学与工程学院教授杨文课题组提出一种针对虚假数据注入攻击的安全防御机制,相关成果以《一种抵御多传感器远程状态估计中欺骗攻击的安全编码……徕卡加持的坚果J10S有多牛,专业级色彩显示没色差几天前看见毕导公众号发布了人类看到的颜色是一样吗?也许你从没看过真正的黄色这样一个标题的文章,看着还挺有意思的。点进去一看,呦呵,这说的不就是我平时关注的投影仪圈子的常见……华晨宇穿高跟鞋,宁静绿嘴唇,这8位明星的高级审美,看不懂娱乐圈是个争奇斗艳的地方,想要出人头地,就要百花齐放,尽可能多地曝光自己,抓住众人的眼球。而要想抓人眼球,圈粉无数,各大明星通常采用三个途径:第一个,靠真才实学,凭……CCTV5不直播辽宁对阵山西季后赛,直播新赛季女超揭幕战4月7日下午,CCTV的直播计划,辽宁与山西的季后赛,将是CCTV5频道直播。CCTV5会在15:30直播新赛季女超联赛揭幕战武汉车谷江大对阵陕西长安竞技。4月7日,新赛……谷歌新机Pixel7曝光!首发安卓13系统,撞脸iPhone作者fanfan来源极果编辑部去年10月底,谷歌Pixel6系列上市,该机凭借可媲美骁龙888的自研Tensor芯片和辨识度极高的外观设计,获得一大波好评,使得不少……OpenTelemetrySpringCloudSleuth前言分布式跟踪可让您深入了解特定服务在分布式软件系统中作为整体的一部分是如何执行的。它跟踪和记录从起点到目的地的请求以及它们经过的系统。在本文中,我们将使用Open……豪砸3万预算工作机,12900KRTX3090Ti32GCV嗨又到DIY搞机时间,最近的装机基本都是围绕着一个色调进行,那就是纯白。主流机箱外观现在的趋势就是非黑即白,所以咳咳还是要迎合大众的口味嘛。这次的DIY装机为大家带来的是一套1……阿根廷通胀率飙升至94。8,今年新兴市场能否否极泰来?在获得世界杯冠军狂欢后,如今的阿根廷已经重新归于平静,老百姓继续为柴米油盐而烦恼。阿根廷国家统计与普查研究所1月12日公布的数据显示,阿根廷2022年的通胀率达到了94。……一篇越穷越愚昧,越愚昧越贱的文章,让我在头条看见彼此在头条看见彼此卷首语:我前段时间写了一篇关于人性的探索文章,题为《越穷越愚昧,越愚昧越贱,这就是人性》,文章发出后读者褒贬不一,有读懂我文章的朋友们都是持支持的态度……中国U17男足云南玉溪集训备战亚洲杯,攻强守弱配置让主教练杨原定5月3日在泰国开赛的U17亚洲杯,因故推迟到6月17日,杨晨执教的中国U17男足多出一个月的准备期。近期,球队正在云南玉溪进行为期17天的针对性训练,备战U17男足亚洲杯。……望圆科技高度依赖境外市场研发薄弱,突击分红后募资四成用于补流近日泳池清洁机器人厂商天津望圆智能科技股份有限公司(以下简称:望圆科技)向深市主板递交了招股说明书,本次IPO拟募资10亿元,中信建投证券为其保荐机构。望圆科技是国内较早……
澳嘉食品加码预制菜,将潢川甲鱼打造成知名地域特色产品丨深读预【大河财立方记者吴海舒】编者按2022年,被称为预制菜元年,权威机构预计,预制菜将从此成为影响未来30年的巨大风口。随着政策利好、技术设备的逐渐完善,以及消费需求的不断增……人生一道茶文姚秦川平日里,如果手头不忙,我会邀上几个好友,来家里围坐品茗,说说闲话,聊聊生活。茶,并不特别珍贵,有些是自己买的,有些则是亲朋送的。虽然茶普普通通,但朋友说,茶喝起来……苹果今年可能不会推出第七代iPadminiIT之家1月12日消息,苹果于2021年9月推出了第六代iPadmini,并为该系列进行了重大设计升级。国外科技媒体MacRumors在最新文章中认为苹果没有升级iPadmin……火箭61轻取光头强,巫师142分却输球,张安达携手丁俊晖冲冠北京时间1月10号,2223赛季斯诺克大师赛第二个比赛日落下帷幕,冠军奖金高达25万英镑让火箭再度开启缺钱模式,围球稳、远台准令他61轻松击败光头强晋级,后者第三局两次离谱的母……蒙自过桥米线与文创产品的浪漫邂逅来源:人民网云南频道12月17日,国际(过桥米线)美食名城蒙自过桥米线节新闻发布会在云南蒙自举行。活动现场通过一系列文创产品的展示,将一碗米线如何变成一个产业、一种文化、……一看就很高级的打扮长啥样?看看这篇就知道,简约美观还舒适保暖很多人到了中年,对于如何管理形象这一问题往往更加关注,为了时尚优雅,不少中年女人都愿意花费大量时间和心思,以求让自己别那么快走起下坡路。但在追求时尚的过程中,有些人也会因为过于……太阳队危,保罗终身无冠,湖人有望逆袭太阳反杀季后赛!本赛季太阳队开赛后老板和克劳德就闹得不可开交,先是老板侮辱歧视女性被NBA联盟封杀,接着是克劳德申请交易表示不愿意再为太阳打比赛了,可是老板对于球队早就心不在焉了,于是太阳带着……广东四大名山之鼎湖山一日游新一年元旦假期,看了下天气,晴好,于是打算去鼎湖山走走看,完成广东四大名山之旅。2023。1。1,出发鼎湖山,也许期望值过高,都盛传为广东四大名山之首,可惜走了两圈,有一……虎年女宝宝名字大全2022有寓意有魅力又有气质的女孩名字有魅力又有气质的女孩名字有哪些一、有魅力又有气质的女孩名字雨清(yqng)姓名笔画:81220画出自:1、柳宗元的《夏初雨后寻愚溪》悠悠雨初霁,独……曾国藩十六字箴言曾国藩十六字箴言:物来顺应,未来不迎,当时不杂,既过不恋。这句话的意思是说,凡事要顺其自然,坦然面对,活在当下,不过度担忧未来还未发生的事,要心无杂念地做好眼前的事……张镇麟赵继伟李晓旭发挥出色!辽宁本钢大比分狂胜四川获3连胜!12月23日,CBA常规赛四川金荣实业和辽宁本钢狭路相逢。此前四川金荣实业以3胜13负排在第17位,近期是6连败,分别负于上海久事,浙江稠州金租,九台农商银行,北京控股,广东东……2023年春晚紧锣密鼓筹备中,这5位年轻主持人,你最期待谁登春节晚会,群英荟萃。辛辛苦苦忙碌了一年,除了放假回家能与家人团聚之外。吃年夜饭,看春晚也是不少人过春节的必备项目。精彩纷呈的节目不提,单单是那些风格迥异的主持……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找