def post(self, element):
        """
            :param element: Element to post to Netuitive
            :type element: object
        """

        try:

            if self.disabled is True:
                element.clear_samples()
                logging.error('Posting has been disabled. '
                              'See previous errors for details.')
                return(False)

            if element.id is None:
                raise Exception('element id is not set')

            element.merge_metrics()
            payload = json.dumps(
                [element], default=lambda o: o.__dict__, sort_keys=True)
            logging.debug(payload)

            headers = {'Content-Type': 'application/json',
                       'User-Agent': self.agent}
            request = urllib2.Request(
                self.dataurl, data=payload, headers=headers)
            resp = urllib2.urlopen(request)
            logging.debug("Response code: %d", resp.getcode())

            resp.close()

            self.post_error_count = 0

            return(True)

        except urllib2.HTTPError as e:
            logging.debug("Response code: %d", e.code)

            if e.code in self.kill_codes:
                self.disabled = True

                logging.exception('Posting has been disabled.'
                                  'See previous errors for details.')
            else:
                self.post_error_count += 1
                if self.post_error_count > self.max_post_errors:
                    element.clear_samples()

                logging.exception(
                    'error posting payload to api ingest endpoint (%s): %s',
                    self.dataurl, e)

        except Exception as e:
            self.post_error_count += 1
            if self.post_error_count > self.max_post_errors:
                element.clear_samples()  # pragma: no cover

            logging.exception(
                'error posting payload to api ingest endpoint (%s): %s',
                self.dataurl, e)