我正在尝试使用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的不同指标 - 石墨版本,但问题相同。
答案 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文件中不再显示错误消息,并且不再报告导致错误消息的指定度量标准组。