【问题标题】:Force field type in telegraf.conf for influxdb?用于 influxdb 的 telegraf.conf 中的强制字段类型?
【发布时间】:2019-03-21 13:36:43
【问题描述】:

我正在使用 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 这样的函数。

如何强制将它们保存为浮点值,就像我的其他字段一样?

【问题讨论】:

    标签: time-series influxdb telegraf


    【解决方案1】:

    您遇到的问题是由于您选择的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 }
    

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

    oid = "UCD-SNMP-MIB::laLoadFloat.1"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 2014-04-14
      • 2020-03-18
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      相关资源
      最近更新 更多