SNMP OID in parse or inventory/discovery functions

Hello,

A bit similar than this topic :
[Check_mk (german)] SNMP query - “reloading” OID - Archive / checkmk-en - Checkmk Community

I have a specific case with the .1.3.6.1.4.1.12356.101.23.2.1.1.2 - fgDhcpLeaseUsage for Fortigate Firewall devices. A SNMP walk on the OID will return something like this :

iso.3.6.1.4.1.12356.101.23.2.1.1.2.1.1 = INTEGER: 0
iso.3.6.1.4.1.12356.101.23.2.1.1.2.1.2 = INTEGER: 3
iso.3.6.1.4.1.12356.101.23.2.1.1.2.1.9 = INTEGER: 0
iso.3.6.1.4.1.12356.101.23.2.1.1.2.5.1 = INTEGER: 34
iso.3.6.1.4.1.12356.101.23.2.1.1.2.5.2 = INTEGER: 0
iso.3.6.1.4.1.12356.101.23.2.1.1.2.5.3 = INTEGER: 0
iso.3.6.1.4.1.12356.101.23.2.1.1.2.15.1 = INTEGER: 1

As you can see the last 2 digits of the OID are not “following”, because the second to last match the ID from another OID .1.3.6.1.4.1.12356.101.3.2.1.1 - fgVdTable - VDOMs
(Last digit is DHCP server number inside the VDOM but it’s not relevant here, thanks for this really bad implementation of DHCP Lease Usage in SNMP Fortinet (0 way to match on which interface the DHCP server is configured with SNMP))

Question is, is there a way to get which OID get which value inside string_table ? Or do you see any way to get what I’m trying to get without having Fortinet to repair this ?

Greetings

You can use OIDEnd() imported from .agent_based_api.v1 for that.

Thanks for the info, documentation for it is lacking in Writing your own check plug-ins chapter 8.6

Is there any documentation for it anywhere ?

I looked it up on Github and I think I might be able figure it out