def submit_metric(self, name, snmp_value, tags=[]):
        if reply_invalid(snmp_value):
            # Metrics not present in the queried object
            self.log.warning("No such Mib available: %s" % name)
            return

        metric_name = self.normalize(name, prefix="snmp")

        # Ugly hack but couldn't find a cleaner way
        # Proper way would be to use the ASN1 method isSameTypeWith but it
        # wrongfully returns True in the case of CounterBasedGauge64
        # and Counter64 for example
        snmp_class = snmp_value.__class__.__name__
        if snmp_class in SNMP_COUNTERS:
            value = int(snmp_value)
            self.rate(metric_name, value, tags)
            return
        if snmp_class in SNMP_GAUGES:
            value = int(snmp_value)
            self.gauge(metric_name, value, tags)
            return

        self.log.warning("Unsupported metric type %s", snmp_class)
Convert the values reported as pysnmp-Managed Objects to values and
dataset/ETHPy150Open serverdensity/sd-agent/checks.d/snmp.py/SnmpCheck.submit_metric