Question

Transform metrics collected by SNMP Plugin (Collection)

  • 7 October 2023
  • 1 reply
  • 71 views

Badge +1

Good afternoon,

I would like to know if there is any way to convert the data collected by SNMP from bit to Gb.

I'm trying to monitor a disk and it gives me the used and total space in bits.

With this operation I could do:
"%(hrStorageEntry.hrStorageUsed) * 100 / %(hrStorageEntry.hrStorageSize)"
but I don't know where to do it so that it is executed and saved in a variable, so that it can be printed later. I have tried the following tutorial:
 

But it doesn't work for me, since the "function" is for count the result. Is there any function that can do what I am saying (multiply or divide the collected metrics inside de JSON structure)? I guess it will have to be executed within the selection_loop, because I need to calculate it for each line returns.

Could you give me the list of functions that can be used? I can't find any information either on GitHub, or on TheWatch, or in the documentation about what functions I can use with snmp mode collection or about the json structure.

My Json configuration is:
 

{

    "snmp": {

        "tables": [

            {

                "name": "hrStorageEntry",

                "oid": "1.3.6.1.2.1.25.2.3.1",

                "used_instance": "\\.(\\d+)$",

                "entries": [

                    {"name": "hrStorageDescr", "oid": "1.3.6.1.2.1.25.2.3.1.3"},

                    {"name": "hrStorageSize", "oid": "1.3.6.1.2.1.25.2.3.1.5"},

                    {"name": "hrStorageUsed", "oid": "1.3.6.1.2.1.25.2.3.1.6"}

                ]

            }

        ]

 

    },

    "selection_loop": [

        {

            "name": "Discos",

            "source": "%(snmp.tables.hrStorageEntry)",

            "expand_table": {

                "hrStorageEntry": "%(snmp.tables.hrStorageEntry.[%(hrStorageEntry.instance)])"

            },

            "warning": "%(hrStorageEntry.hrStorageUsed) ge (0.1 * %(hrStorageEntry.hrStorageSize)",

            "critical": "%(hrStorageEntry.hrStorageUsed) ge (0.05 * %(hrStorageEntry.hrStorageSize)",

            "formatting": {

                "printf_msg": "Disk '%s' Used: '%s' Total:’%s’",

                "printf_var": [

                    "%(hrStorageEntry.hrStorageDescr)",

                    "%(hrStorageEntry.hrStorageUsed)",

                    "%(hrStorageEntry.hrStorageSize)"

                ],

                "display_ok": true

            }

        }

 

    ],

    "formatting":{

        "custom_message_global": "All Disks are OK",

        "separator": "-"

    }

}


1 reply

Badge +1

Sorry I meant from bit to %

Reply