当前位置: 首页 > news >正文

七个优秀微服务跟踪工具

随着微服务架构复杂性的增加,在问题出现时确定问题的根本原因变得更具挑战性。日志和指标为我们提供了有用的信息,但并不能提供系统的完整概况。这就是跟踪的用武之地。通过跟踪,开发人员可以监控微服务之间的请求进度,从而使他们能够更早地发现并解决问题。

在本文中,我将探讨跟踪的好处,并重点介绍七种可用的最佳跟踪工具,包括 Helios、DataDog、Honeycomb、Jaeger、Zipkin、New Relic 和 Splunk。因此,让我们深入研究并发现这些工具如何帮助我们更好地管理和监控我们的微服务。

什么是追踪?

跟踪是分布式系统的重要组成部分,涉及监视和收集不同服务和模块之间的数据流和响应。在微服务架构中,一个请求会通过多个具有不同功能的服务传递。跟踪允许开发人员跟踪请求路径,以识别潜在问题的根源并捕获时间、延迟、性能洞察和服务依赖性等信息。

使用追踪的好处

使用跟踪可以为您的微服务架构带来许多好处:

  • 识别性能问题:跟踪通过提供跨微服务的请求执行路径的详细视图来帮助识别性能问题。这使得程序员能够找到并修复系统的瓶颈、缓慢的端点和其他性能问题。
  • 调试:跟踪提供微服务之间交互的详细视图,帮助开发人员更有效地调试和诊断问题。
  • 监控:跟踪提供对微服务的实时监控,有助于在问题变得严重之前发现问题。这使得开发人员能够在问题影响用户之前主动解决问题。
  • 了解依赖关系:跟踪有助于了解微服务之间的依赖关系,从而深入了解一项服务的更改如何影响其他服务。
  • 扩展:跟踪有助于识别性能瓶颈和低效率,从而更轻松地扩展和处理更多流量,而不影响性能。
  • 端到端可见性:跟踪提供整个系统的端到端可见性,从而可以全面了解系统的运行状况和性能。这有助于开发人员和操作人员了解系统的功能并确定需要注意的区域。

7 个最佳微服务跟踪工具

以下是您应该考虑的七个最佳微服务跟踪工具:

1.Helios

Helios是一个开发人员平台,可为您的端到端应用程序流程提供可操作的见解。它基于 OpenTelemetry 的上下文传播框架,提供跨微服务、无服务器功能、数据库和第三方 API 的端到端可见性。有关更多详细信息,请查看他们的沙箱或在此处注册免费使用它。

Helios的特点
  • Helios 在完整上下文中提供微服务的分布式跟踪信息。它可以被视为应用程序数据流的单一事实来源。
  • 用户可以通过分析有效负载和错误数据轻松识别性能瓶颈。
  • 可以轻松地与现有工具集成。
  • 允许重现精确的工作流程,例如 Lambda 调用。HTTP 请求、Kafka 和 RabbitMQ 消息。
  • 支持多种语言,包括Python、JavaScript、Node.js、Java、Ruby、.NET、Go、C++和Collector。
  • 支持基于跟踪数据自动生成测试。
2.DataDog

DataDog是一种流行的基于云的监控平台,可让您通过各种指标、日志和跟踪来监控微服务。它提供对系统行为的实时可见性,确保清楚地了解系统的运行状况。

DataDog的特点
  • 提供异常检测,自动通知用户异常行为。
  • 支持可视化服务、服务依赖关系和位置。
  • 用户可以分析跟踪并深入了解指标,以轻松识别问题的根本原因。
  • 每个 APM 主机最多支持 50 条跟踪。
  • 支持多个可以支持的供应商,包括 AWS、Azure 和 GCP。
3. Honeycomb

Honeycomb是另一种流行的工具,为微服务提供分布式跟踪。它提供实时分析以提供即时洞察,并支持异常检测以显示用户体验不佳的跨度。有关更多详细信息,请查看他们的沙箱。

Honeycomb的特点
  • 异常检测支持。
  • 用户只需为他们使用的内容付费(即用即付定价)。
  • 没有供应商锁定的仪器。
  • 支持多种编程语言,包括Python、Java、Ruby和Go。
4. Jaeger

Jaeger是一个功能强大的开源分布式跟踪系统,旨在监控基于微服务的分布式系统并对其进行故障排除。它能够借助其可扩展且灵活的架构处理大量数据,提供无与伦比的性能水平。

在此查找有关 Jeager 的更多详细信息。

Jaeger的特点
  • Jaeger 是一个开源解决方案,任何人都可以免费使用。
  • 提供高级搜索和可视化功能,以了解请求流并识别系统中的瓶颈或问题。
  • 支持Elasticsearch进行数据持久化。
  • 默认提供 Prometheus 指标。
  • 使用 Jaeger UI,用户可以根据服务、持续时间和标签轻松过滤跟踪。
5.Zipkin

Zipkin是另一种流行的开源分布式跟踪解决方案。它最初由 Twitter 开发,旨在收集计时数据以解决延迟问题,现在由 OpenZipkin 社区维护。

您可以使用 Docker 或 Java 轻松设置 Zipkin。

// Docker 
docker run -d -p 9411:9411 openzipkin/zipkin // Java 
curl -sSL https://zipkin.io/quickstart.sh | bash -s 
java -jar zipkin.jar // From Source 
# 获取最新的源代码
git clone https://github.com/openzipkin/zipkin 
cd zipkin 
# 构建服务器并创建其依赖项
./mvnw -DskipTests --also -make -pl zipkin-server clean install 
# 运行服务器
java -jar ./zipkin-server/target/zipkin-server-*exec.jar

Zipkin的特点
  • 提供基于 Web 的用户界面,用于可视化跟踪数据。
  • 用户可以根据服务名称、时间范围等过滤跟踪记录。
  • 提供依赖图和火焰图等可视化效果。
  • 支持与日志记录和指标平台等各种工具的集成。
  • 开源。
6. New Relic

New Relic是一个一流的监控平台,提供了一整套监控分布式微服务的工具。它不仅仅是监控,还提供系统性能的实时可视化和深入分析。此外,其“New Relic Edge服务”专门用于分布式跟踪,可以观察100%的应用程序痕迹。

您可以免费开始使用 New Relic 。

New Relic的特点
  • 支持所有主要云服务提供商,例如 AWS、Azure 和 GCP。
  • 用户可以深入研究指标和跟踪来分析问题的根本原因。
  • 通过收集、处理和分析来自多个资源的数据,提供日志的整体视图。
  • 支持开放遥测。
  • 使用单个代理即可轻松设置,自动检测整个应用程序。
7. Splunk

Splunk是一款功能强大且灵活的分布式跟踪工具,用于监控分布式系统中的问题并对其进行故障排除。无论您是跟踪微服务的性能还是监控复杂的网络,利用 Splunk 都可以确保您的系统平稳运行,同时最大限度地减少停机时间并优化整体性能。

您可以免费开始使用 Splunk 。

Splunk的特点
  • 使用人工智能驱动的服务来识别有错误的微服务。
  • 提供跨应用程序的端到端可见性。
  • 可以摄取多种格式,例如 JSON、XML 和非结构化数据。
  • 提供有吸引力的仪表板,其中包含图表、报告、数据透视表等。
  • 对数据建立索引以提供更快的搜索和查询功能。

结论

跟踪已成为当今复杂的微服务架构的重要组成部分,用于实时监控和解决问题。它提供了完整的系统概述,使开发人员能够在潜在问题变得严重之前识别它们,优化性能并提高整体可靠性。

本文讨论了跟踪的好处,并回顾了七种领先的跟踪工具,包括 Helios、Splunk、Jaeger 和 Zipkin。尽管它们有着共同的目标,但每个工具都有自己独特的功能和优势。因此,请务必选择最适合您需求的工具。

相关文章:

七个优秀微服务跟踪工具

随着微服务架构复杂性的增加,在问题出现时确定问题的根本原因变得更具挑战性。日志和指标为我们提供了有用的信息,但并不能提供系统的完整概况。这就是跟踪的用武之地。通过跟踪,开发人员可以监控微服务之间的请求进度,从而使他们…...

redis 问题解决 1

1.1 常见考点 1、Redis 为何这么快? Redis 是一款基于内存的数据结构存储系统,它之所以能够提供非常快的读写性能,主要是因为以下几个方面的原因: 基于内存存储:Redis 所有的数据都存储在内存中,而内存的访问速度比磁盘要快得多。因此,Redis 可以提供非常快的读写性能…...

odoo16前端框架源码阅读——启动、菜单、动作

odoo16前端框架源码阅读——启动、菜单、动作 目录:addons/web/static/src 1、main.js odoo实际上是一个单页应用,从名字看,这是前端的入口文件,文件内容也很简单。 /** odoo-module **/import { startWebClient } from "…...

C/C++(a/b)*c的值 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C(a/b)*c的值 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C(a/b)*c的值 2021年6月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定整数a、b、c,计算(a / b)*c的值&…...

CIFAR-100数据集的加载和预处理教程

一、CIFAR-100数据集介绍 CIFAR-100(Canadian Institute for Advanced Research - 100 classes)是一个经典的图像分类数据集,用于计算机视觉领域的研究和算法测试。它是CIFAR-10数据集的扩展版本,包含了更多的类别,用…...

C#,数值计算——函数计算,Eulsum的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Eulsum { private double[] wksp { get; set; } private int n { get; set; } private int ncv { get; set; } public bool cnvgd { get; set; } pri…...

ChatGLM3 langchain_demo 代码解析

ChatGLM3 langchain_demo 代码解析 0. 背景1. 项目代码结构2. 代码解析2-1. utils.py2-2. ChatGLM3.py2-3. Tool/Calculator.py2-4. Tool/Weather.py2-5. main.py 0. 背景 学习 ChatGLM3 的项目内容,过程中使用 AI 代码工具,对代码进行解释,…...

asp.net学院网上报销系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net学院网上报销系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net学院网上报销系统 应用技术…...

ElasticSearch知识点

什么是ElasticSearch ElasticSearch: 智能搜索,分布式的搜索引擎,是ELK的一个非常完善的产品,ELK代表的是: E就是ElasticSearch,L就是Logstach,K就是kibana Elasticsearch是一个建立在全文搜索引擎 Apache Lucene基础…...

STM32 GPIO

STM32 GPIO GPIO简介 GPIO(General Purpose Input Output)通用输入输出口,也就是我们俗称的IO口 根据使用场景,可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 数据0就是低电平&#xff0c…...

Electron 开发页面应用

简介 Electron集成了包括chromium(理解为具备chrom浏览器的工具),nodejs,native apis chromium:支持最新特性的浏览器。 nodejs:js运行时,可实现文件读写等。 native apis :提供…...

CSDN写博文的128天

起因 为什么要写博文? 写博文是因为当我还是编程小白时,我那会啥也不懂,不懂函数调用,不懂指针,更不懂结构体,别更说Linux,平时不会也没有可以问的人,也幸好有CSDN,遇到…...

Linux学习教程(第二章 Linux系统安装)1

第二章 Linux系统安装 学习 Linux,首先要学会搭建 Linux 系统环境,也就是学会在你的电脑上安装 Linux 系统。 很多初学者对 Linux 望而生畏,多数是因为对 Linux 系统安装的恐惧,害怕破坏电脑本身的系统,害怕硬盘数据…...

vue2手机项目如何使用蓝牙功能

要在Vue2手机项目中使用蓝牙功能,你需要先了解基本的蓝牙知识和API。以下是一些基本的步骤: 确认你的手机设备支持蓝牙功能。在Vue2项目中安装蓝牙插件或库,例如vue-bluetooth或vue-bluetooth-manager。你可以通过npm安装它们。在Vue2项目中…...

魔兽服务器学习-笔记1

文章目录 一、环境准备1)依赖安装2)源码下载和编译 二、生成数据信息1)地图数据信息(客户端信息)2)数据库信息 三、启动服务器四、日志模块五、数据库模块六、场景模块1)地图管理2)A…...

代码随想录day60|84.柱状图中最大的矩形

84.柱状图中最大的矩形(找到右边第一个更小的元素) 1、对于每一个柱子:找到左边第一个比他矮的,再找到右边第一个比他矮的。 2、首尾加0: 为什么要在末尾加0:否则如果原数组就是单调递增的话,就…...

常见面试题-分布式锁

Redisson 分布式锁?在项目中哪里使用?多久会进行释放?如何加强一个分布式锁? 答: 什么时候需要使用分布式锁呢? 在分布式的场景下,使用 Java 的单机锁并不可以保证多个应用的同时操作共享资源…...

vue开发 安装一些工具

下载 node.js环境 nodeJs 官网 命令行输入 node -v 和 npm -v 出现版本号 代表nodejs 安装成功选择安装pnpm npm install -g pnpmpnpm -v 出现版本号即成功安装安装 scss vue3 组件库 Element Plus Element 官网 安装 pnpm install Element-Plus --save第一次使用开发v…...

Vue.js 组件 - 自定义事件

Vue.js 组件 - 自定义事件 父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,就需要使用自定义事件! 我们可以使用 v-on 绑定自定义事件, 每个 Vue 实例都实现了事件接口(Events interface),即: …...

深度学习 python opencv 火焰检测识别 计算机竞赛

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

JavaSec-RCE

简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性&#xff0c…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes&#xff0…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...