func getUserAgent()

in collector/internal/env/env.go [42:91]


func getUserAgent() (string, error) {
	hostInfo, err := host.Info()
	if err != nil {
		return "", err
	}

	cores := runtime.NumCPU()

	memory, err := mem.VirtualMemory()
	if err != nil {
		return "", err
	}

	partitions, err := disk.Partitions(false)
	if err != nil {
		return "", err
	}

	var totalDiskCapacity uint64
	for _, partition := range partitions {
		disk, err := disk.Usage(partition.Mountpoint)
		if err != nil {
			return "", err
		}
		totalDiskCapacity += disk.Total
	}

	platform := hostInfo.Platform
	if platform == "" {
		platform = "Unknown"
	}

	platformVersion := hostInfo.PlatformVersion
	if platformVersion != "" {
		platformVersion = fmt.Sprintf("v%v ", platformVersion)
	}

	userAgent := fmt.Sprintf(
		"Google Cloud Run GMP Sidecar/%v (TargetPlatform=%v; Framework=OpenTelemetry Collector) %s %s(Cores=%v; Memory=%0.1fGB; Disk=%0.1fGB)",
		version.Version,
		cases.Title(language.English).String(runtime.GOOS),
		platform,
		platformVersion,
		cores,
		float64(memory.Total)/math.Pow(1024, 3),
		float64(totalDiskCapacity)/math.Pow(1024, 3),
	)

	return userAgent, nil
}