Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ OnEventCommand()

void System.Diagnostics.Metrics.MetricsEventSource.CommandHandler.OnEventCommand ( EventCommandEventArgs command)
inline

Definition at line 30 of file MetricsEventSource.cs.

31 {
32 try
33 {
34 if (OperatingSystem.IsBrowser())
35 {
36 Log.Error("", "System.Diagnostics.Metrics EventSource not supported on browser");
37 return;
38 }
39 if (command.Command == EventCommand.Update || command.Command == EventCommand.Disable || command.Command == EventCommand.Enable)
40 {
41 if (_aggregationManager != null)
42 {
43 if (command.Command == EventCommand.Enable || command.Command == EventCommand.Update)
44 {
45 Log.MultipleSessionsNotSupportedError(_sessionId);
46 return;
47 }
50 Log.Message("Previous session with id " + _sessionId + " is stopped");
51 }
52 _sessionId = "";
53 }
54 if ((command.Command != 0 && command.Command != EventCommand.Enable) || command.Arguments == null)
55 {
56 return;
57 }
58 if (command.Arguments.TryGetValue("SessionId", out string value))
59 {
61 Log.Message("SessionId argument received: " + _sessionId);
62 }
63 else
64 {
65 _sessionId = Guid.NewGuid().ToString();
66 Log.Message("New session started. SessionId auto-generated: " + _sessionId);
67 }
68 double num = 1.0;
69 double result = num;
70 if (command.Arguments.TryGetValue("RefreshInterval", out string value2))
71 {
72 Log.Message("RefreshInterval argument received: " + value2);
73 if (!double.TryParse(value2, out result))
74 {
75 Log.Message($"Failed to parse RefreshInterval. Using default {num}s.");
76 result = num;
77 }
78 else if (result < 0.1)
79 {
80 Log.Message($"RefreshInterval too small. Using minimum interval {0.1} seconds.");
81 result = 0.1;
82 }
83 }
84 else
85 {
86 Log.Message($"No RefreshInterval argument received. Using default {num}s.");
87 result = num;
88 }
89 int num2 = 1000;
90 int result2;
91 if (command.Arguments.TryGetValue("MaxTimeSeries", out string value3))
92 {
93 Log.Message("MaxTimeSeries argument received: " + value3);
94 if (!int.TryParse(value3, out result2))
95 {
96 Log.Message($"Failed to parse MaxTimeSeries. Using default {num2}");
97 result2 = num2;
98 }
99 }
100 else
101 {
102 Log.Message($"No MaxTimeSeries argument received. Using default {num2}");
103 result2 = num2;
104 }
105 int num3 = 20;
106 int result3;
107 if (command.Arguments.TryGetValue("MaxHistograms", out string value4))
108 {
109 Log.Message("MaxHistograms argument received: " + value4);
110 if (!int.TryParse(value4, out result3))
111 {
112 Log.Message($"Failed to parse MaxHistograms. Using default {num3}");
113 result3 = num3;
114 }
115 }
116 else
117 {
118 Log.Message($"No MaxHistogram argument received. Using default {num3}");
119 result3 = num3;
120 }
121 string sessionId = _sessionId;
122 _aggregationManager = new AggregationManager(result2, result3, delegate(Instrument i, LabeledAggregationStatistics s)
123 {
126 {
129 {
131 }, delegate(Instrument i)
132 {
133 Log.BeginInstrumentReporting(sessionId, i.Meter.Name, i.Meter.Version, i.Name, i.GetType().Name, i.Unit, i.Description);
134 }, delegate(Instrument i)
135 {
136 Log.EndInstrumentReporting(sessionId, i.Meter.Name, i.Meter.Version, i.Name, i.GetType().Name, i.Unit, i.Description);
137 }, delegate(Instrument i)
138 {
139 Log.InstrumentPublished(sessionId, i.Meter.Name, i.Meter.Version, i.Name, i.GetType().Name, i.Unit, i.Description);
140 }, delegate
141 {
142 Log.InitialInstrumentEnumerationComplete(sessionId);
143 }, delegate(Exception e)
144 {
145 Log.Error(sessionId, e.ToString());
146 }, delegate
147 {
148 Log.TimeSeriesLimitReached(sessionId);
149 }, delegate
150 {
151 Log.HistogramLimitReached(sessionId);
152 }, delegate(Exception e)
153 {
154 Log.ObservableInstrumentCallbackError(sessionId, e.ToString());
155 });
157 if (command.Arguments.TryGetValue("Metrics", out string value5))
158 {
159 Log.Message("Metrics argument received: " + value5);
161 }
162 else
163 {
164 Log.Message("No Metrics argument received");
165 }
167 }
168 catch (Exception e2) when (LogError(e2))
169 {
170 }
171 }
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
AggregationManager SetCollectionPeriod(TimeSpan collectionPeriod)
void TransmitMetricValue(Instrument instrument, LabeledAggregationStatistics stats, string sessionId)
static Guid NewGuid()
Definition Guid.cs:1283

References System.Diagnostics.Metrics.MetricsEventSource.CommandHandler._aggregationManager, System.Diagnostics.Metrics.MetricsEventSource.CommandHandler._sessionId, System.Diagnostics.Metrics.AggregationManager.Dispose(), System.TimeSpan.FromSeconds(), System.OperatingSystem.IsBrowser(), System.Diagnostics.Metrics.MetricsEventSource.Log, System.Diagnostics.Metrics.MetricsEventSource.CommandHandler.LogError(), System.Guid.NewGuid(), System.Diagnostics.Metrics.MetricsEventSource.CommandHandler.ParseSpecs(), System.s, System.Diagnostics.Metrics.AggregationManager.SetCollectionPeriod(), System.Diagnostics.Metrics.AggregationManager.Start(), System.Exception.ToString(), System.Diagnostics.Metrics.MetricsEventSource.CommandHandler.TransmitMetricValue(), System.Collections.Generic.Dictionary< TKey, TValue >.TryGetValue(), and System.value.

Referenced by System.Diagnostics.Metrics.MetricsEventSource.OnEventCommand().