Example #1
0
        static ServicePerformanceCountersBase GetServicePerformanceCounters(int perfCounterInstanceId)
        {
            ServiceModelPerformanceCounters counters = PerformanceCounters.GetServiceModelPerformanceCounters(perfCounterInstanceId);

            if (counters != null)
            {
                return(counters.ServicePerformanceCounters);
            }
            return(null);
        }
Example #2
0
        private static ServicePerformanceCountersBase GetServicePerformanceCounters(int perfCounterInstanceId)
        {
            ServiceModelPerformanceCounters serviceModelPerformanceCounters = GetServiceModelPerformanceCounters(perfCounterInstanceId);

            if (serviceModelPerformanceCounters != null)
            {
                return(serviceModelPerformanceCounters.ServicePerformanceCounters);
            }
            return(null);
        }
Example #3
0
        static OperationPerformanceCountersBase GetOperationPerformanceCounters(int perfCounterInstanceId, string operation)
        {
            ServiceModelPerformanceCounters counters = PerformanceCounters.GetServiceModelPerformanceCounters(perfCounterInstanceId);

            if (counters != null)
            {
                return(counters.GetOperationPerformanceCounters(operation));
            }
            return(null);
        }
Example #4
0
 internal static void AddPerformanceCountersForEndpoint(ServiceHostBase serviceHost, ContractDescription contractDescription, EndpointDispatcher endpointDispatcher)
 {
     if ((PerformanceCountersEnabled || MinimalPerformanceCountersEnabled) && endpointDispatcher.SetPerfCounterId())
     {
         ServiceModelPerformanceCounters counters;
         lock (perfCounterDictionarySyncObject)
         {
             if (!PerformanceCountersForEndpoint.TryGetValue(endpointDispatcher.PerfCounterId, out counters))
             {
                 counters = new ServiceModelPerformanceCounters(serviceHost, contractDescription, endpointDispatcher);
                 if (!counters.Initialized)
                 {
                     return;
                 }
                 PerformanceCountersForEndpoint.Add(endpointDispatcher.PerfCounterId, counters);
                 int num = PerformanceCountersForEndpointList.FindIndex(c => c == null);
                 if (num >= 0)
                 {
                     PerformanceCountersForEndpointList[num] = counters;
                 }
                 else
                 {
                     PerformanceCountersForEndpointList.Add(counters);
                     num = PerformanceCountersForEndpointList.Count - 1;
                 }
                 endpointDispatcher.PerfCounterInstanceId = num;
             }
         }
         lock (perfCounterDictionarySyncObject)
         {
             ServiceModelPerformanceCountersEntry entry;
             if (!PerformanceCountersForBaseUri.TryGetValue(endpointDispatcher.PerfCounterBaseId, out entry))
             {
                 if (PerformanceCountersEnabled)
                 {
                     entry = new ServiceModelPerformanceCountersEntry(serviceHost.Counters);
                 }
                 else if (MinimalPerformanceCountersEnabled)
                 {
                     entry = new ServiceModelPerformanceCountersEntry(serviceHost.DefaultCounters);
                 }
                 PerformanceCountersForBaseUri.Add(endpointDispatcher.PerfCounterBaseId, entry);
             }
             entry.Add(counters);
         }
     }
 }
Example #5
0
        internal static void AddPerformanceCountersForEndpoint(
            ServiceHostBase serviceHost,
            ContractDescription contractDescription,
            EndpointDispatcher endpointDispatcher)
        {
            Fx.Assert(serviceHost != null, "The 'serviceHost' argument must not be null.");
            Fx.Assert(contractDescription != null, "The 'contractDescription' argument must not be null.");
            Fx.Assert(endpointDispatcher != null, "The 'endpointDispatcher' argument must not be null.");

            bool performanceCountersEnabled        = PerformanceCounters.PerformanceCountersEnabled;
            bool minimalPerformanceCountersEnabled = PerformanceCounters.MinimalPerformanceCountersEnabled;

            if (performanceCountersEnabled || minimalPerformanceCountersEnabled)
            {
                if (endpointDispatcher.SetPerfCounterId())
                {
                    ServiceModelPerformanceCounters counters;
                    lock (PerformanceCounters.perfCounterDictionarySyncObject)
                    {
                        if (!PerformanceCounters.PerformanceCountersForEndpoint.TryGetValue(endpointDispatcher.PerfCounterId, out counters))
                        {
                            counters = new ServiceModelPerformanceCounters(serviceHost, contractDescription, endpointDispatcher);
                            if (counters.Initialized)
                            {
                                PerformanceCounters.PerformanceCountersForEndpoint.Add(endpointDispatcher.PerfCounterId, counters);

                                int index = PerformanceCounters.PerformanceCountersForEndpointList.FindIndex(c => c == null);
                                if (index >= 0)
                                {
                                    PerformanceCounters.PerformanceCountersForEndpointList[index] = counters;
                                }
                                else
                                {
                                    PerformanceCounters.PerformanceCountersForEndpointList.Add(counters);
                                    index = PerformanceCounters.PerformanceCountersForEndpointList.Count - 1;
                                }
                                endpointDispatcher.PerfCounterInstanceId = index;
                            }
                            else
                            {
                                return;
                            }
                        }
                    }

                    ServiceModelPerformanceCountersEntry countersEntry;
                    lock (PerformanceCounters.perfCounterDictionarySyncObject)
                    {
                        if (!PerformanceCounters.PerformanceCountersForBaseUri.TryGetValue(endpointDispatcher.PerfCounterBaseId, out countersEntry))
                        {
                            if (performanceCountersEnabled)
                            {
                                countersEntry = new ServiceModelPerformanceCountersEntry(serviceHost.Counters);
                            }
                            else if (minimalPerformanceCountersEnabled)
                            {
                                countersEntry = new ServiceModelPerformanceCountersEntry(serviceHost.DefaultCounters);
                            }
                            PerformanceCounters.PerformanceCountersForBaseUri.Add(endpointDispatcher.PerfCounterBaseId, countersEntry);
                        }
                        countersEntry.Add(counters);
                    }
                }
            }
        }
 public void Add(ServiceModelPerformanceCounters counters)
 {
     this.performanceCounters.Add(counters);
 }
 public void Add(ServiceModelPerformanceCounters counters)
 {
     this.performanceCounters.Add(counters);
 }
        internal static void AddPerformanceCountersForEndpoint(
            ServiceHostBase serviceHost,
            ContractDescription contractDescription,
            EndpointDispatcher endpointDispatcher)
        {
            Fx.Assert(serviceHost != null, "The 'serviceHost' argument must not be null.");
            Fx.Assert(contractDescription != null, "The 'contractDescription' argument must not be null.");
            Fx.Assert(endpointDispatcher != null, "The 'endpointDispatcher' argument must not be null.");
            
            bool performanceCountersEnabled = PerformanceCounters.PerformanceCountersEnabled;
            bool minimalPerformanceCountersEnabled = PerformanceCounters.MinimalPerformanceCountersEnabled;

            if (performanceCountersEnabled || minimalPerformanceCountersEnabled)
            {
                if (endpointDispatcher.SetPerfCounterId())
                {
                    ServiceModelPerformanceCounters counters;
                    lock (PerformanceCounters.perfCounterDictionarySyncObject)
                    {
                        if (!PerformanceCounters.PerformanceCountersForEndpoint.TryGetValue(endpointDispatcher.PerfCounterId, out counters))
                        {
                            counters = new ServiceModelPerformanceCounters(serviceHost, contractDescription, endpointDispatcher);
                            if (counters.Initialized)
                            {
                                PerformanceCounters.PerformanceCountersForEndpoint.Add(endpointDispatcher.PerfCounterId, counters);

                                int index = PerformanceCounters.PerformanceCountersForEndpointList.FindIndex(c => c == null);
                                if (index >= 0)
                                {
                                    PerformanceCounters.PerformanceCountersForEndpointList[index] = counters;
                                }
                                else
                                {
                                    PerformanceCounters.PerformanceCountersForEndpointList.Add(counters);
                                    index = PerformanceCounters.PerformanceCountersForEndpointList.Count - 1;
                                }
                                endpointDispatcher.PerfCounterInstanceId = index;
                            }
                            else
                            {
                                return;
                            }
                        }
                    }

                    ServiceModelPerformanceCountersEntry countersEntry;
                    lock (PerformanceCounters.perfCounterDictionarySyncObject)
                    {
                        if (!PerformanceCounters.PerformanceCountersForBaseUri.TryGetValue(endpointDispatcher.PerfCounterBaseId, out countersEntry))
                        {
                            if (performanceCountersEnabled)
                            {
                                countersEntry = new ServiceModelPerformanceCountersEntry(serviceHost.Counters);
                            }
                            else if (minimalPerformanceCountersEnabled)
                            {
                                countersEntry = new ServiceModelPerformanceCountersEntry(serviceHost.DefaultCounters);
                            }
                            PerformanceCounters.PerformanceCountersForBaseUri.Add(endpointDispatcher.PerfCounterBaseId, countersEntry);
                        }
                        countersEntry.Add(counters);
                    }
                }
            }
        }