void ReportSystemInfo()
{
lock (Sync)
{
if (_systemInfoIsReported)
return;
_systemInfoIsReported = true;
}
try
{
Log("System_OsVersion", Environment.OSVersion.VersionString);
Log("System_ComputerName", Environment.MachineName);
Log("System_UserName", Environment.UserName);
Log("System_ClrVersion", Environment.Version.ToString());
if (IsUnderMono)
{
Log("System_MonoRuntimeVersion", GetMonoRuntimeVersion());
}
if (!IsUnderMono)
{
var memInfo = SafeNativeMethods.GetMemoryStatus();
Log("System_PhysicalMemory", ToMegabytes(memInfo.ullTotalPhys));
Log("System_VirtualMemory", ToMegabytes(memInfo.ullTotalVirtual));
}
else
{
using (var pc = new PerformanceCounter("Mono Memory", "Total Physical Memory"))
{
Log("System_PhysicalMemory", ToMegabytes((ulong)pc.RawValue));
}
}
Log("System_CurrentCulture", Thread.CurrentThread.CurrentCulture.Name);
Log("System_CurrentUiCulture", Thread.CurrentThread.CurrentUICulture.Name);
Log("System_SystemDefaultEncoding", Encoding.Default.WebName);
Log("System_CalendarType", CultureInfo.CurrentCulture.Calendar.GetType().Name);
Log("System_NumberDecimalSeparator", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
var timeZone = TimeZone.CurrentTimeZone;
Log("System_TimeZone", timeZone.StandardName);
var offset = timeZone.GetUtcOffset(DateTime.Now);
Log("System_TimeZoneOffset", offset.TotalHours);
var processFile = AppDomain.CurrentDomain.BaseDirectory + AppDomain.CurrentDomain.FriendlyName;
Log("Client_ProcessName", processFile);
var processVersion = FileVersionInfo.GetVersionInfo(processFile).FileVersion;
Log("Client_ProcessVersion", processVersion);
var curAssembly = GetType().Assembly;
Log("Client_AppMetricsVersion", curAssembly.FullName);
}
catch (Exception exc)
{
Log(exc);
}
}