The same question I always ask in response to requests like this is: How would you manually obtain this information?
If it's SNMP, what OIDs? If it's by issuing a command and looking at the output, what's the command? If it's an API call, what's the endpoint? By answering these questions, you solve the most difficult part of building custom monitoring in LM. If it's SNMP and you know the OIDs, you simply build an SNMP DataSource. If it's by issuing a command, you build a Groovy DataSource using Expect to issue the command and parse the output. If it's by an API call, then you build a Groovy script to do the API call and return the output to LM.
That said, I assume you already checked the Exchange for existing DataSources. A quick search, yielded nothing for me, but perhaps I'm not searching by the right name.
You might be able to fork something like this so that instead of generating HTML it generates the data via JSON, which you could pull via Expect or spin up a little web server to host via HTTP.