public override async Task <object> ExecuteScalarAsync(CancellationToken cancellationToken)
        {
            object result;
            var    commandId = Guid.NewGuid();

            using (var trace = new LocalTrace(this.CommandText).AnnotateWith(PredefinedTag.SqlQuery, this.CommandText))
            {
                try
                {
                    result = await InnerCommand.ExecuteScalarAsync(cancellationToken);
                }
                catch (Exception exception)
                {
                    trace.AnnotateWith(PredefinedTag.Error, exception.Message);
                    throw;
                }
            }
            return(result);
        }
        protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior)
        {
            DbDataReader reader;
            var          commandId = Guid.NewGuid();

            using (var trace = new LocalTrace(this.CommandText).AnnotateWith(PredefinedTag.SqlQuery, this.CommandText))
            {
                try
                {
                    reader = InnerCommand.ExecuteReader(behavior);
                }
                catch (Exception exception)
                {
                    trace.AnnotateWith(PredefinedTag.Error, exception.Message);
                    throw;
                }
            }

            return(reader);
        }
        protected override async Task <DbDataReader> ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
        {
            DbDataReader reader;
            var          commandId = Guid.NewGuid();

            using (var trace = new LocalTrace(this.CommandText).AnnotateWith(PredefinedTag.SqlQuery, this.CommandText))
            {
                try
                {
                    reader = await InnerCommand.ExecuteReaderAsync(behavior, cancellationToken);
                }
                catch (Exception exception)
                {
                    trace.AnnotateWith(PredefinedTag.Error, exception.Message);
                    throw;
                }
            }

            return(reader);
        }
        public override int ExecuteNonQuery()
        {
            int num;
            var commandId = Guid.NewGuid();

            using (var trace = new LocalTrace(this.CommandText).AnnotateWith(PredefinedTag.SqlQuery, this.CommandText))
            {
                try
                {
                    num = InnerCommand.ExecuteNonQuery();
                }
                catch (Exception exception)
                {
                    trace.AnnotateWith(PredefinedTag.Error, exception.Message);
                    throw;
                }
            }

            return(num);
        }
        public override object ExecuteScalar()
        {
            object result;
            var    commandId = Guid.NewGuid();

            using (var trace = new LocalTrace(this.CommandText).AnnotateWith(PredefinedTag.SqlQuery, this.CommandText))
            {
                try
                {
                    result = InnerCommand.ExecuteScalar();
                }
                catch (Exception exception)
                {
                    trace.AnnotateWith(PredefinedTag.Error, exception.Message);
                    throw;
                }
            }


            return(result);
        }
示例#6
0
        static void Main(string[] args)
        {
            new Zipkin.ZipkinBootstrapper("api-sample", IPAddress.Loopback, 1234)
            .ZipkinAt("localhost")
            .WithSampleRate(1.0)                     // means log everything
            .Start();


            using (var roottrace = new StartClientTrace("client-op"))             // Starts a root trace + span
            {
                var crossProcessBag = new Dictionary <string, object>();
                TraceContextPropagation.PropagateTraceIdOnto(crossProcessBag);

                Thread.Sleep(20);

                roottrace.TimeAnnotateWith("custom");

                using (new StartServerTrace("server-op", crossProcessBag).SetLocalComponentName("fake-server"))
                {
                    using (new LocalTrace("op1").AnnotateWith(PredefinedTag.SqlQuery, "select * from  ..."))
                    {
                        Thread.Sleep(70);
                    }

                    using (var trace = new LocalTrace("op2"))
                    {
                        Thread.Sleep(90);

                        trace.AnnotateWith(PredefinedTag.Error, "error message");                         // mark it with an error
                    }

                    using (new LocalTrace("op3").TimeAnnotateWith(PredefinedTag.ServerSend))
                    {
                        Thread.Sleep(90);
                    }
                }
            }

            Thread.Sleep(1000);
        }