public ItemTracer(string assemblyName, string methodName) { if (!TraceClient.FailedToConnect) { memUseage = GC.GetTotalMemory(false); var ticket = this.GetTicket(); sequenceId = TraceClient.GetNextId(); key = GetUniqueKey(); userKey = GetUserKey(); this.methodName = methodName; TraceClient.PostAsync(FixBeginTraceItem(new TraceItem { AssemblyName = assemblyName, TraceOrderBy = TraceClient.GetNextUid(), TraceKey = sequenceId, UserKey = userKey, GroupKey = key, EventType = "Begin", EventDate = DateTime.Now, CurrentTick = DateTime.Now.Ticks, HostName = Environment.MachineName, EventDescription = this.methodName, Ticket = ticket })); } }
protected override void ProcessRecord() { base.ProcessRecord(); try { client?.Dispose(); int timeout = GetPreferredTimeout(); WriteDebug($"Cmdlet Timeout : {timeout} milliseconds."); client = new TraceClient(AuthProvider, new Oci.Common.ClientConfiguration { RetryConfiguration = retryConfig, TimeoutMillis = timeout, ClientUserAgent = PSUserAgent }); string region = GetPreferredRegion(); if (region != null) { WriteDebug("Choosing Region:" + region); client.SetRegion(region); } if (Endpoint != null) { WriteDebug("Choosing Endpoint:" + Endpoint); client.SetEndpoint(Endpoint); } } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }
static async Task Main(string[] args) { using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5)); var stuffTask = DoStuff(cts.Token); var client = new TraceClient(); var traceTask = client.CollectAsync("trace.nettrace", cts.Token); await Task.WhenAll(stuffTask, traceTask); }
public void Dispose() { if (!TraceClient.FailedToConnect) { memUseage = GC.GetTotalMemory(false) - memUseage; TraceClient.PostAsync(FixEndTraceItem(new TraceItem { TraceOrderBy = TraceClient.GetNextUid(), TraceKey = sequenceId, UserKey = userKey, GroupKey = key, EventType = "End", EventDate = DateTime.Now, CurrentTick = DateTime.Now.Ticks, EventDescription = this.methodName, Parameters = methodParameters, MemoryUsage = memUseage })); } }
private static async Task <int> StartTrace(string process, string output, int bufferSize, CancellationToken ct) { int pid; string processName; try { (pid, processName) = GetProcessInfo(process); } catch (ArgumentException e) { await Console.Error.WriteLineAsync(e.Message); return(1); } var client = new TraceClient(pid, bufferSize); Console.WriteLine($"Starting trace of process {pid} ({processName}) - press Ctrl+C to stop..."); await client.CollectAsync(output, ct); Console.WriteLine($"Trace written to '{output}'."); return(0); }