-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathSettings.xml
408 lines (349 loc) · 31.2 KB
/
Settings.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
<?xml version="1.0" encoding="utf-8" ?>
<!-- Note: You can use an XML diff/merge tool to make upgrading your base configuration to the latest version easier.
Get the tool here: https://github.com/gittorre/XmlDiffPatchSF -->
<Settings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Section Name="ObserverManagerConfiguration">
<!-- *** Application Parameters - Must Override, set in ApplicationManifest.xml, not here. *** -->
<!-- Required: Amount of time, in seconds, for FO to sleep before the next iteration of the sequential observers run loop.
0 means run continuously with no pausing - not recommended. If you only enable one observer, FO will sleep for 10 seconds between runs, regardless
of this setting. SF Error/Warning Reports have TTLs that are computed in part with this value. -->
<Parameter Name="ObserverLoopSleepTimeSeconds" Value="" MustOverride="true" />
<!-- Required: Location on disk to store observer data, including ObserverManager.
Each observer will write to their own directory on this path.
**NOTE: For Linux runtime target, just supply the directory name(s)/path (not a path with drive letter like you would do for Windows).
The below (default) works on both platforms: on Windows it will be C:\observer_logs. On Linux the folder will live in the deployed code package directory.** -->
<Parameter Name="ObserverLogPath" Value="" MustOverride="true" />
<!-- Required: Amount of time, in seconds, any observer is allowed to complete a run. If this time is exceeded,
then the offending observer will be marked as broken and will not run again.
Below setting represents 120 minutes. If you are not monitoring hundreds of services, then you should decrease this if necessary.
Measure and determine how long it takes for AppObserver, for example, to run to completion in
your deployment and configuration - like if you watch all services of a all applications and there are hundreds of them. You can do this easily by
setting EnableVerboseLogging to true on AppObserver, for example, and it will log how long it takes to run each time it runs to completion. Any observer
that monitors stuff supports run duration logging. Use this these values to determine what constitutes too long and that an observer needs to be fixed.
No Observer should ever take 2 hours to run, so the below setting is an extreme maximum. Vary the number to meet your actual needs. -->
<Parameter Name="ObserverExecutionTimeout" Value="" MustOverride="true" />
<!-- Optional: Enabling this will generate noisy logs. Disabling it means only Warning and Error information
will be locally logged. This is the recommended setting. -->
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<!-- Optional: ETW (EventSource) Tracing. This will create an EventSource singleton that will be used by Logger.LogETW to emit
FabricObserverDataEvent events from an ETW Provider named FabricObserverETWProvider. -->
<Parameter Name="EnableETWProvider" Value="" MustOverride="true" />
<!-- Optional: EventSource provider name. Defaults to FabricObserverETWProvider. -->
<Parameter Name="ETWProviderName" Value="" MustOverride="true" />
<!-- Optional: FabricObserver operational telemetry. No PII.
See ObserverManager.cs and TelemetryLib project for FO data that is collected. -->
<Parameter Name="EnableFabricObserverOperationalTelemetry" Value="" MustOverride="true" />
<!-- If an observer run fails due to timeout (ObserverExecutionTimeout is exceeded) or AppObserver can't monitor a service that runs at higher privilege,
then put FO into Warning or Error state or just create a an Ok (info) health message.
Supported values are Error, Warning, Ok or None (which means don't put FO into Warning or Error state or create an Ok health event (info)). -->
<Parameter Name="ObserverFailureHealthStateLevel" Value="" MustOverride="true" />
<!-- Required: Diagnostic Telemetry. Azure ApplicationInsights and Azure LogAnalytics support is already implemented,
but you can implement whatever provider you want. See IObserverTelemetry interface. -->
<Parameter Name="EnableTelemetryProvider" Value="" MustOverride="true" />
<!-- Telemetry - ApplicationInsights/LogAnalytics. NOTE: Values must now be set in ApplicationManifest.xml. This is a *breaking change* in version 3.2.15. -->
<!-- Required - Telemetry Provider. Supported values are AzureApplicationInsights or AzureLogAnalytics.
NOTE: Value must now be set in ApplicationManifest.xml. This is a *breaking change* in version 3.2.15. -->
<Parameter Name="TelemetryProvider" Value="" MustOverride="true" />
<!-- Application Insights -->
<!-- Required-If TelemetryProvider is AzureApplicationInsights. Your AppInsights Connection String.
NOTE: Value must now be set in ApplicationManifest.xml. This is a *breaking change* in version 3.2.15.-->
<Parameter Name="AppInsightsConnectionString" Value="" MustOverride="true" />
<!-- OBSOLETE. DO NOT USE. Use AppInsightsConnectionString instead. InstrumentationKey is no longer recommended for ApplicationInsights ingestion.
NOTE: Specifying this has no effect as FabricObserver requires a ConnectionString for ApplicationInsights. -->
<Parameter Name="AppInsightsInstrumentationKey" Value="" />
<!-- LogAnalytics -->
<!-- Required-If TelemetryProvider is AzureLogAnalytics. Your Workspace Id.
NOTE: Values must now be set in ApplicationManifest.xml. This is a *breaking change* in version 3.2.15. -->
<Parameter Name="LogAnalyticsWorkspaceId" Value="" MustOverride="true" />
<!-- Required-If TelemetryProvider is AzureLogAnalytics. Your Shared Key. -->
<Parameter Name="LogAnalyticsSharedKey" Value="" MustOverride="true" />
<!-- Required-If TelemetryProvider is AzureLogAnalytics. Log scope. Default is Application. -->
<Parameter Name="LogAnalyticsLogType" Value="" MustOverride="true" />
<!-- End Telemetry Config -->
<!-- Resource Governance. MustOverride is required to enable changing RG settings with app parameter updates.
<Parameter Name="RGCPUCoresRequest" Value="" MustOverride="true" />
<Parameter Name="RGMemoryInMB" Value="" MustOverride="true" /> -->
<!-- *** Non-Overridable Parameters - Set these in this file. *** -->
<!-- How long to wait, in seconds, after a shutdown is signaled. -->
<Parameter Name="ObserverShutdownGracePeriodInSeconds" Value="1" />
<!-- Optional: Location on disk to store CSV files that contain all observer monitoring data.
**NOTE: For Linux runtime target, just supply the directory name(s)/path (not a path with drive letter like you do for Windows).** -->
<Parameter Name="DataLogPath" Value="fabric_observer_csvdata" />
<!-- OBSOLETE. This is no longer used and setting the value has no effect. -->
<Parameter Name="FQDN" Value="" />
<!-- Optional: Maximum Number of days to store Archived observer log files on disk.
This setting spans all ObserverLogger instances (ObserverBase.ObserverLogger), including plugins and ObserverManager.
The default value is 0. An empty value or 0 means there is no lifetime constraint. They are immortal files. -->
<Parameter Name="MaxArchivedLogFileLifetimeDays" Value="3" />
<!-- Optional: Maximum Number of days to store CSV files on disk, which are produced by CsvFileLogger instances (ObserverBase.CsvFileLogger).
This setting spans all CsvFileLogger instances for observers (including plugins) and ObserverManager.
The default value is 0. An empty value or 0 means there is no lifetime constraint. They are immortal files. -->
<Parameter Name="MaxArchivedCsvFileLifetimeDays" Value="1" />
<!-- Optional: How do you want to store csv files per observer run? Default is SingleFileWithArchives which means write to a single file that is updated per run and archived after 1 day.
The other option, MultipleFilesNoArchives means files are written per run per monitor target (so, one file for each service process that you are monitoring, for example,
time-stamped (Utc), per observer run. For MultipleFilesNoArchives, since each run produces a file for each entity target (like a service process monitored by AppObserver, which can 10s or 100s)
by a supported observer (AppObserver, FabricSystemObserver or NodeObserver only), there will be a lot of these files produced depending upon your
RunInterval setting for supported observer. Note that in either case, files will remain on disk for the number of days specified in MaxArchivedCsvFileLifetimeDays. -->
<Parameter Name="CsvFileWriteFormat" Value="SingleFileWithArchives" />
</Section>
<!-- Observer Configuration Settings - *NOTE*: These are overridable settings, see ApplicationManifest.xml.
The Values for these will be overriden by ApplicationManifest Parameter settings. Set DefaultValue for each
overridable parameter in that file, *not here*, as the parameter DefaultValues in ApplicationManifest.xml will be used, by default.
This design is to enable unversioned application-parameter-only updates. This means you will be able to change
any of the MustOverride parameters below at runtime by doing an ApplicationUpdate with ApplicationParameters flag.
See: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-upgrade-advanced#upgrade-application-parameters-independently-of-version -->
<Section Name="AppObserverConfiguration">
<!-- Required Parameter for all Observers: To enable or not enable, that is the question. -->
<Parameter Name="Enabled" Value="" MustOverride="true" />
<!-- Optional: Whether or not AppObserver should try to monitor service processes concurrently.
This can significantly decrease the amount of time it takes AppObserver to monitor and report on several application services.
Note that this feature is only useful on capable CPU configurations (>= 4 logical processors). -->
<Parameter Name="EnableConcurrentMonitoring" Value="" MustOverride="true" />
<!-- Optional: The maximum number of concurrent tasks to use when monitoring service processes in parallel. By default, AppObserver will set this to be the number of logical processors
present in the underlying (virtual) machine. Experiment with various values (including -1 which means unlimited) before you ship into production.
This is especially important if you monitor lots of services (>= 100) and enable concurrent monitoring -
and have capable hardware: >= 4 logical processors (none of this matters if this is not true.) -->
<Parameter Name="MaxConcurrentTasks" Value="" MustOverride="true" />
<!-- Required: Whether the Observer should send all of its monitoring data and Warnings/Errors to configured Telemetry service. -->
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<!-- Whether or not you want all raw metric event data to be sent to ApplicationInsights or LogAnalytics service.
This is in case you are getting too much telemetry from this observer and you only want data related to entity health states based on your metric Error/Warning threshold settings. -->
<Parameter Name="EmitRawMetricTelemetry" Value="" MustOverride="true" />
<!-- Required: Whether the Observer should write EventSource traces containing all of its monitoring data and Warnings/Errors to configured. -->
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<!-- Optional: Enabling this will generate CSV files that contain resource metric data across runs.
These files will be written to the DataLogPath supplied in ObserverManagerConfiguration section above. -->
<Parameter Name="EnableCSVDataLogging" Value="" MustOverride="true" />
<!-- Optional: Whether or not AppObserver should monitor the percentage of maximum LVIDs in use by a stateful service that employs KVS (like SF Actor services).
Enabling this will put the containing Application into Warning when a related service has consumed 75% of the Maximum number of LVIDs (which today is int.MaxValue per process). -->
<Parameter Name="EnableKvsLvidMonitoring" Value="" MustOverride="true" />
<!-- Optional: Enabling this will generate noisy logs. Disabling it means only Warning and Error information
will be locally logged. This is the recommended setting. -->
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<!-- Optional: The amount of time this observer conducts resource usage probing.
Each observer has a default value set, but you should override by setting this
parameter to what makes sense for your service(s). Note that this value represents
the time spent monitoring for each service you specify in configuration. -->
<Parameter Name="MonitorDuration" Value="" MustOverride="true" />
<!-- Optional: The amount of time this observer waits between consecutive resource usage probing.
Each observer has a default value set, but you should override by setting this
parameter to what makes sense for your service(s). -->
<Parameter Name="MonitorSleepDurationMilliseconds" Value="" MustOverride="true" />
<!-- Optional: How often does the observer run? For example, CertificateObserver's RunInterval is set to 1 day
in ApplicationManifest.xml, which means it won't run more than once a day (where day = 24 hours.). All observers support a RunInterval parameter. -->
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<!-- Required: The thresholds are held in a json file. Note that these thresholds apply to any service that is part
of the Target Application, which is the logical container for service processes in Service Fabric parlance.-->
<Parameter Name="ConfigurationFileName" Value="" MustOverride="true" />
<!-- Optional: Some observers make async SF Api calls that are cluster-wide operations and can take time in large deployments. -->
<Parameter Name="ClusterOperationTimeoutSeconds" Value="" MustOverride="true" />
<!-- Optional: You can choose between of List<T> or a CircularBufferCollection<T> for observer data storage.
It just depends upon how much data you are collecting per observer run and if you only care about
the most recent data (where number of most recent items in collection
type equals the ResourceUsageDataCapacity you specify). -->
<Parameter Name="UseCircularBuffer" Value="" MustOverride="true" />
<!-- Required-If UseCircularBuffer = True: This represents the number of items to hold in the data collection instance for
the observer. The default value for capacity is 30 if you omit the ResourceUsageDataCapacity parameter or use an invalid value
like 0 or a negative number (or omit the parameter altogether). -->
<Parameter Name="ResourceUsageDataCapacity" Value="" MustOverride="true" />
<!-- AppObserver will automatically monitor a service process's descendants (max depth = 5, max procs = 50). You should only disable this if you know the services
that you want AppObserver to monitor do not launch child processes. -->
<Parameter Name="EnableChildProcessMonitoring" Value ="" MustOverride="true" />
<!-- Max number of a service process's spawned (child) processes to report via telemetry (ordered by descending value - so, top n consumers).
The recommended value range for this setting is 5 to 10. See Observers.md for more details on AppObserver's child process monitoring. -->
<Parameter Name="MaxChildProcTelemetryDataCount" Value="" MustOverride="true" />
<!-- dumpProcessOnError related configuration. -->
<!-- This setting will override dumpProcessOnError in AppObserver.config.json. This is a big red button to disable/enable the feature
without having to deploy a new json config file for AppObserver as part of a configuration update or App redeployment. This feature will only work
if you have "dumpProcessOnError"=true setting for your app target(s) in AppObserver.config.json.
AppObserver's dumpProcessOnError feature is currently only supported for Windows. -->
<Parameter Name="EnableProcessDumps" Value="" MustOverride="true" />
<!-- Supported values are: Mini, MiniPlus, Full. Default is MiniPlus. Full can create giant files - be careful there.. -->
<Parameter Name="DumpType" Value="" MustOverride="true" />
<!-- The maximum number of dumps per day per service process per metric. Default is 3. -->
<Parameter Name="MaxDumps" Value="" MustOverride="true" />
<Parameter Name="MaxDumpsTimeWindow" Value="" MustOverride="true" />
<!-- Optional: monitor private working set only for target service processes (versus full working set, which is private + shared). The default setting in ApplicationManifest.xml is true. -->
<Parameter Name="MonitorPrivateWorkingSet" Value="" MustOverride="true" />
<Parameter Name="MonitorResourceGovernanceLimits" Value="" MustOverride="true" />
</Section>
<Section Name="CertificateObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<!-- Optional: How often does the observer run? For example, CertificateObserver's RunInterval is set to 1 day
below, which means it won't run more than once a day (where day = 24 hours.). All observers support a RunInterval parameter.
Just add a Parameter like below to any of the observers' config sections when you want this level of run control.
Format: Day(s).Hours:Minutes:Seconds e.g., 1.00:00:00 = 1 day. -->
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<!-- Cluster and App Certs Warning Start (Days) -> DefaultValue is 42 -->
<Parameter Name="DaysUntilClusterExpiryWarningThreshold" Value="" MustOverride="true" />
<Parameter Name="DaysUntilAppExpiryWarningThreshold" Value="" MustOverride="true" />
<!-- Required: These are JSON-style lists of strings, empty should be "[]", full should be "['thumb1', 'thumb2']" -->
<Parameter Name="AppCertThumbprintsToObserve" Value="" MustOverride="true" />
<Parameter Name="AppCertCommonNamesToObserve" Value="" MustOverride="true" />
</Section>
<Section Name="DiskObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<!-- Whether or not you want all raw metric event data to be sent to ApplicationInsights or LogAnalytics service.
This is in case you are getting too much telemetry from this observer and you only want data related to entity health states based on your metric Error/Warning threshold settings. -->
<Parameter Name="EmitRawMetricTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<Parameter Name="DiskSpacePercentUsageWarningThreshold" Value="" MustOverride="true" />
<Parameter Name="DiskSpacePercentUsageErrorThreshold" Value="" MustOverride="true" />
<Parameter Name="AverageQueueLengthErrorThreshold" Value="" MustOverride="true" />
<Parameter Name="AverageQueueLengthWarningThreshold" Value="" MustOverride="true" />
<Parameter Name="EnableFolderSizeMonitoring" Value="" MustOverride="true" />
<Parameter Name="FolderPathsErrorThresholdsMb" Value="" MustOverride="true" />
<Parameter Name="FolderPathsWarningThresholdsMb" Value="" MustOverride="true" />
</Section>
<Section Name="FabricSystemObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<!-- Optional: Whether or not AppObserver should monitor the percentage of maximum LVIDs in use by a stateful System services that employs KVS (Fabric, FabricRM).
Enabling this will put fabric:/System into Warning when either Fabric or FabricRM have consumed 75% of Maximum number of LVIDs (which is int.MaxValue per process). -->
<Parameter Name="EnableKvsLvidMonitoring" Value="" MustOverride="true" />
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<!-- Whether or not you want all raw metric event data to be sent to ApplicationInsights or LogAnalytics service.
This is in case you are getting too much telemetry from this observer and you only want data related to entity health states based on your metric Error/Warning threshold settings. -->
<Parameter Name="EmitRawMetricTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<Parameter Name="EnableCSVDataLogging" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<Parameter Name="MonitorDuration" Value="" MustOverride="true" />
<Parameter Name="MonitorSleepDurationMilliseconds" Value="" MustOverride="true" />
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<!-- Optional: monitor private working set only for target service processes (versus full working set, which is private + shared). The default setting in ApplicationManifest.xml is true. -->
<Parameter Name="MonitorPrivateWorkingSet" Value="" MustOverride="true" />
<!-- Optional: You can choose between of List<T> or a CircularBufferCollection<T> for observer data storage.
It just depends upon how much data you are collecting per observer run and if you only care about
the most recent data (where number of most recent items in collection
type equals the ResourceUsageDataCapacity you specify). -->
<Parameter Name="UseCircularBuffer" Value="" MustOverride="true" />
<!-- Required-If UseCircularBuffer = True -->
<Parameter Name="ResourceUsageDataCapacity" Value="" MustOverride="true"/>
<!-- OBSOLETE. Windows Event Log monitoring is no longer supported. -->
<Parameter Name="MonitorWindowsEventLog" Value="" MustOverride="true" />
<Parameter Name="CpuErrorLimitPercent" Value="" MustOverride="true" />
<Parameter Name="CpuWarningLimitPercent" Value="" MustOverride="true" />
<Parameter Name="MemoryErrorLimitMb" Value="" MustOverride="true" />
<Parameter Name="MemoryWarningLimitMb" Value="" MustOverride="true" />
<Parameter Name="NetworkErrorActivePorts" Value="" MustOverride="true" />
<Parameter Name="NetworkWarningActivePorts" Value="" MustOverride="true" />
<Parameter Name="NetworkErrorEphemeralPorts" Value="" MustOverride="true" />
<Parameter Name="NetworkWarningEphemeralPorts" Value="" MustOverride="true" />
<Parameter Name="AllocatedHandlesErrorLimit" Value="" MustOverride="true" />
<Parameter Name="AllocatedHandlesWarningLimit" Value="" MustOverride="true" />
<Parameter Name="ThreadCountErrorLimit" Value="" MustOverride="true" />
<Parameter Name="ThreadCountWarningLimit" Value="" MustOverride="true" />
<Parameter Name="ClusterOperationTimeoutSeconds" Value="120" />
</Section>
<Section Name="NetworkObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<!-- The target endpoints, which are the only endpoints that matter (default endpoints do not generate warnings.)
are App-level configuration settings and will apply to any service that is part of the Application.
These values are held in a json file, NetworkObserver.config.json". -->
<Parameter Name="ConfigurationFileName" Value="NetworkObserver.config.json" />
</Section>
<Section Name="NodeObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<!-- Whether or not you want all raw metric event data to be sent to ApplicationInsights or LogAnalytics service.
This is in case you are getting too much telemetry from this observer and you only want data related to entity health states based on your metric Error/Warning threshold settings. -->
<Parameter Name="EmitRawMetricTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<Parameter Name="EnableCSVDataLogging" Value="" MustOverride="true" />
<Parameter Name="EnableNodeSnapshot" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<Parameter Name="MonitorDuration" Value="" MustOverride="true" />
<Parameter Name="MonitorSleepDurationMilliseconds" Value="" MustOverride="true" />
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<Parameter Name="UseCircularBuffer" Value="" MustOverride="true" />
<!-- Required-If UseCircularBuffer = True -->
<Parameter Name="ResourceUsageDataCapacity" Value="" MustOverride="true"/>
<Parameter Name="CpuErrorLimitPercent" Value="" MustOverride="true" />
<Parameter Name="CpuWarningLimitPercent" Value="" MustOverride="true" />
<Parameter Name="MemoryErrorLimitMb" Value="" MustOverride="true" />
<Parameter Name="MemoryWarningLimitMb" Value ="" MustOverride="true" />
<Parameter Name="MemoryErrorLimitPercent" Value="" MustOverride="true" />
<Parameter Name="MemoryWarningLimitPercent" Value ="" MustOverride="true" />
<Parameter Name="NetworkErrorActivePorts" Value="" MustOverride="true" />
<Parameter Name="NetworkWarningActivePorts" Value="" MustOverride="true" />
<Parameter Name="NetworkErrorFirewallRules" Value="" MustOverride="true" />
<Parameter Name="NetworkWarningFirewallRules" Value="" MustOverride="true" />
<Parameter Name="NetworkErrorEphemeralPorts" Value="" MustOverride="true" />
<Parameter Name="NetworkWarningEphemeralPorts" Value="" MustOverride="true" />
<Parameter Name="NetworkErrorEphemeralPortsPercentage" Value="" MustOverride="true" />
<Parameter Name="NetworkWarningEphemeralPortsPercentage" Value="" MustOverride="true" />
<!-- The below parameters only make sense for Linux, thus named accordingly. These settings are not useful for Windows. -->
<Parameter Name="LinuxFileHandlesErrorLimitPercent" Value="" MustOverride="true"/>
<Parameter Name="LinuxFileHandlesWarningLimitPercent" Value="" MustOverride="true"/>
<Parameter Name="LinuxFileHandlesErrorLimitTotal" Value="" MustOverride="true"/>
<Parameter Name="LinuxFileHandlesWarningLimitTotal" Value="" MustOverride="true"/>
</Section>
<Section Name="OSObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<Parameter Name="EnableWindowsAutoUpdateCheck" Value="" MustOverride="true" />
<Parameter Name="ClusterOperationTimeoutSeconds" Value="120" />
<Parameter Name="RunInterval" Value="" MustOverride="true" />
</Section>
<Section Name="AzureStorageUploadObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<Parameter Name="ClusterOperationTimeoutSeconds" Value="120" />
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<!-- Azure Blob store container name. -->
<Parameter Name="BlobContainerName" Value="" MustOverride="true" />
<!-- For Authenticating to your Storage Account, you can either provide a Connection String OR an Account Name and Account Key.
NOTE: If you do not plan on encrypting your account secrets, then set IsEncrypted to false both here and in
the AzureStorageUploadObserverConfiguration Section in ApplicationManifest.xml. -->
<Parameter Name="AzureStorageConnectionString" Value="" IsEncrypted="true" MustOverride="true" />
<!-- OR -->
<Parameter Name="AzureStorageAccountName" Value="" MustOverride="true" />
<Parameter Name="AzureStorageAccountKey" Value="" IsEncrypted="true" MustOverride="true" />
<!-- Compression level. dmp files will be compressed to limit network usage. -->
<Parameter Name="ZipFileCompressionLevel" Value="" MustOverride="true" />
</Section>
<Section Name="ContainerObserverConfiguration">
<Parameter Name="Enabled" Value="" MustOverride="true" />
<Parameter Name="EnableConcurrentMonitoring" Value="" MustOverride="true" />
<Parameter Name="MaxConcurrentTasks" Value="" MustOverride="true" />
<Parameter Name="ClusterOperationTimeoutSeconds" Value="120" />
<Parameter Name="EnableCSVDataLogging" Value="" MustOverride="true" />
<Parameter Name="EnableEtw" Value="" MustOverride="true"/>
<Parameter Name="EnableTelemetry" Value="" MustOverride="true" />
<!-- Whether or not you want all raw metric event data to be sent to ApplicationInsights or LogAnalytics service.
This is in case you are getting too much telemetry from this observer and you only want data related to entity health states based on your metric Error/Warning threshold settings. -->
<Parameter Name="EmitRawMetricTelemetry" Value="" MustOverride="true" />
<Parameter Name="EnableVerboseLogging" Value="" MustOverride="true" />
<Parameter Name="RunInterval" Value="" MustOverride="true" />
<Parameter Name="ConfigurationFileName" Value="" MustOverride="true" />
</Section>
<!-- Plugin model sample. Just add the configuration info here that your observer needs.
**NOTE**: You must name these Sections in the following way: [ObserverName]Configuration.
Example: SampleNewObserverConfiguration, where SampleNewObserver is the type name of the observer plugin.
See the SampleObserverPlugin project for a complete example of implementing an observer plugin.
If you want to enable versionless application parameter updates, then add MustOverride to the Parameters you want to be
able to change without redeploying FO and add them to ApplicationManifest.xml like all the other observers.
All observers are enabled by default, so even you do not supply any parameters here (like, leave this commented out) your observer plugin will run.
<Section Name="SampleNewObserverConfiguration">
<Parameter Name="Enabled" Value="true" />
<Parameter Name="ClusterOperationTimeoutSeconds" Value="120" />
<Parameter Name="EnableEtw" Value="false" />
<Parameter Name="EnableTelemetry" Value="false" />
<Parameter Name="EnableVerboseLogging" Value="false" />
<Parameter Name="RunInterval" Value="" />
</Section> -->
</Settings>