2017-10-05 1 views
0

Ich mache Bereitstellungen von Jenkins-Jobs mithilfe von Powershell. Der Job wird erfolgreich sein und die Bereitstellung startet auf dem Cluster, aber manchmal schlägt das fehl und Rollback, in welchem ​​Fall ich keine Benachrichtigung davon erhalte.Überwachungsdienst Fabric-Bereitstellungen

Gibt es eine Möglichkeit, das Upgrade von meinem Job jenkins mithilfe eines Powershell-Cmdlets zu überwachen, um den Status abzufragen, oder um zu erfahren, ob der Vorgang erfolgreich oder fehlgeschlagen ist?

Antwort

0

Keine Ahnung, ob es einen intelligenteren Weg gibt, aber Sie können den Upgrade-Status für eine bestimmte Anwendung mit dem Cmdlet "Get-ServiceFabricApplicationUpgrade" abrufen.

Get-ServiceFabricApplicationUpgrade -ApplicationName fabric:/your/awesomeApp

Durch reinen Zufall habe ich ein Upgrade auf unserem Cluster laufen gerade jetzt, und Sie erhalten und eine Ausgabe wie die folgende (ich habe einige Namen Parameter eingestellt etc.):

ApplicationName       : fabric:/your/awesomeApp 
ApplicationTypeName      : YourAwesomeApp.FabricType 
TargetApplicationTypeVersion   : 2017.1005.2-r20.1 
ApplicationParameters     : { "Param1" = "Value1"; 
              "Param2" = "Value2"; 
              "ActorService_MinReplicaSetSize" = "2"; 
              "ActorService_PartitionCount" = "1"; 
              "ActorService_TargetReplicaSetSize" = "3"; 
             } 
StartTimestampUtc      : 05.10.2017 08.49.39 
UpgradeState       : RollingForwardInProgress 
UpgradeDuration       : 00:09:01 
CurrentUpgradeDomainDuration   : 00:00:00 
NextUpgradeDomain      : 4 
UpgradeDomainsStatus     : { "3" = "InProgress"; 
              "0" = "Completed"; 
              "1" = "Completed"; 
              "2" = "Completed"; 
              "4" = "Pending" } 
UpgradeKind        : Rolling 
RollingUpgradeMode      : Monitored 
FailureAction       : Rollback 
ForceRestart       : False 
UpgradeReplicaSetCheckTimeout   : 49710.06:28:15 
HealthCheckWaitDuration     : 00:00:00 
HealthCheckStableDuration    : 00:02:00 
HealthCheckRetryTimeout     : 00:10:00 
UpgradeDomainTimeout     : 00:30:00 
UpgradeTimeout       : 01:00:00 
ConsiderWarningAsError     : 
MaxPercentUnhealthyPartitionsPerService : 
MaxPercentUnhealthyReplicasPerPartition : 
MaxPercentUnhealthyServices    : 
MaxPercentUnhealthyDeployedApplications : 
ServiceTypeHealthPolicyMap    : 

Dieser Wille berichten auch, wenn es sich in einem Rollback-Zustand befindet.

Es könnte interessant sein, herauszufinden, ob Sie ein Callback/Ereignis oder etwas aus dem Health Monitoring erhalten können, da dies im Grunde das Rollback des Upgrades verursacht.

+0

Das habe ich mir gedacht. Aus Neugier - Haben Sie jemals überwacht, wie lange Ihr Upgrade dauert, um alle App-Services auf allen Knoten bereitzustellen? Scheint, es dauert viel zu lange für mich mit einer App von 4 Diensten und 3 Knoten in unserer Testumgebung –

+0

Das hängt ganz von Ihren Upgrade-Health-Checks ab. Ich denke, dass die Standardeinstellungen so aussehen, dass jede Upgrade-Domain 15 Minuten wartet, bevor sie fortfährt. In unserer Produktionsumgebung dauert es etwa eine Stunde, bis wir das Upgrade vollständig durchgeführt haben. Während des Tests haben wir alle Health-Checks durchgeführt, so dass sie unabhängig von Fehlern usw. ausgeführt werden. Dies dauert einige Minuten –