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

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 数据库,也是世界上增长速度第三快的数据库系统。

在 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 部分指标说明

通过 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.recentreadlatency_micros
  • cassandra.db.recentwritelatency_micros
  • cassandra.db.totalrangelatency_micros
  • cassandra.db.totalreadlatency_micros
  • cassandra.db.totalwritelatency_micros

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

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

磁盘

  • cassandra.db.load
  • cassandra.db.totaldiskspace_used

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

异常报错和超出

  • cassandra.db.exception_count
  • cassandra.internal.currentlyblockedtasks
  • cassandra.internal.totalblockedtasks

无论什么原因,当群集出现无法处理传入的请求流时,你需要立刻知道这个情况。一个窗口到出现潜在问题就会增加 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 了。此外,使用它任何内部事件都会有事件流记录下来,例如报警策略的设置修改,关闭,开启,探针的启动等。功能如此强大,还不快来体验?

时间: 2024-08-25 08:35:02

Cloud Insight 现在已经支持监控 Cassandra 啦!的相关文章

Cloud Insight 仪表盘上线 | 全面监控 Redis

OneAPM 作为应用性能领域的新兴领军企业,近期发布了重量级新产品—— Cloud Insight 数据管理平台,用它能够监控所有基础组件,并通过 tag 标签对数据进行管理. 近日,Cloud Insight (Ci) 探针仪表盘功能重磅上线,默认安装了探针,配置平台服务就会自动生成相应的仪表盘,而且仪表盘将包含所有数据.此外,本文也将重点介绍 Redis 的几项监控指标以及一些值得注意的部分,希望给使用 Redis 的读者带来一些帮助. 仪表盘 任意时间段数据查询 默认只能显示最近一小时的

Cloud Insight 数据管理平台 Beta 版上线

Cloud Insight Beta 1.0 版本于 2015 年 8 月 20 日,上线. Cloud Insight 是一个数据管理平台,兼顾 IT 基础设施和平台服务监控.目前支持 Ubuntu.Fedora.RedHat 和 CentOS 操作系统的监控:也支持 MongoDB.MySQL 等服务器监控,和 Nginx 服务器的监控. 在 Beta 1.0 版本中,我们支持: Ubuntu Fedora RedHat CentOS MySQL MongoDB Redis Memcache

Fundebug 微信小游戏异常监控插件更新至 0.5.0,支持监控 HTTP 慢请求

摘要: 支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug是专业微信小游戏 BUG 监控服务,可以第一时间捕获线上环境中小游戏的异常.错误或者 BUG,及时给开发者推送报警,帮助您快速修复 BUG. Fundebug的微信小游戏BUG监控插件更新至0.5.0,新增httpTimeout配置选项,支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG,请大家及时更新! 监控 HTTP 慢请求 Fundebug 专注于 BUG

spring cloud深入学习(六)-----熔断监控Hystrix Dashboard和Turbine

Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据.但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够. 我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上, 这个工具就是Turbine. Hystrix Dashboard 该demo基于本人之前的eurek

Spring Cloud(五)断路器监控(Hystrix Dashboard)

在上两篇文章中讲了,服务提供者 Eureka + 服务消费者 Feign,服务提供者 Eureka + 服务消费者(rest + Ribbon),本篇文章结合,上两篇文章中代码进行修改加入 断路器监控(Hystrix Dashboard) 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高可用,单个服务通常会集群部署.由于网络原因或者自身的原因,服务并不能保证1

source insight 添加 python 支持

从http://www.sourceinsight.com/public/languages/下载Python的配置文件Python.CLF 选择Options > Preferences,单击Languages选项: 单击import按钮,装载并导入Python.CLF: 这时可以看到,左栏语言列表多了一项Python Language: 单击Document Types按钮,打开文档选项对话框: 添加Document Type为Python,File filter为“*.py”,Passer

运维 2.0 时代:数据聚合和分组

运维 2.0 时代:数据聚合和分组 from http://www.cnblogs.com/oneapm/p/4962111.html 运维 2.0 是指,从技术运维升级为服务运维,向公司提供可依赖的专业服务.运维 2.0 强调服务交付能力,而不是技术能力,需求可依赖.懂业务.服务化的专业运维. 为了了解运维 2.0 时代的监控方式,我们不妨从以前的监控手段说起.首先来了解一下 Zabbix ,通过 Zabbix 能够监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员

你的团队需要一套工具指南

在某个公众号里看过这样一句话,"一流的公司只有一个共同点--他们都有好的产品." 最近又了解了一些管理工具和开发工具,突然发现,其实一流的公司还有另一个共同点,他们往往都拥有一套适合自己的工具,包括但不限于管理工具.开发工具.运维工具-- "培训团队使用一些工具从而节省时间和人力成本,是最成功的时间投资之一." 或许使用工具总是需要一些学习成本,但从长远来看,是一笔很划算的买卖. 我们中的一部分人在工作和生活中总在尝试使用一些有趣的工具来梳理思想和知识,比如 Eve

Cassandra监控 - OpsCenter手册

Opscenter用户手册 1.       OpsCenter简介 DataStaxOpsCenter是一个可视化管理和监控Apache Cassandra和DataStax Enterprise工具.OpsCenter简化了管理任务: 添加扩展集群 配置nodes 查看性能指标 修复问题 监控集群情况 主要功能 OpsCenter主要功能如下: Dashboard 概述显示任何警报和多个集群的仪表板. 仪表板显示性能指标监测的概况. 可以在仪表板中添加和编辑图表. 配置管理 基本的集群配置.