点击这里在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)学习随笔:QScrollBar以及QAbstractSlider滚动条部件功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在Designer输入部件中Horizo ...

  2. 问题:PyCharm调试方法Force run to cursor与run to cursor的区别

    Force run to cursor与run to cursor的差别是,后者在执行到光标的代码行前,如果有代码中设置了断点,会在该断点处暂停,等待进一步调试指令,而Force run to cur ...

  3. PyQt学习随笔:ListView控件的视图和数据模型分离案例

    Qt 中view类控件的目的是实现数据和模型分离,控件展示数据,数据保存在数据存储中,数据存储中的数据改变了,则控件中展示的数据跟随改变.当设计时只指定了一个控件和一个数据存储关联时,这种分离虽然也能 ...

  4. 学习tcp和udp

    tcp和udp的差别 tcp和udp是不一样的 tcp是一个可靠的连接,如果发出一个tcp请求,那么就一定要回复一个请求 而udp是不需要回复的,就像QQ一样,只要发过来就可以了,不管别人在不在线,发 ...

  5. WordCounter项目(基于javase)

    1.  Github项目地址: https://github.com/Flyingwater101/WordCount 1.  PSP表格 PSP2.1 Personal Software Proce ...

  6. ip 子网掩码、网络地址、广播地址计算

    例:已知ip  16.158.165.91/22子网掩码 根据22 得知子网掩码占22位 即:11111111.11111111.11111100.00000000   == 255.255.252. ...

  7. 题解-[NOI2005]瑰丽华尔兹

    题解-[NOI2005]瑰丽华尔兹 [NOI2005]瑰丽华尔兹 \(n\times m\) 的矩阵.以 \((x,y)\) 为起点.一共 \(k\) 段时间,每段时间为 \([s_i,t_i](t_ ...

  8. 【Jmeter中,保存测试结果xml时报 error loading results file -see log file 问题的处理办法】

    使用JMeter测试并发保存测试文件时报错:Error loading results file - see file log解决办法:新建一个文本文件(什么类型都可以),在文件中加上<?xml ...

  9. mysql批量刷新用户密码

    不知道用户密码,并且不改变用户密码的情况下,批量刷新MySQL数据库用户的密码 select concat('alter user \'',user,'\'@\'',host,'\' identifi ...

  10. Collections.synchronizedList 并发

    1.背景 集合类中的map,大家一定熟悉,知道它非线程安全.使用的方法有两种,一种是在map上加同步器(锁),另一种是创建容器时使用Collections中的静态方法对map进行包装. java ap ...