コード例 #1
0
 /// <summary>
 /// Protected Constructor
 /// </summary>
 /// <param name="categoryName"></param>
 /// <param name="instanceName"></param>
 protected CounterHandlerBase(string categoryName, string instanceName)
 {
     CategoryName = categoryName;
     InstanceName = instanceName;
     Name         = CounterType;
     UniqueName   = PerfItRuntime.GetUniqueName(instanceName, Name);
 }
コード例 #2
0
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            base.OnActionExecuted(actionExecutedContext);

            bool raiseErrors = true;

            if (actionExecutedContext.Request.Properties.ContainsKey(Constants.PerfItPublishErrorsKey))
            {
                raiseErrors =
                    Convert.ToBoolean(actionExecutedContext.Request.Properties[Constants.PerfItPublishErrorsKey]);
            }

            try
            {
                var instanceName = InstanceName;
                if (string.IsNullOrEmpty(instanceName))
                {
                    HttpActionContext    actionContext    = actionExecutedContext.ActionContext;
                    HttpActionDescriptor actionDescriptor = actionContext.ActionDescriptor;
                    instanceName = PerfItRuntime.GetCounterInstanceName(actionDescriptor.ControllerDescriptor.ControllerType,
                                                                        actionDescriptor.ActionName);
                }

                if (actionExecutedContext.Request.Properties.ContainsKey(Constants.PerfItKey))
                {
                    var context = (PerfItContext)actionExecutedContext.Request.Properties[Constants.PerfItKey];

                    foreach (var counter in Counters)
                    {
                        context.CountersToRun.Add(PerfItRuntime.GetUniqueName(instanceName, counter));
                    }

                    context.Filter = this;
                }
            }
            catch (Exception exception)
            {
                Trace.TraceError(exception.ToString());
                if (raiseErrors)
                {
                    throw exception;
                }
            }
        }