专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 实现微服务监控的方法

实现微服务监控的方法

更新时间:2021-10-29 10:40:28 来源:星辉 浏览1807次

我们所说的微服务是什么意思?

微服务是可自主部署的、以业务为中心的单元。并非所有部署工件都是单独的服务。例如,可能有一个具有运行时组件和 ETL 组件的微服务。想将它们部署在一起,因为它们是紧密耦合的。在大多数情况下,还想将这些作为一项服务进行监控。对于微服务,希望将它们视为独立的服务,但也希望评估它们之间的相关性。

实现微服务监控的方法

现在,让我们看看监控微服务时需要的五个步骤。

1.确定只启动几个服务

在实施或学习新事物时,尝试一次性启动并运行所有精彩功能可能很诱人。在Java软件开发工具中,我们称之为闪亮工具综合症。我们如此沉迷于一个充满可能性的领域,以至于我们可能会迷失在设置事物的复杂性中。

为避免这种情况,请限制您为监控微服务而设置的内容。选择两个或三个服务来连接到您的新监控工具。然后对每一个重复步骤 2 到 5(见下文)。

您应该选择哪些服务?

要从本文开头继续比较,请选择您的交响乐中最响亮的乐器。哪些服务对您的业务最具战略意义?选择最具战略意义的服务将为您的努力带来最高价值。

您在选择最具战略意义的服务时可能会受到限制。也许其中一些是遗留应用程序,它们可能无法与较新的工具很好地配合使用,或者没有可以让您轻松重新配置它们的测试。在这种情况下,请选择您认为最安全且可以在本地运行的几项服务,以确保正确连接。

总体目标是将您的注意力限制在几个服务上——无论您如何选择。

2.确定要先衡量的几件事

与限制注意力的想法一致,您需要专注于要衡量的前一到三个最重要的指标。一些工具有很多功能。例如,Retrace 可以执行性能指标、警报、集中日志记录和错误跟踪。如果您还没有选择监控微服务的工具,查看所有功能可能会令人生畏。

相比之下,仅查看一到三个最重要的指标将使您能够避免这种分析瘫痪。这样你就可以更快地在第 3 步中滚动,而不是试图一下子理解所有内容。

您应该关注哪些指标?

要确定在监控微服务时要关注哪些指标,了解您的业务需求很重要。大多数客户或运营投诉来自哪里?是因为服务关闭太多还是请求太慢?也许是因为在高负载期间出现了太多数据库错误。

您对您的业务了解得越深入,您就越容易选择要选择工具的指标。此外,您可以更轻松地为您的老板花费您所需的预算,以便您购买工具。

如果您发现自己孤立无援(与其他团队或部门分离)或不知所措,不知道什么对您的业务最重要,该怎么办?从四个黄金信号开始。这些信号是一种久经考验的方法,可以从监控服务中获得即时价值。它们几乎对任何企业都有用。Retrace支持这些开箱即用的功能,并具有智能默认值,具体取决于您正在监控的服务类型。

3.委托 APM 和日志软件

现在你已经完成了你的功课,你可以选择一个监控工具。使用您的一到三个重要指标来指导您如何看待一个指标。如果他们有演示实例,您可以尽情玩乐以了解它的实际工作原理。这是理想的体验,因为屏幕截图只能带您到此为止。

无论指标如何,您都希望在监控工具中看到一些内容。首先,您需要轻松概览整个系统。这不仅包括您的运行时服务,还包括您的数据库和其他后端组件。这样做可以让您轻松感受整个系统的节奏,就像听一首所有乐器协同工作的歌曲一样。

您还需要仪表板,让您可以跨服务关联。这些可能会揭示在您的代码中不容易看到的关系。(如果您按照下面列出的第 5 步操作,您可以快速从这些跳转到集中式日志记录,以查看到底发生了什么。)

工具应该做什么

最后,该工具应该可以让您轻松地将概览分解为系统的特定服务和部分。您应该能够按几个不同的维度进行切片。该工具应该完成查明潜在问题的大部分艰苦工作。具有智能默认值的工具将使这变得容易,因为它将以多种粒度设置您需要的监视器组合。

您不仅应该查看用于监控的工具,还应该查看用于集中日志记录的工具。我提出集中日志记录也是因为监视器总是以某种方式聚合。他们非常擅长展示趋势和整体健康状况。但在某些时候,您需要深入了解到底发生了什么。您不应该需要访问多个日志字段来查看跨多个微服务的请求的故事。相反,您应该能够在一处查看来自多个服务的日志。

Retrace 具有监控和集中日志记录功能,但这不是必需的。只要您有办法将您的日志与您在监视器中看到的内容(例如,应用程序 ID和时间戳)相关联,您的监控工具就可以与您的日志记录工具分开。(在第 5 步中,我们将讨论如何制作强关联 ID。)

4.扩展点的仪器指标

一个好的工具将有一些方法可以自动检测您的服务。通常,这意味着您必须添加一个库并配置一些属性以连接到正确的服务器。确保该工具支持您选择的语言和框架的检测。否则,您将不得不在框架的请求生命周期中寻找接缝来检测自己。一些框架,例如Spring Boot,带有内置的监控扩展。

即使使用自动检测,大多数工具也应该让您自定义。这让您可以到达应用程序中那些从不太理想的环境演变而来的奇怪地方。

检测和配置完成后,在本地运行您的服务,指向您的监控服务器。确保数据实际上是从服务进入您的工具。如果您正在使用 Retrace,这里有一篇很棒的文章,描述了如何验证您的应用程序正在运行。

5.仪器跟踪到您的日志

即使在您连接并运行所有内容之后,仍然建议您做一件事。使用微服务,很难通过系统跟踪事件的踪迹。这使得跨服务错误几乎不可能被发现。

建议在您的每个服务中实施跟踪 ID。您需要以标准方式跨服务执行此操作,以便一个跟踪 ID 可以在整个系统中流动。OpenTracing 标准是实现这一目标的好方法,许多框架都有检测库来支持它。有了这个,您将能够轻松地跨多个服务查询日志,并探索问题如何影响您的软件。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>