def METHOD_NAME(self, samples: Samples, timestamp: float):
    metrics = []
    for metricinfo in self.metrics:
        if metricinfo.desc.instanced:
            metrics.append({
                'name': metricinfo.desc.name,
                'units': metricinfo.desc.units,
                'instances': list(samples[metricinfo.desc.name].keys()),
                'semantics': metricinfo.desc.semantics
            })
        else:
            metrics.append({
                'name': metricinfo.desc.name,
                'derive': metricinfo.derive,  # type: ignore[dict-item]
                'units': metricinfo.desc.units,
                'semantics': metricinfo.desc.semantics
            })
    meta = {
        'timestamp': timestamp * 1000,
        'interval': self.interval,
        'source': 'internal',
        'metrics': metrics
    }
    self.send_message(**meta)
    self.need_meta = False