This commit is contained in:
Charles Torre 2022-07-08 15:03:27 -07:00
Родитель 9dd67a283d
Коммит abedc2ff94
14 изменённых файлов: 44 добавлений и 42 удалений

Просмотреть файл

@ -23,11 +23,11 @@ function Build-SFPkg {
try {
Push-Location $scriptPath
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Linux.SelfContained.1.1.1" "$scriptPath\bin\release\FabricHealer\linux-x64\self-contained\FabricHealerType"
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Linux.FrameworkDependent.1.1.1" "$scriptPath\bin\release\FabricHealer\linux-x64\framework-dependent\FabricHealerType"
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Linux.SelfContained.2.0.9.60" "$scriptPath\bin\release\FabricHealer\linux-x64\self-contained\FabricHealerType"
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Linux.FrameworkDependent.2.0.9.60" "$scriptPath\bin\release\FabricHealer\linux-x64\framework-dependent\FabricHealerType"
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Windows.SelfContained.1.1.1" "$scriptPath\bin\release\FabricHealer\win-x64\self-contained\FabricHealerType"
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Windows.FrameworkDependent.1.1.1" "$scriptPath\bin\release\FabricHealer\win-x64\framework-dependent\FabricHealerType"
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Windows.SelfContained.2.0.9.60" "$scriptPath\bin\release\FabricHealer\win-x64\self-contained\FabricHealerType"
Build-SFPkg "Microsoft.ServiceFabricApps.FabricHealer.Windows.FrameworkDependent.2.0.9.60" "$scriptPath\bin\release\FabricHealer\win-x64\framework-dependent\FabricHealerType"
}
finally {
Pop-Location

Просмотреть файл

@ -9,7 +9,7 @@ Try {
$resourceGroup = "<YOUR-CLUSTER-RESOURCE-NAME>"
$armTemplate = "service-fabric-healer.json"
$armTemplateParameters = "service-fabric-healer.v1.1.1.parameters.json"
$armTemplateParameters = "service-fabric-healer.v2.0.9.60.parameters.json"
cd "<LOCAL-FH-REPO-PATH>\Documentation\Deployment"

Просмотреть файл

@ -13,14 +13,14 @@
"type": "string",
"defaultValue": "",
"metadata": {
"description": "Provide the app version number of FabricHealer. This must be identical with the version provided for the parameter appPackageUrl. Example: '1.1.1'"
"description": "Provide the app version number of FabricHealer. This must be identical with the version provided for the parameter appPackageUrl. Example: '2.0.9.60'"
}
},
"packageUrlFabricHealer": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "This has to be a public accessible URL for the sfpkg file which contains the FabricHealer app package. Example: https://github.com/microsoft/service-fabric-healer/releases/download/48361039/Microsoft.ServiceFabricApps.FabricHealer.Windows.SelfContained.1.1.1.sfpkg"
"description": "This has to be a public accessible URL for the sfpkg file which contains the FabricHealer app package. Example: https://github.com/microsoft/service-fabric-healer/releases/download/48361039/Microsoft.ServiceFabricApps.FabricHealer.Windows.SelfContained.2.0.9.60.sfpkg"
}
}
},

Просмотреть файл

@ -6,7 +6,7 @@
"value": "<YOUR-CLUSTER-RESOURCE-NAME>"
},
"applicationTypeVersionFabricHealer": {
"value": "1.1.1"
"value": "2.0.9.60"
},
"packageUrlFabricHealer": {
"value": "<PUBLIC-ACCESSIBLE-URL-FOR-FABRICHEALER-SFPKG>"

Просмотреть файл

@ -37,20 +37,21 @@ Here is a full example of exactly what is sent in one of these telemetry events,
```JSON
{
"EventName": "OperationalEvent",
"TaskName": "FabricHealer",
"EventRunInterval": "1.00:00:00",
"ClusterId": "00000000-1111-1111-0000-00f00d000d",
"ClusterType": "SFRP",
"NodeNameHash": "3e83569d4c6aad78083cd081215dafc81e5218556b6a46cb8dd2b183ed0095ad",
"FHVersion": "1.0.0",
"UpTime": "00:00:00.1956784",
"Timestamp": "2021-12-11T03:12:47.0410613Z",
"OS": "Windows",
"EnabledRepairCount": 2,
"TotalRepairAttempts": 5,
"SuccessfulRepairs": 5,
"FailedRepairs": 0
"EventName": "OperationalEvent",
"TaskName": "FabricHealer",
"EventRunInterval": "1.00:00:00",
"SFRuntimeVersion": "9.0.1028.9590",
"ClusterId": "00000000-1111-1111-0000-00f00d000d",
"ClusterType": "SFRP",
"NodeNameHash": "3e83569d4c6aad78083cd081215dafc81e5218556b6a46cb8dd2b183ed0095ad",
"FHVersion": "2.0.9.60",
"UpTime": "00:00:00.2164523",
"Timestamp": "2022-07-08T21:45:25.2443014Z",
"OS": "Windows",
"EnabledRepairCount": 1,
"TotalRepairAttempts": 0,
"SuccessfulRepairs": 0,
"FailedRepairs": 0
}
```
@ -58,6 +59,7 @@ Let's take a look at the data and why we think it is useful to share with us. We
- **EventName** - this is the name of the telemetry event.
- **TaskName** - this specifies that the event is from FabricHealer.
- **EventRunInterval** - this is how often this telemetry is sent from a node in a cluster.
- **SFRuntimeVersion** - this is the Service Fabric runtime version installed on the machine.
- **ClusterId** - this is used to both uniquely identify a telemetry event and to correlate data that comes from a cluster.
- **ClusterType** - this is the type of cluster: Standalone or SFRP.
- **NodeNameHash** - this is a sha256 hash of the name of the Fabric node from where the data originates. It is used to correlate data from specific nodes in a cluster (the hashed node name will be known to be part of the cluster with a specific cluster id).

Просмотреть файл

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata minClientVersion="3.3.0">
<id>%PACKAGE_ID%</id>
<version>1.1.1</version>
<version>2.0.9.60</version>
<releaseNotes>
- This version is built for .NET 6 runtime and requires Microsoft.ServiceFabric.Services Versions 6.0.1017 and higher (SF Runtime Version 9.0 and above). Lesser .NET and SF runtime versions are not supported by this release. Use version 1.1.0 for SF Runtime 8.x and .NET Core 3.1.
- FabricHealer no longer requires FabricObserver to be deployed in the same cluster to be useful (though, it is a good idea to run FabricObserver unless you have your own watchdog service(s)).
@ -18,7 +18,7 @@
<icon>icon.png</icon>
<readme>fhnuget.md</readme>
<language>en-US</language>
<description>FabricHealer is a Service Fabric service that schedules and safely executes automatic repairs in Linux and Windows Service Fabric clusters after inspecting unhealthy events created by FabricObserver (FO) instances running in the same cluster. It employs a novel Configuration-as-Logic model to express repair workflows using Prolog-like semantics/syntax in text-based configuration files.</description>
<description>FabricHealer 2.0.9.60 is a Service Fabric service (built for .NET 6, requires SF runtime version 9.0 and above) that schedules and safely executes automatic repairs in Linux and Windows Service Fabric clusters after inspecting unhealthy events created by FabricObserver (FO) instances running in the same cluster. It employs a novel Configuration-as-Logic model to express repair workflows using Prolog-like semantics/syntax in text-based configuration files.</description>
<contentFiles>
<files include="**" buildAction="None" copyToOutput="true" />
</contentFiles>

Просмотреть файл

@ -14,6 +14,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Build-FHProxyNupkg.ps1 = Build-FHProxyNupkg.ps1
Build-NugetPackages.ps1 = Build-NugetPackages.ps1
Build-SFPKGs.ps1 = Build-SFPKGs.ps1
Documentation\Deployment\Deploy-FabricHealer.ps1 = Documentation\Deployment\Deploy-FabricHealer.ps1
Documentation\Deployment\Deployment.md = Documentation\Deployment\Deployment.md
FabricHealer.nuspec.template = FabricHealer.nuspec.template
FabricHealerProxy.md = FabricHealerProxy.md
FabricHealerProxy.nuspec.template = FabricHealerProxy.nuspec.template
@ -21,12 +23,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
icon.png = icon.png
Documentation\LogicWorkflows.md = Documentation\LogicWorkflows.md
Documentation\OperationalTelemetry.md = Documentation\OperationalTelemetry.md
Documentation\Using.md = Documentation\Using.md
Documentation\Deployment\Deployment.md = Documentation\Deployment\Deployment.md
Documentation\Deployment\Deploy-FabricHealer.ps1 = Documentation\Deployment\Deploy-FabricHealer.ps1
Documentation\Deployment\service-fabric-healer.json = Documentation\Deployment\service-fabric-healer.json
Documentation\Deployment\service-fabric-healer.v1.1.1.parameters.json = Documentation\Deployment\service-fabric-healer.v1.1.1.parameters.json
README.md = README.md
Documentation\Deployment\service-fabric-healer.json = Documentation\Deployment\service-fabric-healer.json
Documentation\Using.md = Documentation\Using.md
Documentation\Deployment\service-fabric-healer.v2.0.9.60.parameters.json = Documentation\Deployment\service-fabric-healer.v2.0.9.60.parameters.json
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FHTest", "FHTest\FHTest.csproj", "{8D9712BF-C026-4A36-B6D1-6345137D3B6F}"

Просмотреть файл

@ -15,8 +15,8 @@
<RuntimeIdentifier>win-x64</RuntimeIdentifier>-->
<RuntimeIdentifiers>linux-x64;win-x64</RuntimeIdentifiers>
<Product>FabricHealer</Product>
<Version>1.1.1</Version>
<FileVersion>1.1.1</FileVersion>
<Version>2.0.9.60</Version>
<FileVersion>2.0.9.60</FileVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<StartupObject>FabricHealer.Program</StartupObject>
<SignAssembly>false</SignAssembly>

Просмотреть файл

@ -30,7 +30,7 @@ namespace FabricHealer
internal static RepairData RepairHistory;
// Folks often use their own version numbers. This is for internal diagnostic telemetry.
private const string InternalVersionNumber = "1.1.1";
private const string InternalVersionNumber = "2.0.9.60";
private static FabricHealerManager singleton;
private static FabricClient _fabricClient;
private bool disposedValue;

Просмотреть файл

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="FabricHealerPkg"
Version="1.1.1"
Version="2.0.9.60"
xmlns="http://schemas.microsoft.com/2011/01/fabric"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
@ -11,7 +11,7 @@
</ServiceTypes>
<!-- Code package is your service executable. -->
<CodePackage Name="Code" Version="1.1.1">
<CodePackage Name="Code" Version="2.0.9.60">
<EntryPoint>
<ExeHost>
<Program>FabricHealer</Program>
@ -21,5 +21,5 @@
<!-- Config package is the contents of the Config directory under PackageRoot that contains an
independently-updateable and versioned set of custom configuration settings for your service. -->
<ConfigPackage Name="Config" Version="1.1.1" />
<ConfigPackage Name="Config" Version="2.0.9.60" />
</ServiceManifest>

Просмотреть файл

@ -26,7 +26,7 @@ namespace FabricHealer
// an instance of the class is created in this host process.
ServiceRuntime.RegisterServiceAsync("FabricHealerType", context => new FabricHealer(context)).GetAwaiter().GetResult();
ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(FabricHealer).Name);
ServiceEventSource.Current.ServiceTypeRegistered(Environment.ProcessId, typeof(FabricHealer).Name);
// Prevents this host process from terminating so services keep running.
Thread.Sleep(Timeout.Infinite);

Просмотреть файл

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="FabricHealerType" ApplicationTypeVersion="1.1.1" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="FabricHealerType" ApplicationTypeVersion="2.0.9.60" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Parameters>
<!-- FabricHealerManager Settings -->
<Parameter Name="AutoMitigationEnabled" DefaultValue="true" />
@ -33,7 +33,7 @@
should match the Name and Version attributes of the ServiceManifest element defined in the
ServiceManifest.xml file. -->
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="FabricHealerPkg" ServiceManifestVersion="1.1.1" />
<ServiceManifestRef ServiceManifestName="FabricHealerPkg" ServiceManifestVersion="2.0.9.60" />
<ConfigOverrides>
<ConfigOverride Name="Config">
<Settings>

Просмотреть файл

@ -1,4 +1,4 @@
## FabricHealer 1.1.1
## FabricHealer 2.0.9.60
### Configuration as Logic and auto-mitigation in Service Fabric clusters
#### This version is built for .NET 6 and SF Runtime >= 9.0
@ -77,7 +77,7 @@ Register-ServiceFabricApplicationType -ApplicationPathInImageStore FH111
#Create FO application (if not already deployed at lesser version):
New-ServiceFabricApplication -ApplicationName fabric:/FabricHealer -ApplicationTypeName FabricHealerType -ApplicationTypeVersion 1.1.1
New-ServiceFabricApplication -ApplicationName fabric:/FabricHealer -ApplicationTypeName FabricHealerType -ApplicationTypeVersion 2.0.9.60
#Create the Service instance:
@ -85,7 +85,7 @@ New-ServiceFabricService -Stateless -PartitionSchemeSingleton -ApplicationName f
#OR if updating existing version:
Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/FabricHealer -ApplicationTypeVersion 1.1.1 -Monitored -FailureAction rollback
Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/FabricHealer -ApplicationTypeVersion 2.0.9.60 -Monitored -FailureAction rollback
```
## Using FabricHealer

Просмотреть файл

@ -1,4 +1,4 @@
## FabricHealer 1.1.1
## FabricHealer 2.0.9.60
### Configuration as Logic and auto-mitigation in Service Fabric clusters
#### This version is built for .NET 6 and SF Runtime >= 9.0