0

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

所有 jolokia API 都运行良好,这意味着我可以使用 jolokia 的其余 API 获取所有指标。我们也在使用 telegraf,telegraf 从 jolokia 收集指标并将它们转发到 InfluxDB。

但是,当我在 grafana 中使用 'telegraf' db 添加 influxdb 连接时,grafana 并没有向我显示所有指标(仅显示 5-6 个指标)。

我可以通过返回 cassandra 指标的 JSON 响应的 rest 客户端调用所有 jolokia API,但通过 grafana 我只能看到几个指标。

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

提前致谢?

4

1 回答 1

1

我写了这篇 关于如何设置一个简单的 Cassandra 仪表板的帖子。它可能会有所帮助。

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

  [[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=*" 
]

至于你的第二个问题:

  • 定义一个面板来显示有关数据的信息(我不确定,在这种情况下,写入速率是什么意思)
  • 转到警报配置部分中的警报选项卡并定义警报应该触发的条件
  • 转到警报选项卡通知部分并添加您的电子邮件地址和消息。
于 2018-08-07T07:27:16.300 回答