func (t *QueueManager) Start() {
	// Setup the QueueManagers metrics. We do this here rather than in the
	// constructor because of the ordering of creating Queue Managers's, stopping them,
	// and then starting new ones in storage/remote/storage.go ApplyConfig.
	name := t.client.Name()
	t.highestSentTimestampMetric = &maxGauge{
		Gauge: queueHighestSentTimestamp.WithLabelValues(name),
	}
	t.pendingSamplesMetric = queuePendingSamples.WithLabelValues(name)
	t.enqueueRetriesMetric = enqueueRetriesTotal.WithLabelValues(name)
	t.droppedSamplesTotal = droppedSamplesTotal.WithLabelValues(name)
	t.numShardsMetric = numShards.WithLabelValues(name)
	t.failedSamplesTotal = failedSamplesTotal.WithLabelValues(name)
	t.sentBatchDuration = sentBatchDuration.WithLabelValues(name)
	t.succeededSamplesTotal = succeededSamplesTotal.WithLabelValues(name)
	t.retriedSamplesTotal = retriedSamplesTotal.WithLabelValues(name)
	t.shardCapacity = shardCapacity.WithLabelValues(name)

	// Initialise some metrics.
	t.shardCapacity.Set(float64(t.cfg.Capacity))
	t.pendingSamplesMetric.Set(0)

	t.shards.start(t.numShards)
	t.watcher.Start()

	t.wg.Add(2)
	go t.updateShardsLoop()
	go t.reshardLoop()
}
func (t *QueueManager) Start() {
	
	
	
	name := t.client.Name()
	t.highestSentTimestampMetric = &maxGauge{
		Gauge: queueHighestSentTimestamp.WithLabelValues(name),
	}
	t.pendingSamplesMetric = queuePendingSamples.WithLabelValues(name)
	t.enqueueRetriesMetric = enqueueRetriesTotal.WithLabelValues(name)
	t.droppedSamplesTotal = droppedSamplesTotal.WithLabelValues(name)
	t.numShardsMetric = numShards.WithLabelValues(name)
	t.failedSamplesTotal = failedSamplesTotal.WithLabelValues(name)
	t.sentBatchDuration = sentBatchDuration.WithLabelValues(name)
	t.succeededSamplesTotal = succeededSamplesTotal.WithLabelValues(name)
	t.retriedSamplesTotal = retriedSamplesTotal.WithLabelValues(name)
	t.shardCapacity = shardCapacity.WithLabelValues(name)

	
	t.shardCapacity.Set(float64(t.cfg.Capacity))
	t.pendingSamplesMetric.Set(0)

	t.shards.start(t.numShards)
	t.watcher.Start()

	t.wg.Add(2)
	go t.updateShardsLoop()
	go t.reshardLoop()
}
func ( t * QueueManager ) Start ( ) { // Setup the QueueManagers metrics. We do this here rather than in the // constructor because of the ordering of creating Queue Managers's, stopping them, // and then starting new ones in storage/remote/storage.go ApplyConfig. name := t . client . Name ( ) t . highestSentTimestampMetric = & maxGauge { Gauge : queueHighestSentTimestamp . WithLabelValues ( name ) , } t . pendingSamplesMetric = queuePendingSamples . WithLabelValues ( name ) t . enqueueRetriesMetric = enqueueRetriesTotal . WithLabelValues ( name ) t . droppedSamplesTotal = droppedSamplesTotal . WithLabelValues ( name ) t . numShardsMetric = numShards . WithLabelValues ( name ) t . failedSamplesTotal = failedSamplesTotal . WithLabelValues ( name ) t . sentBatchDuration = sentBatchDuration . WithLabelValues ( name ) t . succeededSamplesTotal = succeededSamplesTotal . WithLabelValues ( name ) t . retriedSamplesTotal = retriedSamplesTotal . WithLabelValues ( name ) t . shardCapacity = shardCapacity . WithLabelValues ( name ) // Initialise some metrics. t . shardCapacity . Set ( float64 ( t . cfg . Capacity ) ) t . pendingSamplesMetric . Set ( 0 ) t . shards . start ( t . numShards ) t . watcher . Start ( ) t . wg . Add ( 2 ) go t . updateShardsLoop ( ) go t . reshardLoop ( ) }
// Start the queue manager sending samples to the remote storage.
// Does not block.
Start the queue manager sending samples to the remote storage . Does not block .