用于influxdb的telegraf.conf中的强制字段类型?

时间:2019-03-21 13:36:43

标签: time-series influxdb telegraf

我正在使用Telegraf通过SNMP轮询某些Ubiquiti设备。我的telegraf.conf文件中包含以下内容,以获取设备的平均负载:

  # Load averages
  [[inputs.snmp.field]]
   name = "loadAverage1"
   oid = "UCD-SNMP-MIB::laLoad.1"
  [[inputs.snmp.field]]
   name = "loadAverage5"
   oid = "UCD-SNMP-MIB::laLoad.2"
  [[inputs.snmp.field]]
   name = "loadAverage15"
   oid = "UCD-SNMP-MIB::laLoad.3"

这会提取您可以在此查询中看到的数据:

> SELECT "loadAverage1", "loadAverage5", "loadAverage15" FROM "telegraf_unifi"."autogen"."snmp.UAP" WHERE "agent_host"='192.168.140.100' FILL(null)
name: snmp.UAP
time                loadAverage1 loadAverage5 loadAverage15
----                ------------ ------------ -------------
1553172422000000000 0.14         0.16         0.10
1553172480000000000 0.15         0.16         0.10
1553172540000000000 0.11         0.14         0.10
1553172600000000000 0.23         0.16         0.11
1553172660000000000 0.34         0.21         0.12
1553172720000000000 0.47         0.27         0.15
1553172780000000000 0.26         0.25         0.15
1553172840000000000 0.27         0.26         0.16
1553172900000000000 0.13         0.23         0.16
1553172960000000000 0.08         0.20         0.15
1553173020000000000 0.03         0.16         0.14
1553173080000000000 0.01         0.13         0.13
1553173140000000000 0.06         0.12         0.12
1553173200000000000 0.02         0.09         0.11
1553173260000000000 0.01         0.07         0.10

问题在于这些字段被另存为字符串。

> show field keys on telegraf_unifi
...
name: snmp.UAP
fieldKey      fieldType
--------      ---------
loadAverage1  string
loadAverage15 string
loadAverage5  string
...

因为这些是字符串,所以不能使用类似mean的函数。

与其他字段一样,如何强制将它们另存为浮点值?

1 个答案:

答案 0 :(得分:0)

您遇到的问题是由于您选择的oid

查看UCD-SNMP-MIB MIB,您可以找到laLoad对象类型:

laLoad OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "The 1,5 and 15 minute load averages (one per row)."
    ::= { laEntry 3 }

这是DisplayString

您似乎想要laLoadFloat对象类型。

laLoadFloat OBJECT-TYPE
    SYNTAX  Float
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
    "The 1,5 and 15 minute load averages as an opaquely
     wrapped floating point number."
    ::= { laEntry 6 }

oid文件中的telegraf.conf行更改为:

oid = "UCD-SNMP-MIB::laLoadFloat.1"
相关问题