无法在Cassandra中收集指标

时间:2016-07-15 12:37:15

标签: cassandra datastax cassandra-3.0

我正在尝试使用metrics-graphite报告Cassandra 3.0指标到Graphite服务器,如http://www.datastax.com/dev/blog/pluggable-metrics-reporting-in-cassandra-2-0-2所示。当群集上没有负载时,一切正常,所有指标都会正确报告。但是如果发生了一些加载,我会在system.log中收到以下异常:

<?php
        $columns = [
            ['class' => 'yii\grid\SerialColumn',],                
            'officename',
            [
                'class' => ActionColumn::className(),
                'header' => 'Units',
                'template' => '{add-units}',
                'buttons' => [
                    'assign-roles' => function ($url, $model, $key) {

                        return Html::a("Add Units", $url);
                    }
                ]
            ],

        ];

        echo DynaGrid::widget([
            'columns' => $columns,
            'showPersonalize' => true,
            'options' => ['id' => 'dynagrid-users'],
            'gridOptions' => [
                'dataProvider' => $dataProvider,
                'pager' => [
                    'firstPageLabel' => 'First',
                    'lastPageLabel' => 'Last',
                    'maxButtonCount' => 10,
                ],

                'pjax' => true,
                'bordered' => true,

            ]
        ]) 

        ?>

每次记者尝试在每个Cassandra节点上获取指标并且某些指标变得不可用时,将重复此消息。为了再次接收指标,我必须重新启动所有Cassandra节点,这是非常不切实际的。我尝试了从3.1.0到3.1.2的不同指标 - 石墨版本,但问题相同。

1 个答案:

答案 0 :(得分:1)

如果您可以在不向Graphite报告表和键空间指标的情况下继续使用,则可以使用以下方法来解决此错误。

我们使用的是DataStax Enterprise 5.0.1,其中包含Cassandra 3.0.7.1159。我在全新安装(不是升级)中遇到此错误,使用metrics-graphite-2.2.0.jar和metrics-graphite-3.1.2.jar,所以我不认为错误取决于版本Coda Hale / Yammer GraphiteReporter插件。

研究相关的CASSANDRA Jira票证,似乎这个错误是由Cassandra 3.0指标值变得比GraphiteReporter可以处理的更大。

在我的metrics-reporter-config.yaml中,我使用的是白名单通配符值,因此所有指标都报告给Graphite,如下所示:

var element = document.getElementById("submit");
element.parentNode.removeChild(element);

我们发现的解决方法是,如果我们切换到使用如下所示的特定黑名单(由消除过程确定),以便我们阻止报告Cassandra表和键空间指标,则错误将消失:

graphite:
  -
    period: 60
    timeunit: 'SECONDS'
    prefix: 'dev.servers'
    hosts:
     - host: 'cassandra-1'
       port: 2003
    predicate:
      color: "white"
      useQualifiedName: false
      patterns:
        - ".*"

进行此更改后,我不得不重新启动Cassandra。重新启动后,Cassandra system.log文件中不再显示错误消息,并且不再报告导致错误消息的指定度量标准组。