<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def send_event(self, event_type, category=None, dimensions=None, properties=None, timestamp=None):
 """Send an event to SignalFx. Args: event_type (string):
 the event type (name of the event time series). category (string):
 the category of the event. dimensions (dict):
 a map of event dimensions. properties (dict):
 a map of extra properties on that event. timestamp (float):
 timestamp when the event has occured """

        if category and category not in SUPPORTED_EVENT_CATEGORIES:
            raise ValueError('Event category is not one of the supported' +
                             'types: {' +
                             ', '.join(SUPPORTED_EVENT_CATEGORIES) + '}')

        data = {
            'eventType': event_type,
            'category': category,
            'dimensions': dimensions or {},
            'properties': properties or {},
            'timestamp': int(timestamp) if timestamp else None,
        }

        _logger.debug('Sending event to SignalFx: %s', data)
        self._add_extra_dimensions(data)
        return self._send_event(event_data=data, url='{0}/{1}'.format(
            self._endpoint, self._INGEST_ENDPOINT_EVENT_SUFFIX),
            session=self._session)