首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Elasticsearch、Cassandra和Kafka实行Jaeger持久化存储

在这篇文章,我将讨论如何在生产中摄入和存储Jaeger追踪数据,以确保弹性和高可用性,以及为此需要设置的外部服务。...我将介绍: 使用Elasticsearch和Cassandra的Jaeger标准持久化存储 使用gRPC插件的替代持久化存储 使用Kafka处理高负载追踪数据 在开发期间使用jaegertracing...all-in-one[2]的Jaeger持久化存储 与Elasticsearch、Kafka或其他外部服务一起部署Jaeger Jaeger的部署可能涉及额外的服务,Elasticsearch、Cassandra...在这种情况下,你应该采用我在上一篇文章中提到的部署策略,即在收集器和存储之间使用Kafka来缓冲Jaeger收集器的span数据。 ? 用Kafka作为中间缓冲区的架构说明。...All-in-one是一个单节点安装,你不必为非功能性需求(弹性或可伸缩性)而烦恼。在一体化部署Jaeger默认使用内存持久化。

4.1K10

基于 Jaeger 进行微服务链路追踪

在解析之前,我们先来了解下 Jaeger 链路追踪工作原理,具体如下参考示意图所示:     基于 Jaeger 组件架构原理,我们可以看到:在分布式系统处理,当一个跟踪完成后,通过 Jaeger-Agent...关于数据采样率,在实际的业务场景,链路追踪系统本身也会造成一定的性能低损耗,如果完整记录每次请求,对于生产环境可能会带来极大的性能损耗,因此,我们需要依据当前现状进行采样策略配置。...采样速度限制(sampler.type=ratelimiting)sampler.param=2.0 每秒采样两个traces 4、动态获取采样率 (sampler.type=remote) 此策略为默认配置...,可以通过配置从 Agent 获取采样率的动态设置     5、自适应采样(Adaptive Sampling)开发计划     在实际的业务场景,为了能够追溯某一请求运行轨迹,通常,在理想情况下...: jaeger-spans brokers: demo-cluster-kafka-brokers.kafka:9092 #修改为kafka地址 ingester:

1K80
您找到你想要的搜索结果了吗?
是的
没有找到

基于 Jaeger 进行微服务链路追踪

在解析之前,我们先来了解下 Jaeger 链路追踪工作原理,具体如下参考示意图所示: 基于 Jaeger 组件架构原理,我们可以看到:在分布式系统处理,当一个跟踪完成后,通过 Jaeger-Agent...关于数据采样率,在实际的业务场景,链路追踪系统本身也会造成一定的性能低损耗,如果完整记录每次请求,对于生产环境可能会带来极大的性能损耗,因此,我们需要依据当前现状进行采样策略配置。...采样速度限制(sampler.type=ratelimiting)sampler.param=2.0 每秒采样两个traces 4、动态获取采样率 (sampler.type=remote) 此策略为默认配置...,可以通过配置从 Agent 获取采样率的动态设置 5、自适应采样(Adaptive Sampling)开发计划 在实际的业务场景,为了能够追溯某一请求运行轨迹,通常,在理想情况下...-n jaeger jaeger.jaegertracing.io/demo-prod created 若实际的业务场景,如果流量过大,我们可以借助接入 Kafka 集群以减轻 ES

1.1K40

分布式链路追踪

但数量庞大的微服务实例治理起来给我们带来了很多问题,通常的做法都是引入相应组件完成, API 网关 ( apisix, kong, traefik ) 负责认证鉴权、负载均衡、限流和静态响应处理;服务注册与发现中心...这通常是通过 Kubernetes 等容器环境的 sidecar 来实现的。 Jaeger Collector : 与代理类似,该收集器可以接收 span,并将其放入内部队列以便进行处理。...Jaeger 可以使用 Apache Kafka 作为收集器和实际后备存储之间的缓冲。Ingester 是一个从 Kafka 读取数据并写入另一个存储后端的服务。...Jaeger 部署 Jaeger 部署方案主要围绕以下几个方面: ALL IN ONE 还是分布式 后端存储的选择(Elasticsearch、Cassandra 甚至 memory) 是否引入 Kafka...crd 资源 kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy

1.2K81

浅谈分布式链路追踪之Jaeger

基于此系统,使得 Google 的开发和运维等技术团队在业务场景能够针对问题的定位与分析达到事半功倍的效果,省时省力。自此, Dapper 开始发展成为“服务调用”的一监控系统鼻祖。...只有 id 和 baggage 随请求一起传播;所有其他概要分析数据(操作名称,时间,tag 和 log)都不会传播。相反,它在后台异步地传输到 Jaeger 后端。...为了最大程度地减少开销,Jaeger 客户端采用了各种采样策略。对跟踪进行采样时,将捕获分析范围数据并将其传输到 Jaeger 后端。...默认情况下,Jaeger 客户端对 0.1% 的 Traces 进行采样(每 1000 条的 1 条),并且能够从 Jaeger 后端检索采样策略。有关更多信息,请参阅官网相关文档。...Jaeger 的存储是一个可插拔组件,目前支持 Cassandra,Elasticsearch 和 Kafka

2.3K20

OpenTelemetry入门看这一篇就够了|公开课

在这种配置,我们有一个中心的 OpenTelemetry 收集器,它使用 deployment 模式部署,具有许多优势,自动扩展。...使用中心收集器的一些优点是: 消除对团队的依赖 强制执行批处理、重试、加密、压缩的配置/策略 在中心位置进行身份验证 丰富的元数据信息 进行抽样决策 通过 HPA 进行扩展 部署模式总结 下面我们总结下常见的一些部署策略...我们可以在 OpenTelemetry 收集器配置 Jaeger 导出器,以便将数据发送到 Jaeger。...因为我们在中心收集器配置了日志记录导出器和 Grafana Tempo 两个导出器,当然也可以配置其他导出器。...当然其中还有很多其他内容没有涉及到,比如如何在 OpenTelemetry 中使用 Prometheus 来收集指标数据,如何在 OpenTelemetry 中使用 Loki 来收集日志数据等等,也包括一些采样策略

7.3K31

Tracing卷二:什么是Jaeger

重点来了,在 Trace 的起始处,将 Trace ID 设置为 Request ID,这么一来就打通了日志系统和分布式追踪系统,可以使用同一个 ID 查询请求的事件和日志,从此开启了上帝视角。...采样策略 支持设置采样率是 Jaeger 的一个亮点,在生产环境,如果对每个请求都开启 Trace,必然会对系统性能带来一定压力,除此之外,数量庞大的 Span 也会占用大量的存储空间。...remote 按远程设置的一种动态采集策略,取值的含义和 probabilistic 相同,都意为采样的概率,只不过设置为 remote 后,Client 会从 Jaeger Agent 动态获取采样率设置...remote是采样器的默认值,当我们不做配置时,会从 Jaeger 后端中央配置甚至动态地控制服务的采样策略。...而微服务跨进程调用,一般有 HTTP 和 gRPC 两种,接下来以Go代码为例,从浅入深和大家一起学习如何在实际场景中使用Jaeger

37740

你是否有效地追踪Kubernetes应用程序?

这些包括副载代理、Kafka 服务、数据库等。 ? 图 2:Jaeger 架构(来源:Jaeger) 每个服务都必须通过使用一个受支持的库修改其源代码来插装,不过也有一些针对其他平台的非官方库。...默认情况下,Jaeger 客户端采样 0.1%的追踪,并且能够通过 Jaeger 中央后端应用正确的采样策略,而不需要为其每个服务进行特定的配置。...Jaeger 的特点是在部署之前必须安装和配置 Kubernetes 操作器,并提供了三种部署策略: AllInOne是为测试目的而设计的。所有服务都部署到一个单独的 Pod ,并使用内存存储。...Streaming本质上是一种改进的 Production 策略,其中 Kafka 服务用于数据摄取。这减少了对存储的压力,允许改进查询和数据可视化。 ?...使用配置提供者( Kubernetes ConfigMap)可以在一定程度上帮助解决这些问题,但是被检测的应用程序必须与服务兼容。

73930

Istio服务网格的可观察性

Istio 可观察性 前面我们学习了 Istio 的流量管理功能,本节我们来学习如何配置 Istio来自动收集网格的服务遥测。...这个指标应该分成成功请求( HTTP 200)和失败请求( HTTP 500)的延迟。 流量是衡量对系统的需求有多大,它是以系统的具体指标来衡量的。...问题是,在安装 CRD(自定义资源定义)和由该 CRD 定义的资源时,可能存在一个匹配条件。 我们可以用 istioctl dashboard kiali 打开 Kiali。...通过 Grafana,我们可以监控 Istio 安装和服务网格运行的应用程序的健康状况。 我们可以使用 grafana.yaml 来部署带有预配置仪表盘的 Grafana 示例安装。...配合使用,相当于Kafka的一个Consumer,消费数据存储到DB 部署Jaeger 接下来我们把 Jaeger 集成到 Istio。

78041

Istio介绍

可插入的策略层和配置 API,支持访问控制、速率限制和配额。 对出入集群入口和出口中所有流量的自动度量指标、日志记录和跟踪。 通过强大的基于身份的验证和授权,在集群实现安全的服务间通信。...控制平面负责管理和配置代理来路由流量。此外控制平面配置 Mixer 以实施策略和收集遥测数据。...Citadel Citadel 通过内置身份和凭证管理可以提供强大的服务间和最终用户身份验证。可用于升级服务网格未加密的流量,并为运维人员提供基于服务标识而不是网络控制的强制执行策略的能力。...、各种配置之间统筹,为 Istio 提供配置管理服务,包含有Kubernetes CRD资源的listener,通过用Kubernetes的Webhook机制对Pilot 和 Mixer 的配置进行验证...如果采用外部的prometheus则不用 其他组件jaeger、grafana则同样采用外部系统,因此可以不用和istio一起安装 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

75420

我们如何将检测和解决时间缩短一半

例如,我们需要检测过滤器、异常和任何其他问题的信号。 在微观层面上,我们需要能够精确找到问题的根源。...尝试1:OpenTelemetry 和 Jaeger 自然而然,我们首先尝试了 OpenTelemetry 和我们自己的 Jaeger 实例。...Helios 将后端服务(如数据库和消息队列)和协议( gRPC、HTTP、Mongo 查询等)视为一等公民。数据被格式化以符合其所代表的内容。...对于 Kafka , Helios 显示其捕获的主题列表。对于 AWS,Helios 显示正在使用的服务列表,并在使用这些服务时进行突出显示。 此外,Helios 团队还基于追踪提出了一整套测试策略!...在另一个案例,我们的一个复杂流程失败了。该流程涉及三个服务、三个数据库、 Kafka 和 gRPC 调用。然而,错误没有正确传播,日志也丢失了。

7610

实现全托管,腾讯云服务网格的架构演进

比如我们提供了中心化的 crd 存储管理,解决用户在使用多集群和混合云 mesh 配置管理的问题;另外我们提供了全托管的遥测系统,我们还支持跨地域的多集群构建成一个 mesh,mesh 的集群可以随着业务需求进行增删...这里说的 CRD 是指的 istio 的控规则,包括 virtualservice,destinationrule,gateway等等,在开源的 istio实现,这些资源的存储在用户 k8s 资源的...mesh 的单点瓶颈 子集群操作 CRD 非常不方便 特殊场景,比如一个不包括任何集群的空网格,无法持久化CRD 问题原因在于, mesh 配置带有全局性,是对整个网格生效,而在整个 mesh...当应用以多集群跨地域方式部署时,用户可以通过配置规则,设置后端服务的地域亲和性,以及失效转移优先级,来控制流量的转发策略。...如果本地的应用出现故障,导致不可用的时候,TCM 会通过预先配置好的失效转移优先级策略,将流量转发到其他可用地域的同名服务,从而实现跨地域的高可用。 4. 业务跨平台混部、平滑迁移 ?

2.1K60

实现全托管,腾讯云服务网格的架构演进

比如我们提供了中心化的 crd 存储管理,解决用户在使用多集群和混合云 mesh 配置管理的问题;另外我们提供了全托管的遥测系统,我们还支持跨地域的多集群构建成一个 mesh,mesh 的集群可以随着业务需求进行增删...这里说的 CRD 是指的 istio 的控规则,包括 virtualservice,destinationrule,gateway等等,在开源的 istio实现,这些资源的存储在用户 k8s 资源的...mesh 的单点瓶颈 子集群操作 CRD 非常不方便 特殊场景,比如一个不包括任何集群的空网格,无法持久化CRD 问题原因在于, mesh 配置带有全局性,是对整个网格生效,而在整个 mesh...当应用以多集群跨地域方式部署时,用户可以通过配置规则,设置后端服务的地域亲和性,以及失效转移优先级,来控制流量的转发策略。...如果本地的应用出现故障,导致不可用的时候,TCM 会通过预先配置好的失效转移优先级策略,将流量转发到其他可用地域的同名服务,从而实现跨地域的高可用。 4. 业务跨平台混部、平滑迁移 ?

1.4K1210

实现全托管,腾讯云服务网格的架构演进

比如我们提供了中心化的 crd 存储管理,解决用户在使用多集群和混合云 mesh 配置管理的问题;另外我们提供了全托管的遥测系统,我们还支持跨地域的多集群构建成一个 mesh,mesh 的集群可以随着业务需求进行增删...这里说的 CRD 是指的 istio 的控规则,包括 virtualservice,destinationrule,gateway等等,在开源的 istio实现,这些资源的存储在用户 k8s 资源的...mesh 的单点瓶颈 子集群操作 CRD 非常不方便 特殊场景,比如一个不包括任何集群的空网格,无法持久化CRD 问题原因在于, mesh 配置带有全局性,是对整个网格生效,而在整个 mesh...当应用以多集群跨地域方式部署时,用户可以通过配置规则,设置后端服务的地域亲和性,以及失效转移优先级,来控制流量的转发策略。...如果本地的应用出现故障,导致不可用的时候,TCM 会通过预先配置好的失效转移优先级策略,将流量转发到其他可用地域的同名服务,从而实现跨地域的高可用。 4.

2K2016
领券