Scouter 项目介绍
什么是 Scouter?
Scouter 是一个开源的应用性能监控(APM)工具,类似于 New Relic 和 AppDynamics。它能够帮助用户监测系统中的应用服务,从而有效地管理系统性能。
监控目标
Scouter 提供了多种监控代理,用于收集不同来源的性能数据:
-
来自 Scouter Agent 的监控目标:
- Java Agent:用于监控 Java Web 应用(如 Tomcat、JBoss、Resin)以及独立 Java 应用程序。
- Host Agent:支持 Linux、Windows 和 Unix 系统的监控。
-
通过 Telegraf 支持的监控目标(自版本 2.0.0 起):
- Redis、nginX、Apache HTTPD、Haproxy、Kafka、MySQL、MongoDB、RabbitMQ、ElasticSearch、Kube、Mesos 等。
-
通过 Zipkin-Scouter 存储的监控目标(自版本 2.5.0 起):
- 支持 C#、Go、Python、Javascript 和 PHP 等语言的 Zipkin 插桩数据,并在 XLog(散点图)中显示。
Scouter 能展示的信息
Scouter 可以帮助用户展示丰富的性能指标,包括:
- 用户相关指标: 活跃用户、最近使用用户、当日访客数。
- 服务相关指标: 活跃服务、每秒事务数(TPS)、响应时间、应用剖析(方法剖析、SQL 剖析、外部调用剖析)。
- 资源相关指标: CPU 利用率、内存使用、网络和堆使用、连接池等。
Scouter 的组件与模块
Scouter 由多个模块组成,各个模块协同工作以实现全面的性能监控:
-
Agent(代理): 收集性能信息并发送到服务器。
- Java Agent(JVM Agent):收集 JVM 和 Web 应用服务器的性能数据。
- Host Agent(OS Agent):收集 Linux、Windows 和 OSX 的性能数据。
-
Server(收集器): 负责存储来自 Scouter 代理或 Telegraf 的性能数据,并将数据流式传输到 Scouter 客户端。
-
Client(客户端): 基于 RCP 的客户端程序(不支持 OSX Big Sur)。
-
Web API(自版本 1.8.0 起): 提供通过 HTTP 协议获取计数器、XLogs、剖析和其他性能指标的 Scouter Web API。
-
Weaver(自版本 2.17.0 起): 允许用户在 Java 应用代码级别直接控制 Scouter 的 XLog 和剖析。
Scouter 的插件与第三方工具
Scouter 支持多种服务器和代理插件,以扩展其功能:
- 服务器插件: 包括示例插件、邮件警报插件(Email)、Telegram 警报插件、Slack 警报插件等。
- 第三方用户界面: Scouter Paper 提供了一种 Web UI 展示形式。
- 第三方代理: 例如通过 Scouter Pulse 进行 AWS 监控。
如何贡献与支持
Scouter 项目欢迎用户的贡献,建议用户提交 Pull Request 到 “develop” 分支。用户可以通过 Scouter 的开发者指南获取更多开发和贡献信息。
总结
Scouter 是一个强大而灵活的工具,专门为开放源码软件的性能监控而设计。它可以帮助用户全面了解系统的性能状况,从而支持更优的数据驱动决策。无论是在开发环境中,还是在生产环境中,Scouter 都能提供可靠的数据支撑,让系统保持高效和稳定。