首页 > 解决方案 > 从 python 将指标发送到 splunk

问题描述

我有一个包含一些指标的字典列表,比如说

[{"a": 1, "b": 2},
 {"a": 3, "b": 4},
 {"a": 1, "b": 2}]

作为最终结果,我需要发送两条指标消息

value: 2, dimensions: {"a": 1, "b": 2}  #just amount of elements with same dim values
value: 1, dimensions: {"a": 3, "b": 4}

有没有办法像原始字典列表一样发送它们,所以 splunk 可以自己计算所有内容?

标签: pythonsplunk

解决方案


您可以使用 HEC 将所有维度作为事件发送,然后在 splunk 中进行后处理。stats 命令可以派上用场,我在下面附上了一个示例。可以在此处找到一个很好的 Python 类,以帮助将事件发送到代码中的 HTTP 事件收集器:https ://github.com/georgestarcher/Splunk-Class-httpevent

示例调用:

curl -k "https://localhost:8088/services/collector" \
    -H "Authorization: Splunk hec-token-here" \
    -d '{"event": "{\"a\": 1, \"b\": 2}"}{"event": "{\"a\": 3, \"b\": 4}"}{"event": "{\"a\": 1, \"b\": 2}"}'

Splunk 统计数据

index=main
|stats c by _raw

请注意结果如何显示您有两个{"a": 1, "b": 2}事件和一个{"a": 3, "b": 4}事件

在此处输入图像描述


推荐阅读