为什么我没有在grafana中获得所有的Cassandra指标?

时间:2018-08-06 17:21:03

标签: cassandra grafana telegraf jolokia grafana-alerts

我们正在使用Apache Cassandra(不是datastax版本)数据库。出于监控目的,我们使用jolokia的REST API检索cassandra指标。

所有jolokia API都可以正常工作,这意味着我可以使用jolokia的其余API来获取所有指标。我们还使用telegraf,telegraf从jolokia收集指标并将其转发到InfluxDB。

但是当我在grafana中添加带有“ telegraf”数据库的influxdb连接时,grafana不会向我显示所有指标(仅显示5-6个指标)。

我能够通过rest客户端调用所有的jolokia API,该客户端返回cassandra指标的JSON响应,但是通过grafana我只能看到很少的指标。

我需要在telegraf的配置中进行哪些更改以获取grafana中的所有指标? 而且我还需要设置警报,例如,如果cassandra中的每秒写入速率超过1k,那么它应该通过邮件通知我。那我该怎么办呢?

提前谢谢吗?

1 个答案:

答案 0 :(得分:1)

我写了this post关于如何设置一个简单的Cassandra仪表板。可能有帮助。

您要记录的所有指标都需要在[[input.cassandra]]部分˙的telegraf.conf中定义,例如:

  [[inputs.cassandra]] 
    context = "/jolokia/read" 
    servers = [":8778"]
    metrics = [ 
        "/java.lang:type=Memory/HeapMemoryUsage",
        "/java.lang:type=Memory/NonHeapMemoryUsage",
        "/org.apache.cassandra.metrics:type=Storage,name=Load",
        "/org.apache.cassandra.metrics:type=Storage,name=TotalHintsInProgress",
        "/org.apache.cassandra.metrics:type=Storage,name=Exceptions",
        "/org.apache.cassandra.metrics:type=ClientRequest,name=Latency,scope=*",
        "/org.apache.cassandra.metrics:type=Client,name=connectedNativeClients",
        "/org.apache.cassandra.metrics:type=CommitLog,name=PendingTasks",
        "/org.apache.cassandra.metrics:type=CommitLog,name=TotalCommitLogSize",
        "/org.apache.cassandra.metrics:type=ClientRequest,name=Timeouts,scope=*",
        "/org.apache.cassandra.metrics:type=Compaction,name=BytesCompacted",
        "/org.apache.cassandra.metrics:type=ColumnFamily,name=WriteLatency",
        "/org.apache.cassandra.metrics:type=ColumnFamily,name=ReadLatency",
        "/org.apache.cassandra.metrics:type=ColumnFamily,name=RangeLatency",
        "/org.apache.cassandra.metrics:type=ColumnFamily,scope=*,name=AllMemtablesLiveDataSize,keyspace=*" 
]

关于第二个问题:

  • 定义一个面板以显示有关数据的信息(我不确定,在这种情况下,您所说的写入率是什么意思)
  • 转到“警报配置”部分中的“警报”标签,并定义警报应触发的条件
  • 转到“警报”标签的“通知”部分,然后添加您的电子邮件地址和消息。