in packages/csharp/PortingAssistant/PortingAssistant.Telemetry/Program.cs [14:57]
public static void Main(string[] args)
{
if (args.Length < 4)
{
throw new ArgumentException
(
"Must provide a telemetry config file, " +
"aws profile, user data path and app version."
);
}
var config = args[0];
var profile = args[1];
var userData = args[2];
PortingAssistantAppVersion.version = args[3];
Connection _connection = new ConnectionBuilder().WithLogging().Build();
var portingAssistantPortingConfiguration = System.Text.Json.JsonSerializer.Deserialize<PortingAssistantPortingConfiguration>(File.ReadAllText(config));
string metricsFolder = Path.Combine(userData, "logs");
TelemetryConfiguration teleConfig = new TelemetryConfiguration
{
InvokeUrl = portingAssistantPortingConfiguration.PortingAssistantMetrics["InvokeUrl"].ToString(),
Region = portingAssistantPortingConfiguration.PortingAssistantMetrics["Region"].ToString(),
ServiceName = portingAssistantPortingConfiguration.PortingAssistantMetrics["ServiceName"].ToString(),
Description = portingAssistantPortingConfiguration.PortingAssistantMetrics["Description"].ToString(),
LogsPath = metricsFolder,
LogFilePath = Path.Combine(metricsFolder, $"portingAssistant-telemetry-{DateTime.Today.ToString("yyyyMMdd")}.log"),
MetricsFilePath = Path.Combine(metricsFolder, $"portingAssistant-telemetry-{DateTime.Today.ToString("yyyyMMdd")}.metrics"),
Suffix = new List<string>() { ".log", ".metrics" }
};
var lastReadTokenFile = Path.Combine(teleConfig.LogsPath, "lastToken.json");
string prefix = portingAssistantPortingConfiguration.PortingAssistantMetrics["Prefix"].ToString();
var logTimer = new System.Timers.Timer();
logTimer.Interval = Convert.ToDouble(portingAssistantPortingConfiguration.PortingAssistantMetrics["LogTimerInterval"].ToString());
logTimer.Elapsed += (source, e) => LogUploadUtils.OnTimedEvent(source, e, teleConfig, lastReadTokenFile, profile, prefix);
logTimer.AutoReset = true;
logTimer.Enabled = true;
_connection.Listen();
}