Akka 是一个工具包和运行时,用于在 JVM 上构建高度并发、分布式和弹性的消息驱动应用程序。它是 Scala 用于实施“ 参与者模型 ”的标准发行版的一部分。
Akka 是如何工作的
Actors 之间的消息在 邮箱 队列中交换, Dispatcher 提供各种并发模型,而 Routers 管理 Actors 之间的消息流。这就是 Akka 为开发人员所做的很多事情!
但是如何找到分布式 Akka 应用程序中的瓶颈呢? 好吧,许多 Akka 用户已经使用了很棒的 Kamon 开源监控工具,它可以很容易地收集 Akka 指标。然而——这很重要! — DevOps 团队的预定义可视化、仪表板、异常检测、警报和基于角色的访问控制不在 Kamon 的范围内,它只专注于指标收集。为了克服这一挑战,Kamon 的设计使得将 Kamon 与其他监控工具集成成为可能。
不用说, Sematext 接受了这一理念,并为 SPM 贡献了 Kamon 后端。 这使 Akka 用户可以选择使用 Kamon 的详细指标以及 SPM 提供的可视化、警报、异常检测和团队协作功能 。
最新版本的 Kamon 0.5.x 包括 kamon-spm 模块 ,并于 2015 年 8 月 17 日在 Kamon 博客 上公布。这是摘录:
“ Sematext 的 Pavel Zalunin 贡献了新的 kamon-spm 模块,您可能猜到它允许您将指标数据推送到 Sematext Performance Monitor 平台。这个贡献对我们来说特别特别,因为这是性能监控领域的商业实体第一次迈出与 Kamon 集成的第一步,而且他们做得非常干净,我们甚至不必问PR 的任何更改,它都是完美的。我们真诚地希望更多的公司在这件事上效仿 Sematext 的步伐。 ”
现在让我们看看这个集成工作的结果:
-
推送到 SPM 的指标显示在预定义的报告中,包括:
- 所有关键 Akka 指标的概述
- 演员 、 调度员 和 路由器 的指标
- CPU、内存、网络、I/O、JVM 和垃圾回收的通用指标
-
每个图表都有“操作”菜单,用于:
- 定义异常检测和警报的标准
- 创建预定的电子邮件报告
- 使用只读链接安全地共享图表
- 将图表嵌入自定义仪表板
- 单个 SPM 应用程序可以从多个主机获取指标来监控整个集群; Host、Actor、Dispatcher 和 Router 的过滤器使深入了解相关信息变得容易。
-
Akka 用户也可以使用所有其他 SPM 功能。例如:
- 与 PagerDuty 、 HipChat 、 Slack 或任意 Webhooks 集成
- 具有基于角色的访问控制的应用程序和 帐户共享
-
指标和应用程序日志的关联
(通过
Logsene
)
- 只需使用 logback 的 Elasticsearch appender 或 Syslog 将 日志发送到 Logsene
Akka 指标概述
演员指标
Actor 发送和接收消息,因此 Actor 的关键指标是:
-
邮箱时间
邮件正在等待在邮箱中处理 - 邮箱中的高时间 值表示处理中可能存在延迟。 -
处理时间
这是 Actors 需要处理接收到的消息的时间——用它来发现慢速的 Actors -
邮箱大小
大 邮箱大小 可能表示未决操作,例如,当它不断增长时。
上述每个指标都是针对所有 Actors 汇总显示的,但也可以使用 SPM 过滤功能单独查看所有 Actors 的指标,或者选择一个或多个特定的 Actors 并仅可视化他们的指标。也可以按主机过滤,如下所示。
阿卡演员
调度员指标
在 Akka 中,Dispatcher 是让 Actors ‘tick’ 的原因。每个 Actor 都与一个特定的 Dispatcher 相关联(如果没有设置显式 Dispatcher,则使用默认 Dispatcher)。每个 Dispatcher 都与一个特定的 Executor 相关联——Thread Pool 或 Fork Join Pool。 SPM Dispatcher 报告显示有关 Executors 的信息:
- 分叉加入池
- 线程池执行器
Host 和 Dispatcher 可以过滤所有指标。
阿卡调度员
路由器指标
路由器可用于有效地将消息路由到目标 Actors,称为路由。
- 路由时间 ——将消息路由到选定目的地的时间
- Time In Mailbox – 在路由邮箱中花费的时间。
- 处理时间 ——路由参与者处理路由消息所花费的时间
- Errors Count – 路由处理消息时的错误计数
对于所有这些指标,当然,值越低越好。
阿卡路由器
您可以为您在 SPM 中看到的任何 Akka 或操作系统指标设置警报并启用异常检测,并且您可以使用图表的任意组合创建自定义仪表板,无论是来自您的 Akka 应用程序还是来自 SPM 监控的其他应用程序。
我们希望您喜欢 SPM 的这一新功能。知道我们如何让它对您更有用吗?通过评论、 电子邮件 或 @sematext 让我们知道。