You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: version_collector.go
    path of file: ./repos/storj/satellite/metainfo
    
    the code of the file until where you have to start completion: // Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.

package metainfo

import (
	"fmt"
	"sort"
	"strings"

	"github.com/blang/semver"
	"github.com/spacemonkeygo/monkit/v3"
	"go.uber.org/zap"

	"storj.io/common/useragent"
)

const uplinkProduct = "uplink"

type transfer string

const upload = transfer("upload")
const download = transfer("download")

var knownUserAgents = []string{
	"rclone", 
    
func (vc *versionCollector) collectTransferStats(useragentRaw []byte, transfer transfer, transferSize int) {
	entries, err := useragent.ParseEntries(useragentRaw)
	if err != nil {
		vc.log.Warn("unable to collect transfer statistics", zap.Error(err))
		mon.Meter("user_agents_transfer_stats", monkit.NewSeriesTag("user_agent", "unparseable"), monkit.NewSeriesTag("type", string(transfer))).Mark(transferSize)
		return
	}

	// foundProducts tracks potentially multiple noteworthy products names from the user-agent
	var foundProducts []string
	for _, entry := range entries {
		product := strings.ToLower(entry.Product)
		if contains(knownUserAgents, product) && !contains(foundProducts, product) {
			foundProducts = append(foundProducts, product)
		}
	}

	if len(foundProducts) > 0 {
		sort.Strings(foundProducts)
		// concatenate all known products for this metric, EG "gateway-mt + rclone"
		mon.Meter("user_agents_transfer_stats", monkit.NewSeriesTag("user_agent", strings.Join(foundProducts, " + ")), monkit.NewSeriesTag("type", string(transfer))).Mark(transferSize)
	} else { // lets keep also general value for user agents with no known product
		mon.Meter("user_agents_transfer_stats", monkit.NewSeriesTag("user_agent", "other"), monkit.NewSeriesTag("type", string(transfer))).Mark(transferSize)
	}
}