[Obsolete] FabricObserver 3.1.17
FabricObserver 3.1.17 - SFPkgs with Microsoft-signed binaries. Microsoft-signed Nupkgs will be located in the nuget.org gallery.
FabricObserver Changes
- ContainerObserver joins the mix, promoted to a built-in observer. This observer monitors CPU and Memory use of Service Fabric containerized applications (docker). It's a slimmed down AppObserver, but for containers. See Observers Readme for more information.
- Many (not all) ObserverManager configuration settings moved into ApplicationManifest.xml as overridable parameters (so, you can change OM settings with versionless application parameter upgrades and not have to redeploy FO when you want to make a change to an overridable OM setting).
- Monitoring and performance improvements for AppObserver, FabricSystemObserver and NodeObserver.
- Finally, this version ships with an updated internal operational telemetry impl for Non-PII data sharing with Microsoft (opt out).
FabricObserver operational data is transmitted to Microsoft and contains only basic information about FabricObserver (enabled observers, built-in (non-plugin) observer warnings or errors detected), the type of cluster (SFRP, for example), the type of OS (Windows or Linux).
This information is only used by the Service Fabric team and will be stored (data retention) for no more than 90 days.
We are only interested in the following information:
- Is FO is working and healthy? - If FO crashes with an unhandled exception that can be caught, related error information will be sent to us (this will include the offending FO stack).
- What is the number of enabled observers?
- Are there any FO plugins running?
- Is FO finding issues (generating health events)? This data is represented in the total number of Warnings/Errors an observer finds in an 8 hour window.
- This telemetry is sent every 8 hours and internal error/warning counters are reset after each telemetry transmission.
This agnostic information is very helpful to your friends on the Service Fabric team working on FO.
If you do not want to share this information, simply disable it in ApplicationManifest.xml by setting ObserverManagerEnableOperationalTelemetry to false, e.g.,
<Parameter Name="ObserverManagerEnableOperationalTelemetry" DefaultValue="false" />
Here is a full example of exactly what is sent in one of these telemetry events, in this case, from an SFRP cluster:
{
"EventName": "OperationalEvent",
"TaskName": "FabricObserver",
"EventRunInterval": "08:00:00",
"ClusterId": "50bf5602-1611-459c-aed2-45b960e9eb16",
"ClusterType": "SFRP",
"NodeNameHash": "1672329571",
"FOVersion": "3.1.17",
"HasPlugins": "False",
"UpTime": "00:00:27.2535830",
"Timestamp": "2021-09-12T00:51:42.8588118Z",
"OS": "Windows",
"EnabledObserverCount": 5,
"AppObserverTotalMonitoredApps": 4,
"AppObserverTotalMonitoredServiceProcesses": 6,
"AppObserverErrorDetections": 0,
"AppObserverWarningDetections": 1,
"CertificateObserverErrorDetections": 0,
"CertificateObserverWarningDetections": 0,
"DiskObserverErrorDetections": 0,
"DiskObserverWarningDetections": 0,
"NodeObserverErrorDetections": 2,
"NodeObserverWarningDetections": 0,
"OSObserverErrorDetections": 0,
"OSObserverWarningDetections": 0
}
Please see FabricObserver Operational Telemetry for more information.