前言
Graphite是当今最强大的监控工具之一。它的受欢迎程度不仅取决于其开源性,还取决于其易用性、图表原型快速开发功能,以及友好的渲染API,渲染API允许任何人在其应用程序和网站中嵌入Graphite图表。Graphite用户社区非常庞大并会定期将增强功能反馈到核心项目中,例如,新的统计和转换函数,用于呈现客户端图表的JSON输出格式,甚至是可替换的存储后端,这样,开发人员就可以利用不断发展的分布式数据库系统生态带来的各种优势。
目标读者
本书适合想要了解更多有关监控系统、服务或应用程序方面内容的读者。
为什么要写此书
尽管Graphite很受欢迎,但有关维护和扩展其软件组件的高级知识往往集中在少数有经验的用户和开发人员手中。作为Graphite项目的核心开发者和维护者,当企业和个人经常来找我咨询扩展系统的建议和示范时,我深切感受到人们因未掌握这些知识而带来的影响。遗憾的是,我水平扩展系统的经验远不及我对这个项目的熟悉程度。因此,对我来说,只能在本书中交流我的经验。我将尽最大的努力让即将讲述的内容始终具有指导性且不失娱乐性,同时,与最常见的用例保持相关性和适用性。
当今监控情况简介
无论是运气还是本能,我都正确地预测了监控生态系统将朝着明确定义的服务与兼容的接口这种组合模型的方向发展。
特别是,NoSQL数据库的出现导致了各种时序数据库之间的巨大动荡和竞争。用户和企业已经接受了Etsy“衡量一切,衡量一切”的口号,这推动了对更大、更快的数据存储的需求。一个非常成功的系列会议围绕对监控工具链进行更多协作和讨论的愿望展开。人们对自己的流程和工具持有更加开放和透明的态度,这些共享经验使每个人受益。
换句话说,软件的发展速度很快,Graphite也不例外。幸运的是,Graphite在用户和企业中已经达到了很高的应用水平,以至于很难找到不通过其强大的API或任何数量的第三方桥接程序直接与其集成的工具和服务。在许多方面,Graphite已成为其他软件项目的时序规范。
本书内容
本书包括以下内容:
第1章和第2章介绍了监控和趋势方面的概念和名词。在Graphite用户群中有大量专业术语,通过这些专业术语,用户可以使用大家都能理解的语言进行沟通。
第3章和第4章介绍了Graphite的一些组件及各自的特性和功能。你会学到如何安装及配置Graphite。
第5章和第6章介绍了创建第一个线型图表的典型流程。通过这两章的学习,你会了解到使用链式函数和多坐标轴构建复杂图表的方法,并且可以直接使用渲染API进行操作。
第7章介绍了原生的Graphite仪表盘和部分流行的第三方仪表盘。你还会了解到渲染API及如何基于渲染API使用JavaScript进行客户端渲染,就像使用D3.js库一样。
第8章和第9章主要面向系统管理人员,使他们能掌握系统扩展及故障排除的技术,从而提供高性能或高可用的Graphite集群。
附录A 详细说明了由Carbon及Graphite Web提供的内部统计指标。这些指标对于了解 Graphite集群的健康状态是非常重要的。