点击这里在GitHub上访问我们,以便深入了解DataStax的开源项目——Apache Cassandra指标收集器(Metric Collector for Apache Cassandra, or, MCAC)并试用示例程序。
 

 
作为一个具有复原力的系统,Apache Cassandra可以让用户在其基础上构建应用程序,但是很多使用者会感觉Cassandra有一点像是一个黑匣子。Cassandra并不是没有丰富的监测指标,事实上,每个Cassandra表格都提供了超过300个指标系列(metric series)可供用户使用。
 
但问题是,将集群本身、操作系统和应用层面的指标进行可视化并放入一个统一标准的视图,这对于Cassandra的使用者来说并不容易。 
 

01 什么是Apache Cassandra指标收集器
 
 
为了解决这个问题,DataStax推出了一个新的开源项目,叫做Apache Cassandra指标收集器(Metric Collector for Apache Cassandra,简称为MCAC)。这个项目就Apache Cassandra的监测问题提供了一个开箱即用的解决方案。下面我们将简单介绍这个工具是怎么工作的。 
MCAC是基于已经被广泛运用的collectd守护进程构建的,并在其基础上做了一些具有创意的微调。Collectd是一个指标收集守护进程,它己经被广泛采用,并与包括prometheus、graphite、stackdriver以及其它各种外部指标系统集成良好。
虽然collectd可以开箱即用式地通过JMX(Java管理扩展)搜集指标数据,这个方法很可能耗时良久且只能适用于导出部分指标数据。更别提很多人根本不想在每个节点上都维护和配置指标守护进程。
我们已经将MCAC使用在了DataStax Astra中的Health(健康)标签,并与我们为Apache Cassandra定制的Kubernetes operator相捆绑。
 

 
02 MCAC的与众不同之处
 
为了解决上述的问题,MCAC将我们的Java守护进程和可移植的Linux collectd打包成为一个单独的组件。
开发者需要做的仅仅是将这个守护进程添加到cassandra-env.sh中,它将会启动collectd并通过一个Unix套接字将Cassandra中的每一个指标数据传入collectd。MCAC适用于从2.2到4.0的所有Apache Cassandra版本。
这种高效的传递指标数据的方式可以做到输出每个节点的成千上万个指标,同时几乎不会对C*的性能构成任何影响。
MCAC不止发送指标数据,它还特别考虑了如何以开箱即用的方式与Prometheus协同工作。比如柱状图(histograms)是为了Prometheus中的聚合(aggregation)而特别设计,再比如标签(labels)会在数据传入时被自动转换。这意味着你可以跨数据中心、跨机架(rack)甚至跨表灵活切割指标数据。
 Cassandra的指标数据只是等式的一部分,借助collectd,我们还可以收集并展示操作系统层面的指标数据,像是上下文切换(context switches)和磁盘/网络性能。 
与节点活动情况相关的指标和非指标事件,MCAC也会为其创建历史日志。非指标事件包括关于刷盘(Flushes)、压实操作(Compactions)、异常(Exceptions)、垃圾回收(GC)等细节信息。这份DataLog(数据日志)可以用于分析性能或其它对集群产生影响的事件。 
如果您需要帮助,我们的SRE (Service Reliability Engineering)团队随时待命,帮助您诊断故障并解决问题。
最后,要是没有办法可视化这些指标数据可就太糟了!MCAC提供预置的Grafana仪表盘,用来将所有指标联结在一起。Grafana仪表盘为使用者提供了监测Cassandra数据库最好的解决方案。这些仪表盘会随着时间变化,它们关注系统的特定方面,从而让使用者更容易借此深入了解自己的集群。
 

技术基础 | 监测Apache Cassandra的简明方式——MCAC的更多相关文章

  1. 技术基础 | 在Apache Cassandra中改变VNodes数量的影响

    Apache Cassandra中num_tokens的默认值在4.0版本中将会有变化!这看起来好像只是在CHANGES.txt文件中做了个小小的改动,但实际上这个改动将会对集群的日常运维有着深远的影 ...

  2. 技术基础 | 改进版的Apache Cassandra客户端请求路由

    最近我们在客户端的驱动程序中引入了一些变更,这些变更会影响传入的请求在Apache Cassandra集群内的分发方式.   新的默认负载均衡算法即将随驱动程序推出,这些算法将有助于缩短长尾延迟,并提 ...

  3. 技术基础 | Apache Cassandra 4.0基准测试

    Apache Cassandra 4.0已经发布了Beta版,这是第一个支持JDK 11及更高JDK版本的Cassandra版本.   时延对于Apache Cassandra用户来说是个显而易见的关 ...

  4. Java并发基础01. 传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  5. Apache Cassandra——可扩展微服务应用程序的持久数据存储

    通过使用微服务,团队可以更快地响应变化,而无需改动整个应用程序.利用微服务,开发团队可以构建出具有鲁棒性和可扩展性的系统,从而适应当今应用程序的需求.   然而,使用微服务也带来了一系列挑战.在本文中 ...

  6. AOP技术基础

    1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...

  7. AOP技术基础(转)

    1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...

  8. 技术基础 | 用JSON在抖音上发布动态——使用Stargate即可轻松实现

    Cassandra是世界上经受住最多实战考验的数据库,通过其快速且易于使用的数据API,让你的程序开发升级. 本文将介绍什么是Stargate以及Stargate的最新进展,如果您想快速浏览相关代码和 ...

  9. 行业动态 | 通过使用Apache Cassandra实现实时供应链管理

    借助基于Apache Cassandra的DataStax Enterprise,C&S Wholesale确实得到了他们所需要的东西--一个持续在线的仓库运作整体视图.   视图中包含了原本 ...

随机推荐

  1. 使用PyQt(Python+Qt)+动态编译36行代码实现的计算器

    PyQt是基于跨平台的图形界面C++开发工具Qt加Python包装的一个GPL软件(GPL是GNU General Public License的缩写,是GNU通用公共授权非正式的中文翻译),Qt基于 ...

  2. Object.prototype.toString.call()为什么可以用来检测数据类型?

    obj.toString()方法是用来干什么的 每一个对象都有一个toString()方法,默认情况下toString()被每一个Object对象继承,如果此方法未被重写,toString()返回&q ...

  3. 初识Flask——基于python的web框架

    参考教程链接: https://dormousehole.readthedocs.io/en/latest/ (主要)https://www.w3cschool.cn/flask/ 目录: 1.写了一 ...

  4. 学习JUC源码(1)——AQS同步队列(源码分析结合图文理解)

    前言 最近结合书籍<Java并发编程艺术>一直在看AQS的源码,发现AQS核心就是:利用内置的FIFO双向队列结构来实现线程排队获取int变量的同步状态,以此奠定了很多并发包中大部分实现基 ...

  5. Jmeter(三十三) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy6(详解教程)

    1.简介 今天分享的就是在上一篇文章的基础上来进行讲解和分享:Badboy使用数据源Excel进行脚本参数化.然后在使用读取的参数进行对比断言. 2.具体场景 Badboy录制一个搜索的脚本,并对搜索 ...

  6. 题解-[SDOI2014]数数

    [SDOI2014]数数 这题的前置知识是AC自动机和dp,前置题目是 [JSOI2007]文本生成器,前置题目我写的题解 题解-[JSOI2007]文本生成器.我的讲解假设你做过上面那道题. 这题比 ...

  7. 基于Fisco-Bcos的区块链智能合约-简单案例实践

    一.智能合约介绍 智能合约是指把合同/协议条款以代码的形式电子化地放到区块链网络上.FISCO BCOS平台支持两种智能合约类型:Solidity智能合约与预编译智能合约 Solidity与Java类 ...

  8. js实现元素范围内拖动

    元素拖拽,网上一堆的实现,其中很多是原生js写的,都不够简洁,甚至运行后看不到效果. 于是乎,安静地想了下,拖动元素貌似就是一个滑动事件的监听处理,具体操作如下: 1.一个外层DIV,或者直接用根节点 ...

  9. MySQL锁:02.InnoDB锁

    目录 InnoDB锁 InnoDB行锁实现机制 InnoDB隐式.显式锁 InnoDB锁类型 共享锁 排他锁 意向锁 InnoDB锁兼容性 InnoDB行锁范围.粒度 InnoDB行锁粒度一览 意向插 ...

  10. 浅谈 FHQ-Treap

    关于FHQ-Treap             --作者:BiuBiu_Miku 可能需要的前置知识:    一.树形结构的了解:        树形,顾名思义,就是像树一样有很多分叉口,而这里以二叉 ...