文档章节

Cloud Insight 现在已经支持监控 Cassandra 啦!

OneAPM蓝海讯通
 OneAPM蓝海讯通
发布于 2015/12/18 17:00
字数 2170
阅读 15
收藏 0

Cassandra 是什么?

Apache Cassandra 以其可扩展性和容错分布式数据库系统而被人所熟知。Cassandra 起源于Facebook 最初创建于 Amazon Dynamo 和谷歌 BigTable 的一个项目,并从此成长为一个在苹果和 Netflix 等公司大量使用的开源系统。以下是一些 Cassandra 的关键属性:

  • 高扩展性和高可用性(Cassandra 集群是分散的,因此没有单点故障)
  • 可以近似线性的(集群扩大一倍,吞吐量扩大2倍)
  • 非常高的写入吞吐量和良好的读取吞吐量
  • 可调节的一致性和对复制的支持
  • 自然容纳(例如,时间序列数据)

拥有以上属性的 Cassandra 在中国之前的路走的不是很顺畅,几年前它还算是新兴产品,在稳定性和最佳实践上都没有有利的说服力,加之 Facebook 和 Twitter 等因考虑自己架构而放弃使用 Cassandra,改用 HBase 等其他数据库,还有在中国关于 Cassandra 的文章本来就少,不了解它的人也更不会去尝试,种种原因使得之前国内使用 Cassandra 没有呈现火的趋势。

但近几年随着其版本提升,应用实践增多,先后有 Instagram 迁移到 Cassandra,Facebook 部分项目放在 Cassandra 上,Cassandra 2015峰会上与会者人数超过6000人等事件,奥地利咨询公司 Solid IT 汇编的数据显示,2015 年 Cassandra 是除 MongoDB 外最受欢迎的的 NoSQL 数据库,也是世界上增长速度第三快的数据库系统。

Cloud Insight 支持监控 Cassandra

在 Apache Cassandra 的官网首页都写了现在全球已经有1500多个公司在使用:

Cassandra is in use at Constant Contact,CERN, Comcast, eBay, GitHub, GoDaddy,Hulu, Instagram, Intuit, Netflix, Reddit, The Weather Channel, and over 1500 more companies that have large, active data sets.

此外,专注于 Cassandra 的初创公司 DataStax 在13年获得了4500万美元的 D 轮融资,它的成功也代表着 Cassandra 巨大的市场空间,证明它能够处理大规模的在线应用程序,而且保证了性能的稳定性。

以上种种,促使众多软件开发者开始使用 Cassandra,同样滋生的还有支持 Cassandra 性能监控的软件服务,例如国内的 Cloud Insight ,就支持监控 Cassandra ,显示下图等指标。

Cloud Insight 支持监控 Cassandra

##Cloud Insight 部分指标说明

通过 Cloud Insight ,你可以抓取并可以进行分析的指标有很多,本文只介绍一部分,更多指标见 Cloud Insight Cassandra

  • 吞吐量,尤其是读写请求
  • 延迟,尤其是读写延迟
  • 磁盘使用情况,尤其是每个节点上的磁盘空间
  • 异常报错和超出,尤其是异常报错

通过 Cloud Insight ,你可以监控以上指标,按照喜好分门别类的设置自定义仪表盘,并依照这些指标分别配置预警,查看其产生的事件流,想想也是很美嗒。

吞吐量

  • cassandra.db.write_count
  • cassandra.db.write_operations
  • cassandra.db.read_operations

监视任何给定时间的查询速率,提供用户如何与 Cassandra 交互的图表。而且,由于 Cassandra 擅长处理大批量的写操作,所有你肯定要密切关注读取速率,警惕一些潜在问题或用户查询模式发生的显著变化。

Cassandra 很善于处理大量的写入操作,重点监控 Cassandra 写入指标,可以跟踪集群的总体活动水平,要留意任何异常尖峰或骤降,并对此进行进一步的调查。

延迟

  • cassandra.db.recent_read_latency_micros
  • cassandra.db.recent_write_latency_micros
  • cassandra.db.total_range_latency_micros
  • cassandra.db.total_read_latency_micros
  • cassandra.db.total_write_latency_micros

Cassandra 的读操作通常比写操作慢得多,因为读取涉及更多的 I/O。如果经常更新,那就可能跨越几个 SSTables,增加了读取的等待时间。因此,读取延迟是一个非常重要的指标,尤其是如果 Cassandra 查询是一个面向用户应用的数据服务。慢读取可以指出硬件或数据模型的问题,或者需要调整的参数,如压缩策略。

Cassandra 的写操作通常远远快于读操作,因为写请求在被知道前只需要记录在内存中,并追加到一个持久的提交日志里就算成功。具体的延迟水平将取决于你的使用情况。长期的慢写入就是系统性问题,这时可能需要将磁盘升级为速度更快的固态硬盘或检查一致性设置,(例如,设置一致性 EACH_QUORUM,则需要地理上相距很远的数据中心之间的通信)。写操作指标任何一个突然的变化,都可能有问题,如网络问题或者变化使用模式(例如,数据库插入的大小发生显著增加的情况)。

磁盘

  • cassandra.db.load
  • cassandra.db.total_disk_space_used

监测所使用的每个节点的磁盘可以提醒群集不平衡或资源约束。根据自己的 Cassandra 集群的使用和所选择的压缩策略,可以监视磁盘利用率,以确定什么时候应该增加更多的节点群集,以确保 Cassandra 总是有足够的空间来运行压实。

异常报错和超出

  • cassandra.db.exception_count
  • cassandra.internal.currently_blocked_tasks
  • cassandra.internal.total_blocked_tasks

无论什么原因,当群集出现无法处理传入的请求流时,你需要立刻知道这个情况。一个窗口到出现潜在问题就会增加 Cassandra 抛出异常的数量,如超时异常,这反映了一个请求不完整的(但不是失败)处理 Cassandra 的数量。

另一种检测潜在问题是监测 Cassandra 的任务状态作为它的请求处理。Cassandra 每种类型的任务(例如,ReadStage 任务)都有传入任务队列,并分配了一定数量的线程来执行这些任务。如果所有线程都在使用,任务将在队列等待可用线程。任何时刻任务的队列的数量由 pending tasks 指标显示。一旦挂起的任务队列已满,Cassandra 将把当前阻塞作为 currently blocked,当然这些任务最终可能接受或执行。

如何监控 Cassandra

想要监控 Cassandra ,首先你要安装 Cloud Insight 探针,注册账号,一键复制:

CI_LICENSE_KEY= bash -c "$(curl -L https://download.oneapm.com/oneapm_ci_agent/install_agent.sh)"

安装成功后在 web 上会有一个应用产生,接下来就是配置 Cassandra 监控,Cloud Insight 监控 Cassandra 是通过 JMX 来获取指标,详情见 JMX 远程监控,即首先要开启 JMX 监控,配置好 JMX 之后找到配置文件所在的目录,例如 Linux 系统,配置文件在 /etc/oneapm-ci-agent/conf.d 里,复制一份 cassandra.yaml ,配置文件中需要修改 host 和 port (JMX 监控的端口),使 Cloud Insight Agent 可以与 Cassandra 通信:

instances:
  - host: localhost
    port: 7199
    user: username
    password: password
    name: cassandra_instance
    #trust_store_path: /path/to/trustStore.jks # Optional, should be set if ssl is enabled
    #trust_store_password: password
    #java_bin_path: /path/to/java #Optional, should be set if the agent cannot find your java executable

# List of metrics to be collected by the integration

init_config:
  conf:
    - include:
        domain: org.apache.cassandra.db
        attribute:
          - BloomFilterDiskSpaceUsed
          - BloomFilterFalsePositives
          - BloomFilterFalseRatio
          - Capacity
          - CompressionRatio
          - CompletedTasks
          - ExceptionCount
          - Hits
          - RecentHitRate
          - RowCacheRecentHitRate
          - KeyCacheRecentHitRate
          - LiveDiskSpaceUsed
          - LiveSSTableCount
          - Load
          - MaxRowSize
          - MeanRowSize
          - MemtableColumnsCount
          - MemtableDataSize
          - MemtableSwitchCount
          - MinRowSize
          - ReadCount
          - Requests
          - Size
          - TotalDiskSpaceUsed
          - TotalReadLatencyMicros
          - TotalWriteLatencyMicros
          - UpdateInterval
          - WriteCount
          - PendingTasks
      exclude:
        keyspace: system
        attribute:
          - MinimumCompactionThreshold
          - MaximumCompactionThreshold
          - RowCacheKeysToSave
          - KeyCacheSavePeriodInSeconds
          - RowCacheSavePeriodInSeconds
          - PendingTasks
          - Scores
          - RpcTimeout
    - include:
        domain: org.apache.cassandra.internal
        attribute:
          - ActiveCount
          - CompletedTasks
          - CurrentlyBlockedTasks
          - TotalBlockedTasks
    - include:
        domain: org.apache.cassandra.net
        attribute:
          - TotalTimeouts

重启 Cloud Insight ,使配置生效。也可以通过执行 Info 命令,来验证配置是否成功:

sudo /etc/init.d/oneapm-ci-agent  restart
sudo /etc/init.d/oneapm-ci-agent  info

当出现以下信息,则代表安装成功:

Checks
======

[...]

cassandra
---------
  - instance #0 [OK]
  - Collected 8 metrics & 0 events

安装成功后,过2分钟你就可以看到 Cassandra 的指标数据,你可以通过自定义仪表盘设置你所关心的数据,可以监控每一个 Cassandra 关键指标。通过设置标签,对所有主机进行分组展示,也可以从炫酷的拓补图上看到哦。你还可以设定一个告警策略,一旦指标数据有异常,可以迅速让团队成员知道,例如请求吞吐量在很短的时间内下降到一定值就可以做一个报警策略。

总结

如果你在使用 Cassandra(如果现在没有使用那就赶紧用起来),想要让关键指标可视化,能够自定义设置仪表盘,把你想看的指标放在一起;还可以设置告警,一旦数据有任何异常都可以通知团队成员,那当仁不让的要选 Cloud Insight 了。此外,使用它任何内部事件都会有事件流记录下来,例如报警策略的设置修改,关闭,开启,探针的启动等。功能如此强大,还不快来体验?

© 著作权归作者所有

OneAPM蓝海讯通
粉丝 94
博文 631
码字总数 1266889
作品 0
海淀
私信 提问
几种 Docker 监控工具对比

轻量级虚拟化容器 Docker,自发布以来便广受业界关注,在开源界和企业界掀起了一阵风。Docker 容器相对于 VM 有以下几个优势:启动速度快;资源利用率高;性能开销小。 从图中可以看出 Dock...

OneAPM蓝海讯通
2015/12/01
93
0
Cloud Insight 数据管理平台 Beta 版上线

Cloud Insight Beta 1.0 版本于 2015 年 8 月 20 日,上线。 Cloud Insight 是一个数据管理平台,兼顾 IT 基础设施和平台服务监控。目前支持 Ubuntu、Fedora、RedHat 和 CentOS 操作系统的监...

OneAPM蓝海讯通
2015/08/18
49
0
Docker 监控- Prometheus VS Cloud Insight

如今,越来越多的公司开始使用 Docker 了,2 / 3 的公司在尝试了 Docker 后最终使用了它。为了能够更精确的分配每个容器能使用的资源,我们想要实时获取容器运行时使用资源的情况,怎样对 Do...

OneAPM蓝海讯通
2015/12/02
382
0
Cloud Insight 仪表盘上线 | 全面监控 Redis

OneAPM 作为应用性能领域的新兴领军企业,近期发布了重量级新产品—— Cloud Insight 数据管理平台,用它能够监控所有基础组件,并通过 tag 标签对数据进行管理。 近日,Cloud Insight (Ci) ...

OneAPM蓝海讯通
2015/09/15
110
0
如何监控 Tomcat?Zabbix 与 Cloud Insight 对比

JVM 监控工具有很多,像命令 jstat,jmap,jstack,jinfo 可以根据不同需求查看不同的系统信息,还有图像化界面 jconsole,都是很方便的工具。这些可以参考 JAVA自带监控工具的介绍。 但是现...

OneAPM蓝海讯通
2016/01/25
135
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
213
4
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部