Example #1
0
        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);
     }
 }
Example #3
0
        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);
        }
Example #4
0
        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
                }));
            }
        }
Example #5
0
        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);
        }