internal static void InitializeAvailableCounterTypes() { ActorPerformanceCounters actorPerformanceCounters = new ActorPerformanceCounters(); var requestedCounterSets = actorPerformanceCounters.GetCounterSets(); AvaiableFabricCounterSet = new Dictionary <string, FabricPerformanceCounterSet>(); foreach (FabricPerformanceCounterSetDefinition category in requestedCounterSets.Keys) { FabricPerformanceCounterSet counterSet; try { //Create CounterSet for this category. counterSet = new FabricPerformanceCounterSet(category, requestedCounterSets[category]); } catch (Exception ex) { ActorTrace.Source.WriteWarning(TraceType, "Data for performance counter category {0} will not be provided because an exception occurred during its initialization. Exception info: {1}", category.Name, ex); continue; } DumpCounterSetInfo(counterSet, requestedCounterSets[category]); AvaiableFabricCounterSet.Add(category.Name, counterSet); } }
private static void InitializeAvailableCounterTypes() { var servicePerformanceCounters = new ServiceRemotingPerformanceCounters(); var counterSetDefinitions = servicePerformanceCounters.GetCounterSets(); ServiceCounterSet = CreateCounterSet(counterSetDefinitions, ServiceRemotingPerformanceCounters.ServiceCategoryName); }
private static void DumpCounterSetInfo(FabricPerformanceCounterSet counterSet, IEnumerable <FabricPerformanceCounterDefinition> activeCounters) { StringBuilder sb = new StringBuilder(); sb.Append(String.Format("Created performance counter category {0} with following counters.", counterSet.CounterSetDefinition.Name)); sb.AppendLine(); foreach (var counter in activeCounters) { sb.Append(String.Format("CounterName : {0}", counter.Name)); sb.AppendLine(); } ActorTrace.Source.WriteInfo(TraceType, sb.ToString()); }
private static FabricPerformanceCounterSet CreateCounterSet( Dictionary <FabricPerformanceCounterSetDefinition, IEnumerable <FabricPerformanceCounterDefinition> > counterSetDefinitions, string categoryName) { var counterSetDefinition = counterSetDefinitions.Single(kvp => (kvp.Key.Name == categoryName)); FabricPerformanceCounterSet counterSet = null; try { //Create CounterSet for this categoryName. counterSet = new FabricPerformanceCounterSet(counterSetDefinition.Key, counterSetDefinition.Value); } catch (Exception ex) { ServiceTrace.Source.WriteWarning(TraceType, "Data for performance counter categoryName {0} will not be provided because an exception occurred during its initialization. Exception info: {1}", counterSetDefinition.Key.Name, ex); return(null); } DumpCounterSetInfo(counterSet, counterSetDefinition.Value); return(counterSet); }
private MethodSpecificCounterWriters CreateCounterWriters( CounterInstanceData counterInstanceData, FabricPerformanceCounterSet ActorMethodCounterSet) { var logCounterWriterCreation = false; // We have not yet created the objects that write the counter values. So build // up the list of counter writers now. var instanceName = counterInstanceData.InstanceName; var tempCounterWriters = new MethodSpecificCounterWriters(); try { tempCounterWriters.ActorMethodCounterSetInstance = ActorMethodCounterSet.CreateCounterSetInstance(instanceName); } catch (Exception ex) { //Instance creation failed, Be done. ActorTrace.Source.WriteWarning( TraceType, "Data for performance counter instance {0} of category {1} will not be provided because an exception occurred during its initialization. Exception info: {2}", instanceName, ActorPerformanceCounters.ActorMethodCategoryName, ex); return(null); } tempCounterWriters.ActorMethodFrequencyCounterWriter = this.CreateMethodCounterWriter( instanceName, typeof(ActorMethodFrequencyCounterWriter), tempCounterWriters.ActorMethodCounterSetInstance, inst => new ActorMethodFrequencyCounterWriter(inst)); tempCounterWriters.ActorMethodExceptionFrequencyCounterWriter = this.CreateMethodCounterWriter( instanceName, typeof(ActorMethodExceptionFrequencyCounterWriter), tempCounterWriters.ActorMethodCounterSetInstance, inst => new ActorMethodExceptionFrequencyCounterWriter(inst)); tempCounterWriters.ActorMethodExecTimeCounterWriter = this.CreateMethodCounterWriter( instanceName, typeof(ActorMethodExecTimeCounterWriter), tempCounterWriters.ActorMethodCounterSetInstance, inst => new ActorMethodExecTimeCounterWriter(inst)); logCounterWriterCreation = true; if (logCounterWriterCreation) { object[] newlyCreatedCounterWriters = { tempCounterWriters.ActorMethodFrequencyCounterWriter, tempCounterWriters.ActorMethodExceptionFrequencyCounterWriter, tempCounterWriters.ActorMethodExecTimeCounterWriter }; foreach (var newlyCreatedCounterWriter in newlyCreatedCounterWriters) { if (null != newlyCreatedCounterWriter) { this.LogCounterInstanceCreationResult( newlyCreatedCounterWriter.GetType(), counterInstanceData.InstanceName, null); } } } return(tempCounterWriters); }