def execute_request(self, request):
        # noinspection PyBroadException
        try:
            # Use pickle to read the binary data.
            data_object = pickle.loads(request)
        except:   # pickle.loads is document as raising any type of exception, so have to catch them all.
            self.__logger.warn('Could not parse incoming metric line from graphite pickle server, ignoring',
                               error_code='graphite_monitor/badUnpickle')
            return

        try:
            # The format should be [[ metric [ timestamp, value]] ... ]
            for (metric, datapoint) in data_object:
                value = float(datapoint[1])
                orig_timestamp = float(datapoint[0])
                self.__logger.emit_value(metric, value, extra_fields={'orig_time': orig_timestamp})
        except __HOLE__:
            self.__logger.warn('Could not parse incoming metric line from graphite pickle server, ignoring',
                               error_code='graphite_monitor/badPickleLine')
dataset/ETHPy150Open scalyr/scalyr-agent-2/scalyr_agent/builtin_monitors/graphite_monitor.py/GraphitePickleServer.execute_request