【APM】在Kubernetes中,使用Helm安装tempo 2.4.1

1、Tempo 简介

Grafana Tempo 是由 Grafana Labs 开源的分布式追踪系统,它作为可观测性栈的一部分,专注于提供高效、可扩展的追踪数据收集、存储和查询功能。Tempo 设计用于处理大规模的分布式应用程序中的追踪数据,帮助开发者理解服务间的调用关系、性能瓶颈和错误传播路径,从而提高系统的可靠性和性能。

Grafana Tempo 简介:

核心特性:

高性能存储: Tempo 使用对象存储(如 AWS S3、GCP GCS 或 Azure Blob Storage)来低成本、长时间地存储追踪数据,同时利用本地缓存提高查询速度。

高效压缩: 通过高效的块压缩和索引技术,大幅减少追踪数据的存储空间需求。

简易集成: 支持 OpenTelemetry、Jaeger、Zipkin 等多种追踪格式,便于与现有系统集成。

查询优化: 提供快速查询接口,即使是数 TB 的数据也能迅速检索。

与 Grafana 生态集成: 无缝集成 Grafana 数据可视化平台,便于创建追踪数据的可视化面板和告警。

常用场景:

微服务监控: 在复杂的微服务架构中,Tempo 能够帮助追踪服务间的调用链路,识别慢请求和故障点,这对于理解服务间依赖、优化服务性能至关重要。

性能诊断: 当系统响应变慢或出现故障时,开发和运维团队可以利用 Tempo 追踪事务,快速定位问题发生的源头,无论是数据库查询延迟、网络延迟还是代码逻辑问题。

故障排查: 在分布式系统中,故障可能涉及多个服务和层次,Tempo 提供了一种手段来追溯整个调用链,加速故障排查过程。

服务优化: 通过对追踪数据的持续分析,识别性能瓶颈,为服务优化和架构调整提供数据支持。

用户体验监控: 结合前端追踪数据,可以完整地重建用户会话的追踪记录,了解用户在使用应用过程中的实际体验,辅助提升产品体验。

安全审计: 分析追踪数据还能帮助识别潜在的安全威胁,如异常的访问模式或未经授权的访问尝试。

结合 Grafana 的可视化能力,Tempo 不仅能提供追踪数据的详细视图,还能通过丰富的图表和报警功能,将追踪洞察转化为可操作的智能,助力 DevOps 团队更好地管理现代云原生应用的复杂性。

2、Github地址

https://github.com/grafana/tempo

3、Helm安装

Helm是一个用于Kubernetes的应用程序包管理工具,它简化了Kubernetes应用的部署和管理过程。Helm的工作原理类似于Linux中的apt或者yum,但专门针对Kubernetes资源

3.1 添加Helm源

bash 复制代码
helm repo add grafana  https://grafana.github.io/helm-charts

3.2 下载chart包

bash 复制代码
helm pull grafana/tempo-distributed --version 1.9.9
tar -zxvf tempo-distributed-1.9.9.tgz

3.3 安装

bash 复制代码
helm upgrade --install tempo   --set global.dnsService=coredns --set minio.enabled=true --set minio.persistence.size=200Gi    --set gateway.enabled=true   --set traces.otlp.grpc.enabled=true         tempo-distributed/ -n trace

注:

--set global.dnsService=coredns 覆盖默认kube-dns值,默认是kube-dns(Kubernetes dns服务器)

--set minio.enabled=true 开启minio持久化存储数据

--set gateway.enabled=true 开启网关服务

--set traces.otlp.grpc.enabled=true 开启otlp协议,强烈建议开启,之后方便opentelemetry连接

常见服务集成配置连接:

grafana datasource:http://tempo-gateway.trace.svc.cluster.local

opentelemetry:tempo-distributor-discovery.trace.svc.cluster.local:4317

3.4 组件介绍

Tempo Server: 这是 Grafana Tempo 的核心组件,负责接收、处理和存储追踪数据。它支持从各种追踪源(如 Jaeger、OpenTelemetry 等)接收数据,并将数据高效地存储到后端存储系统中(通常是对象存储服务,如 AWS S3、Google Cloud Storage 或 Azure Blob Storage)。Tempo Server 还提供了查询 API,用于检索存储的追踪数据。

Distributor: 负责接收追踪数据并对其进行分配,实现负载均衡。它确保高并发写入时的服务稳定性。

Ingester: 处理从 Distributor 接收到的数据,对追踪数据进行压缩、归并和临时存储,之后将处理后的数据持久化到长期存储。

Querier: 负责处理追踪数据查询请求。当需要检索追踪数据时,它从对象存储中读取数据,并返回给用户或前端应用(如 Grafana)。

Compactor: 定期合并存储在对象存储中的小数据块,以优化存储效率和查询性能。

Gateway/Query Frontend: 这个组件作为查询请求的入口,可能负责路由查询请求到合适的 Querier,提供额外的安全控制或负载均衡。

相关推荐
运维&陈同学4 小时前
【Beats01】企业级日志分析系统ELK之Metricbeat与Heartbeat 监控
运维·elk·elasticsearch·云原生·kibana·heartbeat·metricbeat
AKA小徐5 小时前
Debian12使用RKE2离线部署3master2node三主两从的k8s集群详细教程
kubernetes·rancher·rke2
老大白菜12 小时前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
tntlbb16 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
Gabriel_liao16 小时前
Docker安装Neo4j
docker·容器·neo4j
有一个好名字16 小时前
zookeeper分布式锁模拟12306买票
分布式·zookeeper·云原生
Anna_Tong19 小时前
云原生大数据计算服务 MaxCompute 是什么?
大数据·阿里云·云原生·maxcompute·odps
豆豆豆豆变19 小时前
Docker轻量级可视化工具Portainer
docker·容器·自动化运维
花晓木19 小时前
k8s etcd 数据损坏处理方式
容器·kubernetes·etcd
运维&陈同学19 小时前
【模块一】kubernetes容器编排进阶实战之基于velero及minio实现etcd数据备份与恢复
数据库·后端·云原生·容器·kubernetes·etcd·minio·velero