<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_to_graphite(self, metric, value, timestamp=None):
 """ Inner store a new metric and flush to Graphite if the flush threshold is reached. If no timestamp is provided, get the current time for the metric timestam. :param metric: metric name in dotted format :type metric: str :param value: :type value: float :param timestamp: metric timestamp :type timestamp: int """

        # Manage Graphite part
        if not self.statsd_enabled or not self.carbon:
            return

        if timestamp is None:
            timestamp = int(time.time())

        self.my_metrics.append(('.'.join([self.statsd_prefix, self.name, metric]),
                                (timestamp, value)))
        if self.metrics_count >= self.metrics_flush_count:
            self.carbon.add_data_list(self.my_metrics)
            self.flush()