首页 > 解决方案 > 如何通过 HTTP 向 Splunk 提供指标?

问题描述

我一直在阅读 Splunk Enterprise 文档,看来我可以通过 HTTP/HTTPS 提供 JSON 格式的指标:https ://docs.splunk.com/Documentation/Splunk/8.1.1/Metrics/GetMetricsInOther#Get_metrics_in_from_clients_over_HTTP_or_HTTPS

但是,除了一个示例之外,我看不到这种 JSON 格式到底是什么样子的参考。我也不清楚文档是否可以将 Splunk 配置为在我的进程上轮询此端点,或者我是否必须将数据推送到Splunk。

标签: splunk

解决方案


Splunk 的 HEC 接口是只接收的。它不轮询。

每当您发现 Splunk 文档页面不清楚时,请提交反馈。Splunk 的文档团队非常擅长根据反馈更新文档。

让我们看一下文档中的示例有效负载。

{
  "time": 1486683865,
  "source": "metrics",
  "sourcetype": "perflog",
  "host": "host_1.splunk.com",
  "fields": {
    "region": "us-west-1",
    "datacenter": "dc2",
    "rack": "63",
    "os": "Ubuntu16.10",
    "arch": "x64",
    "team": "LON",
    "service": "6",
    "service_version": "0",
    "service_environment": "test",
    "path": "/dev/sda1",
    "fstype": "ext3",
    "metric_name:cpu.usr": 11.12,
    "metric_name:cpu.sys": 12.23,
    "metric_name:cpu.idle": 13.34
  }
}

time字段采用 *nix epoch 形式,并说明收集指标的时间。该source字段将其标识为度量。该值是自由文本。该sourcetype字段告诉 Splunk 如何解析负载。您的系统可能为指标配置了不同的源类型。该host字段标识生成指标的服务器。这是自由文本。该fields部分是指标数据所在的位置。测量值本身由“metric_name:”前缀表示。度量的名称是自由文本。Splunk 会将度量名称中的点视为层次结构分隔符。

一切不以“metric_name:”开头的都是维度而不是度量。维度描述指标并且是可选的。


推荐阅读