Introduzione al monitoraggio dell'integrità di Service FabricIntroduction to Service Fabric health monitoring

Con Azure Service Fabric è stato introdotto un modello di integrità che offre funzionalità di valutazione e reporting dell'integrità dettagliate, flessibili ed estendibili.Azure Service Fabric introduces a health model that provides rich, flexible, and extensible health evaluation and reporting. Il modello include il monitoraggio quasi in tempo reale dello stato del cluster e dei servizi in esso eseguiti.The model allows near-real-time monitoring of the state of the cluster and the services running in it. Questo consente di ottenere facilmente informazioni relative all'integrità e correggere i potenziali problemi prima che si propaghino a catena e causino un numero elevato di interruzioni.You can easily obtain health information and correct potential issues before they cascade and cause massive outages. Nel modello tipico i servizi inviano report basati sulla situazione locale e le informazioni vengono aggregate per fornire una panoramica generale a livello di cluster.In the typical model, services send reports based on their local views, and that information is aggregated to provide an overall cluster-level view.

I componenti di Service Fabric usano questo dettagliato modello di integrità per segnalare il proprio stato correnteService Fabric components use this rich health model to report their current state. ed è possibile avvalersi dello stesso meccanismo per segnalare l'integrità delle proprie applicazioni.You can use the same mechanism to report health from your applications. Investendo nella creazione di report sull'integrità di alta qualità con acquisizione delle proprie condizioni personalizzate, è possibile rilevare e risolvere i problemi dell'applicazione in esecuzione con maggiore facilità.If you invest in high-quality health reporting that captures your custom conditions, you can detect and fix issues for your running application much more easily.

Il video seguente di Microsoft Virtual Academy descrive anche i concetti del modello di integrità di Service Fabric e il suo uso:

The following Microsoft Virtual Academy video also describes the Service Fabric health model and how it's used:

Nota

Il sottosistema di integrità è stato introdotto per rispondere alla necessità di aggiornamenti monitorati.We started the health subsystem to address a need for monitored upgrades. Service Fabric offre aggiornamenti monitorati delle applicazioni e dei cluster che garantiscono disponibilità completa, senza tempi di inattività e con un intervento minimo o addirittura nessun intervento da parte dell'utente.Service Fabric provides monitored application and cluster upgrades that ensure full availability, no downtime and minimal to no user intervention. Per raggiungere questi obiettivi, l'aggiornamento controlla l'integrità in base ai criteri di aggiornamento configurati.To achieve these goals, the upgrade checks health based on configured upgrade policies. Un aggiornamento può continuare solo quando l'integrità rientra nelle soglie desiderate.An upgrade can proceed only when health respects desired thresholds. In caso contrario, l'aggiornamento viene sottoposto a rollback o sospeso automaticamente per consentire agli amministratori di risolvere il problema.Otherwise, the upgrade is either automatically rolled back or paused to give administrators a chance to fix the issues. Per altre informazioni sugli aggiornamenti delle applicazioni, vedere questo articolo.To learn more about application upgrades, see this article.

Archivio integritàHealth store

L'archivio integrità mantiene le informazioni di integrità relative alle entità del cluster per facilitarne il recupero e la valutazione.The health store keeps health-related information about entities in the cluster for easy retrieval and evaluation. Viene implementato come servizio con stato persistente di Service Fabric per garantire la scalabilità e una disponibilità elevata.It is implemented as a Service Fabric persisted stateful service to ensure high availability and scalability. L'archivio integrità fa parte dell'applicazione fabric:/System ed è disponibile quando il cluster è operativo.The health store is part of the fabric:/System application, and it is available when the cluster is up and running.

Entità e gerarchia di integritàHealth entities and hierarchy

Le entità di integrità sono organizzate in una gerarchia logica che acquisisce le interazioni e le dipendenze tra le diverse entità.The health entities are organized in a logical hierarchy that captures interactions and dependencies among different entities. L'archivio integrità crea automaticamente la gerarchia e le entità di integrità in base ai report ricevuti dai componenti di Service Fabric.The health store automatically builds health entities and hierarchy based on reports received from Service Fabric components.

Le entità di integrità corrispondono alle entità di Service Fabric.The health entities mirror the Service Fabric entities. Ad esempio, un'entità applicazione di integrità corrisponde a un'istanza di applicazione distribuita nel cluster, mentre un'entità nodo di integrità corrisponde a un nodo del cluster di Service Fabric. La gerarchia di integrità acquisisce le interazioni delle entità di sistema e costituisce la base per una valutazione avanzata dell'integrità.(For example, health application entity matches an application instance deployed in the cluster, while health node entity matches a Service Fabric cluster node.) The health hierarchy captures the interactions of the system entities, and it is the basis for advanced health evaluation. Per informazioni sui concetti chiave di Service Fabric, vedere la panoramica tecnica di Service Fabric.You can learn about key Service Fabric concepts in Service Fabric technical overview. Per altre informazioni sull'applicazione, vedere il modello di applicazione di Service Fabric.For more on application, see Service Fabric application model.

Le entità e la gerarchia di integrità consentono di eseguire in modo efficace la creazione di report, il debug e il monitoraggio del cluster e delle applicazioni.The health entities and hierarchy allow the cluster and applications to be effectively reported, debugged, and monitored. Il modello di integrità offre un'accurata rappresentazione granulare dell'integrità dei numerosi elementi mobili all'interno del cluster.The health model provides an accurate, granular representation of the health of the many moving pieces in the cluster.

Entità di integrità.Health entities. Le entità di integrità, organizzate in una gerarchia basata su relazioni padre-figlio.The health entities, organized in a hierarchy based on parent-child relationships.

Le entità di integrità sono le seguenti:The health entities are:

  • Cluster.Cluster. Rappresenta l'integrità di un cluster di Service Fabric.Represents the health of a Service Fabric cluster. I report sull'integrità del cluster illustrano le condizioni che interessano l'intero cluster.Cluster health reports describe conditions that affect the entire cluster. Queste condizioni interessano più entità nel cluster o il cluster stesso.These conditions affect multiple entities in the cluster or the cluster itself. In base alla condizione, il reporter non può restringere il problema a uno o più elementi figlio non integri.Based on the condition, the reporter can't narrow the issue down to one or more unhealthy children. ad esempio lo split brain del cluster a causa di problemi di comunicazione o di partizionamento della rete.Examples include the brain of the cluster splitting due to network partitioning or communication issues.
  • Nodo.Node. Rappresenta l'integrità di un nodo di Service Fabric.Represents the health of a Service Fabric node. I report sull'integrità del nodo illustrano le condizioni che influiscono sulla funzionalità del nodo.Node health reports describe conditions that affect the node functionality. In genere influiscono su tutte le entità distribuite in esecuzione su di esso.They typically affect all the deployed entities running on it. Ad esempio, un nodo con spazio su disco non sufficiente o con problemi relativi ad altre proprietà a livello di computer, come la memoria o le connessioni, oppure la presenza di un nodo non attivo.Examples include node out of disk space (or other machine-wide properties, such as memory, connections) and when a node is down. L'entità nodo è identificata dal nome del nodo (stringa).The node entity is identified by the node name (string).
  • Applicazione.Application. Rappresenta l'integrità di un'istanza di applicazione in esecuzione nel cluster.Represents the health of an application instance running in the cluster. I report sull'integrità dell'applicazione illustrano le condizioni che influiscono sull'integrità generale dell'applicazioneApplication health reports describe conditions that affect the overall health of the application. e non possono essere limitati a singoli elementi figlio, servizi o applicazioni distribuite.They can't be narrowed down to individual children (services or deployed applications). Ad esempio, indicano l'interazione end-to-end tra diversi servizi nell'applicazione.Examples include the end-to-end interaction among different services in the application. L'entità applicazione è identificata dal nome dell'applicazione (URI).The application entity is identified by the application name (URI).
  • Servizio.Service. Rappresenta l'integrità di un servizio in esecuzione nel cluster.Represents the health of a service running in the cluster. I report sull'integrità del servizio illustrano le condizioni che interessano l'integrità generale del servizio.Service health reports describe conditions that affect the overall health of the service. Il reporter non può restringere il problema a una partizione o una replica non integra.The reporter can't narrow down the issue to an unhealthy partition or replica. Ad esempio, indicano una configurazione del servizio, una porta o una condivisione file esterna, che causa problemi a tutte le partizioni.Examples include a service configuration (such as port or external file share) that is causing issues for all partitions. L'entità servizio è identificata dal nome del servizio (URI).The service entity is identified by the service name (URI).
  • Partizione.Partition. Rappresenta l'integrità di una partizione del servizio.Represents the health of a service partition. I report sull'integrità della partizione illustrano le condizioni che influiscono sull'intero set di repliche.Partition health reports describe conditions that affect the entire replica set. Ad esempio, indicano quando un numero di repliche è al di sotto del conteggio target o quando una partizione mostra una perdita di quorum.Examples include when the number of replicas is below target count and when a partition is in quorum loss. L'entità partizione è identificata dall'ID partizione (GUID).The partition entity is identified by the partition ID (GUID).
  • Replica.Replica. Rappresenta l'integrità di una replica di un servizio con stato o di un'istanza di un servizio senza stato.Represents the health of a stateful service replica or a stateless service instance. La replica è l'unità più piccola di cui i watchdog e i componenti di sistema possono segnalare la condizione per un'applicazione.The replica is the smallest unit that watchdogs and system components can report on for an application. Nel caso di servizi con stato, ad esempio, una replica primaria che non è in grado di replicare le operazioni nelle repliche secondarie oppure un processo di replica lento.For stateful services, examples include a primary replica that can't replicate operations to secondaries and slow replication. Un'istanza senza stato può segnalare se le risorse si stanno esaurendo o se presenta problemi di connettività.Also, a stateless instance can report when it is running out of resources or has connectivity issues. L'entità replica è identificata dall'ID partizione (GUID) e dall'ID replica o dall'ID istanza (long).The replica entity is identified by the partition ID (GUID) and the replica or instance ID (long).
  • Applicazione distribuita.DeployedApplication. Rappresenta l'integrità di un' applicazione in esecuzione in un nodo.Represents the health of an application running on a node. I report sull'integrità dell'applicazione distribuita illustrano le condizioni specifiche dell'applicazione nel nodo che non possono essere ricondotte ai pacchetti servizio distribuiti nello stesso nodo.Deployed application health reports describe conditions specific to the application on the node that can't be narrowed down to service packages deployed on the same node. Ad esempio, errori a causa dei quali non è possibile scaricare il pacchetto dell'applicazione nel nodo e problemi di configurazione delle entità di sicurezza dell'applicazione nel nodo.Examples include errors when application package can't be downloaded on that node and issues setting up application security principals on the node. L'applicazione distribuita è identificata dal nome dell'applicazione (URI) e dal nome del nodo (stringa).The deployed application is identified by application name (URI) and node name (string).
  • Pacchetto servizio distribuito.DeployedServicePackage. Rappresenta l'integrità di un pacchetto servizio in esecuzione in un nodo del cluster.Represents the health of a service package running on a node in the cluster. Illustra le condizioni specifiche di un pacchetto servizio che non influiscono sugli altri pacchetti servizio nello stesso nodo per la stessa applicazione.It describes conditions specific to a service package that do not affect the other service packages on the same node for the same application. Ad esempio, indica che non è possibile avviare un pacchetto di codice nel pacchetto del servizio o leggere un pacchetto di configurazione.Examples include a code package in the service package that cannot be started and a configuration package that cannot be read. Il pacchetto del servizio distribuito è identificato dal nome dell'applicazione (URI), dal nome del nodo (stringa), dal nome del manifesto del servizio (stringa) e dall'ID di attivazione del pacchetto del servizio (stringa).The deployed service package is identified by application name (URI), node name (string), service manifest name (string), and service package activation ID (string).

La granularità del modello di integrità facilita il rilevamento e l'eliminazione dei problemi.The granularity of the health model makes it easy to detect and correct issues. Ad esempio, se un servizio non risponde, è possibile segnalare che l'istanza dell'applicazione non è integra.For example, if a service is not responding, it is feasible to report that the application instance is unhealthy. La segnalazione a tale livello non è tuttavia l'approccio ideale, perché il problema potrebbe non riguardare tutti i servizi all'interno dell'applicazione.Reporting at that level is not ideal, however, because the issue might not be affecting all the services within that application. Il report dovrebbe essere applicato al servizio non integro oppure a una partizione figlio specifica a cui eventualmente puntano altre informazioni.The report should be applied to the unhealthy service or to a specific child partition, if more information points to that partition. I dati vengono esposti automaticamente attraverso la gerarchia e la partizione non integra sarà visibile a livello di servizio e di applicazione.The data automatically surfaces through the hierarchy, and an unhealthy partition is made visible at service and application levels. Questa aggregazione di individuare e risolvere più rapidamente la causa radice del problema.This aggregation helps to pinpoint and resolve the root cause of the issue more quickly.

La gerarchia di integrità è costituita da relazioni padre-figlio.The health hierarchy is composed of parent-child relationships. Un cluster è costituito da nodi e applicazioni.A cluster is composed of nodes and applications. Le applicazioni hanno servizi e applicazioni distribuiteApplications have services and deployed applications. e le applicazioni distribuite hanno pacchetti del servizio distribuiti.Deployed applications have deployed service packages. I servizi dispongono di partizioni e ogni partizione dispone di una o più repliche.Services have partitions, and each partition has one or more replicas. Tra i nodi e le entità distribuite esiste una relazione speciale.There is a special relationship between nodes and deployed entities. Un nodo non integro in base alla segnalazione effettuata dal relativo componente di sistema autorevole (servizio Gestione failover) influisce sulle applicazioni distribuite, sui pacchetti del servizio e sulle repliche distribuite.An unhealthy node as reported by its authority system component, the Failover Manager service, affects the deployed applications, service packages, and replicas deployed on it.

La gerarchia di integrità rappresenta lo stato più recente del sistema in base agli ultimi report sull'integrità, che forniscono informazioni quasi in tempo reale.The health hierarchy represents the latest state of the system based on the latest health reports, which is almost real-time information. I watchdog interni ed esterni possono segnalare la condizione delle stesse entità in base alla logica specifica dell'applicazione o a condizioni monitorate personalizzate.Internal and external watchdogs can report on the same entities based on application-specific logic or custom monitored conditions. I report utente coesistono con i report di sistema.User reports coexist with the system reports.

Durante la progettazione di un servizio cloud di grandi dimensioni, pianificare un investimento per i report e gli interventi relativi all'integrità.Plan to invest in how to report and respond to health during the design of a large cloud service. Questo investimento iniziale semplifica il debug, il monitoraggio e la gestione del servizio.This up-front investement makes the service easier to debug, monitor, and operate.

Stati di integritàHealth states

Service Fabric usa tre stati di integrità per indicare se un'entità è integra o meno: OK, Warning ed Error.Service Fabric uses three health states to describe whether an entity is healthy or not: OK, warning, and error. Tutti i report inviati all'archivio integrità devono specificare uno di questi stati.Any report sent to the health store must specify one of these states. Come risultato della valutazione dell'integrità viene restituito uno di tali stati.The health evaluation result is one of these states.

I possibili stati di integrità sono:The possible health states are:

  • OK.OK. L'entità è integra.The entity is healthy. Non vengono segnalati problemi noti per l'entità o i relativi elementi figlio (se esistenti).There are no known issues reported on it or its children (when applicable).
  • Avviso.Warning. L'entità ha alcuni problemi, ma può comunque funzionare correttamente.The entity has some issues, but it can still function correctly. Ad esempio, si verificano ritardi che però non causano ancora problemi funzionali.For example, there are delays, but they do not cause any functional issues yet. In alcuni casi, la condizione di avviso potrebbe risolversi automaticamente senza l'intervento esterno.In some cases, the warning condition may fix itself without external intervention. In questi casi, i report sull'integrità forniscono informazioni e visibilità sulla situazione.In these cases, health reports raise awareness and provide visibility into what is going on. In altri casi tale condizione può trasformarsi in un problema serio senza l'intervento dell'utente.In other cases, the warning condition may degrade into a severe problem without user intervention.
  • Error.Error. L'entità non è integra.The entity is unhealthy. È necessario intervenire per correggere lo stato dell'entità, che non può funzionare correttamente.Action should be taken to fix the state of the entity, because it can't function properly.
  • Unknown.Unknown. L'entità non è presente nell'archivio integrità.The entity doesn't exist in the health store. È possibile ottenere questo risultato dalle query distribuite che uniscono i risultati da più componenti.This result can be obtained from the distributed queries that merge results from multiple components. Ad esempio, la query per ottenere l'elenco dei nodi passa a FailoverManager, ClusterManager e HealthManager, mentre la query per ottenere l'elenco delle applicazioni passa a ClusterManager e HealthManager.For example, the get node list query goes to FailoverManager, ClusterManager, and HealthManager; get application list query goes to ClusterManager and HealthManager. Tali query uniscono i risultati provenienti da più componenti di sistema.These queries merge results from multiple system components. Se un altro componente di sistema restituisce un'entità non presente nell'archivio integrità, il risultato unito ha uno stato di integrità sconosciuto.If another system component returns an entity that is not present in health store, the merged result has unknown health state. Un'entità non è nell'archivio perché non sono ancora stati elaborati i report sull'integrità o è stata eseguita la pulizia dell'entità dopo l'eliminazione.An entity is not in store because health reports have not yet been processed or the entity has been cleaned up after deletion.

Criteri di integritàHealth policies

L'archivio integrità applica criteri di integrità per determinare se un'entità è integra in base ai relativi report e agli elementi figlio.The health store applies health policies to determine whether an entity is healthy based on its reports and its children.

Nota

I criteri di integrità possono essere specificati nel manifesto del cluster, per la valutazione dell'integrità del cluster e dei nodi, o nel manifesto dell'applicazione, per la valutazione dell'applicazione e degli eventuali elementi figlio.Health policies can be specified in the cluster manifest (for cluster and node health evaluation) or in the application manifest (for application evaluation and any of its children). Le richieste di valutazione dell'integrità possono anche passare criteri personalizzati, usati solo per la valutazione in questione.Health evaluation requests can also pass in custom health evaluation policies, which are used only for that evaluation.

Per impostazione predefinita, per la relazione gerarchica padre-figlio Service Fabric applica regole severe, in base alle quali tutti gli elementi devono essere integri.By default, Service Fabric applies strict rules (everything must be healthy) for the parent-child hierarchical relationship. Se anche uno solo degli elementi figlio presenta un evento non integro, l'elemento padre è considerato non integro.If even one of the children has one unhealthy event, the parent is considered unhealthy.

Criteri di integrità del clusterCluster health policy

I criteri di integrità del cluster vengono usati per valutare lo stato di integrità del cluster e dei nodi.The cluster health policy is used to evaluate the cluster health state and node health states. e possono essere definiti nel manifesto del cluster.The policy can be defined in the cluster manifest. Se non sono definiti, vengono usati i criteri predefiniti, in base ai quali non sono tollerati errori.If it is not present, the default policy (zero tolerated failures) is used. I criteri di integrità del cluster includono:The cluster health policy contains:

  • ConsiderWarningAsError.ConsiderWarningAsError. Specifica se considerare i report sull'integrità di tipo Warning come errori durante la valutazione dell'integrità.Specifies whether to treat warning health reports as errors during health evaluation. Valore predefinito: false.Default: false.
  • MaxPercentUnhealthyApplications.MaxPercentUnhealthyApplications. Specifica la percentuale massima tollerata di applicazioni che possono risultare non integre prima che per il cluster venga impostato lo stato Error.Specifies the maximum tolerated percentage of applications that can be unhealthy before the cluster is considered in error.
  • MaxPercentUnhealthyNodes.MaxPercentUnhealthyNodes. Specifica la percentuale massima tollerata di nodi che possono risultare non integri prima che per il cluster venga impostato lo stato Error.Specifies the maximum tolerated percentage of nodes that can be unhealthy before the cluster is considered in error. Questa percentuale dovrà essere configurata in modo da tenere conto del fatto che in cluster di grandi dimensioni sono sempre presenti nodi inattivi o in fase di riparazione.In large clusters, some nodes are always down or out for repairs, so this percentage should be configured to tolerate that.
  • ApplicationTypeHealthPolicyMap.ApplicationTypeHealthPolicyMap. La mappa dei criteri di integrità dei tipi di applicazioni può essere usata durante la valutazione dell'integrità del cluster per descrivere i tipi di applicazioni speciali.The application type health policy map can be used during cluster health evaluation to describe special application types. Per impostazione predefinita, tutte le applicazioni vengono inserite in un pool e valutate con MaxPercentUnhealthyApplications.By default, all applications are put into a pool and evaluated with MaxPercentUnhealthyApplications. I tipi di applicazioni che devono essere trattati in modo diverso possono essere estratti dal pool globaleIf some application types should be treated differently, they can be taken out of the global pool. ed essere invece valutati in base alle percentuali associate al nome del tipo di applicazione nella mappa.Instead, they are evaluated against the percentages associated with their application type name in the map. Ad esempio, in un cluster esistono migliaia di applicazioni di tipi diversi e alcune istanze di applicazioni di controllo di un tipo di applicazione speciale.For example, in a cluster there are thousands of applications of different types, and a few control application instances of a special application type. Le applicazioni di controllo non devono mai riscontrare errori.The control applications should never be in error. È possibile specificare l'impostazione globale di MaxPercentUnhealthyApplications al 20% per tollerare alcuni errori, impostando però MaxPercentUnhealthyApplications su 0 per il tipo di applicazione "ControlApplicationType".You can specify global MaxPercentUnhealthyApplications to 20% to tolerate some failures, but for the application type "ControlApplicationType" set the MaxPercentUnhealthyApplications to 0. In questo modo, se alcune delle numerose applicazioni non sono integre, ma si trovano al di sotto della percentuale di non integrità globale, il cluster verrà valutato come Warning.This way, if some of the many applications are unhealthy, but below the global unhealthy percentage, the cluster would be evaluated to Warning. Uno stato di integrità Warning non influisce sull'aggiornamento del cluster o su altri tipi di monitoraggio attivati dallo stato di integrità Error.A warning health state does not impact cluster upgrade or other monitoring triggered by Error health state. Una sola applicazione di controllo in errore rende tuttavia il cluster non integro attivando, a seconda della configurazione di aggiornamento, il rollback o la sospensione dell'aggiornamento.But even one control application in error would make cluster unhealthy, which triggers roll back or pauses the cluster upgrade, depending on the upgrade configuration. Per i tipi di applicazioni definiti nella mappa, tutte le istanze delle applicazioni vengono estratte dal pool globale di applicazioni.For the application types defined in the map, all application instances are taken out of the global pool of applications. Vengono valutate in base al numero totale di applicazioni del tipo di applicazione, usando il valore MaxPercentUnhealthyApplications specifico della mappa.They are evaluated based on the total number of applications of the application type, using the specific MaxPercentUnhealthyApplications from the map. Tutte le altre applicazioni rimangono nel pool globale e vengono valutate con MaxPercentUnhealthyApplications.All the rest of the applications remain in the global pool and are evaluated with MaxPercentUnhealthyApplications.

L'esempio seguente è un estratto del manifesto di un cluster.The following example is an excerpt from a cluster manifest. Per definire le voci nella mappa dei tipi di applicazioni, anteporre "ApplicationTypeMaxPercentUnhealthyApplications-" al nome del parametro, seguito dal nome del tipo di applicazione.To define entries in the application type map, prefix the parameter name with "ApplicationTypeMaxPercentUnhealthyApplications-", followed by the application type name.

<FabricSettings>
  <Section Name="HealthManager/ClusterHealthPolicy">
    <Parameter Name="ConsiderWarningAsError" Value="False" />
    <Parameter Name="MaxPercentUnhealthyApplications" Value="20" />
    <Parameter Name="MaxPercentUnhealthyNodes" Value="20" />
    <Parameter Name="ApplicationTypeMaxPercentUnhealthyApplications-ControlApplicationType" Value="0" />
  </Section>
</FabricSettings>

Criteri di integrità dell'applicazioneApplication health policy

I criteri di integrità delle applicazioni descrivono come viene eseguita la valutazione dell'aggregazione degli eventi e degli stati degli elementi figlio per le applicazioni e i relativi elementi figlio.The application health policy describes how the evaluation of events and child-states aggregation is done for applications and their children. Possono essere definiti nel manifesto delle applicazioni, ApplicationManifest.xml, nel pacchetto delle applicazioni.It can be defined in the application manifest, ApplicationManifest.xml, in the application package. Se non vengono specificati criteri, Service Fabric considera l'entità come non integra se presenta un report sull'integrità o un elemento figlio con stato Warning o Error.If no policies are specified, Service Fabric assumes that the entity is unhealthy if it has a health report or a child at the warning or error health state. I criteri configurabili sono i seguenti:The configurable policies are:

  • ConsiderWarningAsError.ConsiderWarningAsError. Specifica se considerare i report sull'integrità di tipo Warning come errori durante la valutazione dell'integrità.Specifies whether to treat warning health reports as errors during health evaluation. Valore predefinito: false.Default: false.
  • MaxPercentUnhealthyDeployedApplications.MaxPercentUnhealthyDeployedApplications. Specifica la percentuale massima tollerata di applicazioni distribuite che possono risultare non integre prima che per l'applicazione venga impostato lo stato Error.Specifies the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error. Tale percentuale viene calcolata dividendo il numero delle applicazioni distribuite non integre per il numero dei nodi in cui tali applicazioni sono attualmente distribuite nel cluster.This percentage is calculated by dividing the number of unhealthy deployed applications over the number of nodes that the applications are currently deployed on in the cluster. Il calcolo viene arrotondato per eccesso per tollerare un errore su un numero limitato di nodi.The computation rounds up to tolerate one failure on small numbers of nodes. Percentuale predefinita: zero.Default percentage: zero.
  • DefaultServiceTypeHealthPolicy.DefaultServiceTypeHealthPolicy. Specifica i criteri di integrità predefiniti per il tipo di servizio, che sostituiscono i criteri di integrità predefiniti usati per tutti i tipi di servizi nell'applicazione.Specifies the default service type health policy, which replaces the default health policy for all service types in the application.
  • ServiceTypeHealthPolicyMap.ServiceTypeHealthPolicyMap. Fornisce una mappa dei criteri di integrità del servizio per tipo di servizio.Provides a map of service health policies per service type. Questi criteri sostituiscono i criteri di integrità del tipo di servizio predefiniti per ogni tipo di servizio specificato.These policies replace the default service type health policies for each specified service type. Se un'applicazione include un tipo di servizio gateway senza stato e un tipo di servizio motore con stato, ad esempio, è possibile configurare in modo diverso i criteri di integrità per la relativa valutazione.For example, if an application has a stateless gateway service type and a stateful engine service type, you can configure the health policies for their evaluation differently. Specificando i criteri in base al tipo di servizio è possibile ottenere un controllo più granulare sull'integrità del servizio.When you specify policy per service type, you can gain more granular control of the health of the service.

Criteri di integrità del tipo di servizioService type health policy

I criteri di integrità dei tipi di servizi specificano come valutare e aggregare i servizi e i relativi elementi figlio.The service type health policy specifies how to evaluate and aggregate the services and the children of services. I criteri includono:The policy contains:

  • MaxPercentUnhealthyPartitionsPerService.MaxPercentUnhealthyPartitionsPerService. Specifica la percentuale massima tollerata di partizioni che possono risultare non integre prima che un servizio venga considerato non integro.Specifies the maximum tolerated percentage of unhealthy partitions before a service is considered unhealthy. Percentuale predefinita: zero.Default percentage: zero.
  • MaxPercentUnhealthyReplicasPerPartition.MaxPercentUnhealthyReplicasPerPartition. Specifica la percentuale massima tollerata di repliche che possono risultare non integre prima che una partizione venga considerata non integra.Specifies the maximum tolerated percentage of unhealthy replicas before a partition is considered unhealthy. Percentuale predefinita: zero.Default percentage: zero.
  • MaxPercentUnhealthyServices.MaxPercentUnhealthyServices. Specifica la percentuale massima tollerata di servizi che possono risultare non integri prima che l'applicazione venga considerata non integra.Specifies the maximum tolerated percentage of unhealthy services before the application is considered unhealthy. Percentuale predefinita: zero.Default percentage: zero.

L'esempio seguente è un estratto del manifesto di un'applicazione:The following example is an excerpt from an application manifest:

    <Policies>
        <HealthPolicy ConsiderWarningAsError="true" MaxPercentUnhealthyDeployedApplications="20">
            <DefaultServiceTypeHealthPolicy
                   MaxPercentUnhealthyServices="0"
                   MaxPercentUnhealthyPartitionsPerService="10"
                   MaxPercentUnhealthyReplicasPerPartition="0"/>
            <ServiceTypeHealthPolicy ServiceTypeName="FrontEndServiceType"
                   MaxPercentUnhealthyServices="0"
                   MaxPercentUnhealthyPartitionsPerService="20"
                   MaxPercentUnhealthyReplicasPerPartition="0"/>
            <ServiceTypeHealthPolicy ServiceTypeName="BackEndServiceType"
                   MaxPercentUnhealthyServices="20"
                   MaxPercentUnhealthyPartitionsPerService="0"
                   MaxPercentUnhealthyReplicasPerPartition="0">
            </ServiceTypeHealthPolicy>
        </HealthPolicy>
    </Policies>

Valutazione dell'integritàHealth evaluation

Gli utenti e i servizi automatizzati possono valutare l'integrità di qualsiasi entità in qualsiasi momento.Users and automated services can evaluate health for any entity at any time. Per valutare l'integrità di un'entità, l'archivio integrità aggrega tutti i report sull'integrità di tale entità e valuta tutti i relativi elementi figlio (se esistenti).To evaluate an entity's health, the health store aggregates all health reports on the entity and evaluates all its children (when applicable). L'algoritmo di aggregazione dell'integrità usa criteri di integrità che specificano come valutare i report e come aggregare gli stati di integrità degli elementi figlio (se disponibili).The health aggregation algorithm uses health policies that specify how to evaluate health reports and how to aggregate child health states (when applicable).

Aggregazione dei report sull'integritàHealth report aggregation

Per una stessa entità possono essere disponibili più report sull'integrità inviati da generatori diversi (componenti di sistema o watchdog) relativamente a proprietà diverse.One entity can have multiple health reports sent by different reporters (system components or watchdogs) on different properties. L'aggregazione usa i criteri di integrità associati, in particolare il membro ConsiderWarningAsError dei criteri di integrità dell'applicazione o del cluster,The aggregation uses the associated health policies, in particular the ConsiderWarningAsError member of application or cluster health policy. che specifica come valutare i report di tipo Warning.ConsiderWarningAsError specifies how to evaluate warnings.

Lo stato di integrità aggregato viene attivato dai report sull'integrità peggiori relativi all'entità.The aggregated health state is triggered by the worst health reports on the entity. Se è presente almeno un report sull'integrità di tipo Error, lo stato di integrità aggregato sarà Error.If there is at least one error health report, the aggregated health state is an error.

Aggregazione dei report sull'integrità con report di tipo Error.

Un'entità di integrità con uno o più report sull'integrità di tipo Error viene valutata come Error.A health entity that has one or more error health reports is evaluated as Error. La stesso accade in caso di report sull'integrità scaduto, indipendentemente dallo stato di integrità.The same is true for an expired health report, regardless of its health state.

Se non sono presenti report di tipo Error ma uno o più report di tipo Warning, lo stato di integrità aggregato sarà Warning o Error, a seconda del flag dei criteri ConsiderWarningAsError.If there are no error reports and one or more warnings, the aggregated health state is either warning or error, depending on the ConsiderWarningAsError policy flag.

Aggregazione dei report sull'integrità con report di tipo Warning e ConsiderWarningAsError impostato su false.

Aggregazione dei report sull'integrità con report di tipo Warning e ConsiderWarningAsError impostato su false (valore predefinito).Health report aggregation with warning report and ConsiderWarningAsError set to false (default).

Aggregazione dell'integrità degli elementi figlioChild health aggregation

Lo stato di integrità aggregato di un'entità riflette gli stati di integrità degli elementi figlio (se esistenti).The aggregated health state of an entity reflects the child health states (when applicable). Per l'algoritmo di aggregazione degli stati degli elementi figlio vengono usati i criteri di integrità applicabili in base al tipo di entità.The algorithm for aggregating child health states uses the health policies applicable based on the entity type.

Aggregazione dell'integrità delle entità figlio.

Aggregazione degli elementi figlio in base ai criteri di integrità.Child aggregation based on health policies.

Dopo aver eseguito la valutazione di tutti gli elementi figlio, l'archivio integrità ne aggrega gli stati di integrità in base alla percentuale massima configurata di elementi figlio non integri.After the health store has evaluated all the children, it aggregates their health states based on the configured maximum percentage of unhealthy children. Tale percentuale è ricavata dai criteri in base al tipo di entità e di elemento figlio.This percentage is taken from the policy based on the entity and child type.

  • Se lo stato è OK per tutti gli elementi figlio, lo stato di integrità aggregato di tali elementi sarà OK.If all children have OK states, the child aggregated health state is OK.
  • Se insieme a elementi figlio con stato OK sono presenti elementi figlio con stato Warning, lo stato di integrità aggregato di tali elementi sarà Warning.If children have both OK and warning states, the child aggregated health state is warning.
  • Se sono presenti elementi figlio con stato Error che non rientrano nella percentuale massima di elementi figlio non integri consentita, lo stato di integrità aggregato sarà Error.If there are children with error states that do not respect the maximum allowed percentage of unhealthy children, the aggregated health state is an error.
  • Se gli elementi figlio con stato Error non superano la percentuale massima di elementi figlio non integri consentita, lo stato di integrità aggregato sarà Warning.If the children with error states respect the maximum allowed percentage of unhealthy children, the aggregated health state is warning.

Creazione di report sull'integritàHealth reporting

I componenti di sistema, le applicazioni Fabric di sistema e i watchdog interni/esterni possono generare report in relazione alle entità di Service Fabric.System components, System Fabric applications, and internal/external watchdogs can report against Service Fabric entities. I generatori di report determinano localmente l'integrità delle entità monitorate in base alle condizioni sottoposte a monitoraggio.The reporters make local determinations of the health of the monitored entities, based on the conditions they are monitoring. Non considerano alcuno stato globale o dato aggregatoThey don't need to look at any global state or aggregate data. Il comportamento desiderato prevede generatori di report semplici e non organismi complessi che devono tenere conto di numerosi aspetti per decidere quali informazioni inviare.The desired behavior is to have simple reporters, and not complex organisms that need to look at many things to infer what information to send.

Per inviare i dati di integrità all'archivio integrità, i generatori di report devono identificare l'entità interessata e creare un report sull'integrità.To send health data to the health store, a reporter needs to identify the affected entity and create a health report. Per inviare il report, usare l'API FabricClient.HealthClient.ReportHealth, le API di integrità dei report esposte negli oggetti Partition o CodePackageActivationContext, i cmdlet di PowerShell o REST.To send the report, use the FabricClient.HealthClient.ReportHealth API, report health APIs exposed on the Partition or CodePackageActivationContext objects, PowerShell cmdlets, or REST.

Report sull'integritàHealth reports

I report sull'integrità per ognuna delle entità incluse nel cluster contengono le informazioni seguenti:The health reports for each of the entities in the cluster contain the following information:

  • SourceId.SourceId. Stringa che identifica in modo univoco il generatore di report per l'evento di integrità.A string that uniquely identifies the reporter of the health event.
  • Entity identifier.Entity identifier. Identifica l'entità a cui viene applicato il report.Identifies the entity where the report is applied. Varia in base al tipo di entità:It differs based on the entity type:

    • Cluster.Cluster. Nessuna.None.
    • Node.Node. Nome del nodo (stringa).Node name (string).
    • Application.Application. Nome dell'applicazione (URI).Application name (URI). Rappresenta il nome dell'istanza di applicazione distribuita nel cluster.Represents the name of the application instance deployed in the cluster.
    • Service.Service. Nome del servizio (URI).Service name (URI). Rappresenta il nome dell'istanza di servizio distribuita nel cluster.Represents the name of the service instance deployed in the cluster.
    • Partition.Partition. ID della partizione (GUID).Partition ID (GUID). Rappresenta l'identificatore univoco della partizione.Represents the partition unique identifier.
    • Replica.Replica. ID della replica del servizio con stato o ID dell'istanza del servizio senza stato (INT64).The stateful service replica ID or the stateless service instance ID (INT64).
    • DeployedApplication.DeployedApplication. Nome dell'applicazione (URI) e nome del nodo (stringa).Application name (URI) and node name (string).
    • DeployedServicePackage.DeployedServicePackage. Nome dell'applicazione (URI), nome del nodo (stringa) e nome del manifesto del servizio (stringa).Application name (URI), node name (string), and service manifest name (string).
  • Property.Property. Stringa (non un'enumerazione fissa) che consente al generatore di report di categorizzare l'evento di integrità per una proprietà specifica dell'entità.A string (not a fixed enumeration) that allows the reporter to categorize the health event for a specific property of the entity. Ad esempio, il reporter A può segnalare l'integrità di Node01 in base alla proprietà "Storage", mentre il reporter B può segnalare l'integrità di Node01 in base alla proprietà "Connectivity".For example, reporter A can report the health of the Node01 "Storage" property and reporter B can report the health of the Node01 "Connectivity" property. Entrambi questi report vengono considerati come eventi di integrità separati nell'archivio integrità per l'entità Node01.In the health store, these reports are treated as separate health events for the Node01 entity.
  • Description.Description. Stringa che consente a un generatore di report di fornire informazioni dettagliate sull'evento di integrità.A string that allows a reporter to provide detailed information about the health event. SourceId, Property e HealthState descrivono il report in modo esauriente.SourceId, Property, and HealthState should fully describe the report. Description aggiunge informazioni leggibili sul reportThe description adds human-readable information about the report. semplificando la comprensione del report sull'integrità da parte di amministratori e utenti.The text makes it easier for administrators and users to understand the health report.
  • HealthState.HealthState. Enumerazione che descrive lo stato di integrità del report.An enumeration that describes the health state of the report. I valori accettati sono OK, Warning ed Error.The accepted values are OK, Warning, and Error.
  • TimeToLive.TimeToLive. Intervallo di tempo che indica per quanto è valido il report sull'integrità.A timespan that indicates how long the health report is valid. Insieme a RemoveWhenExpired, indica all'archivio integrità come valutare gli eventi scaduti.Coupled with RemoveWhenExpired, it lets the health store know how to evaluate expired events. Per impostazione predefinita, il valore è infinito e quindi il report è sempre valido.By default, the value is infinite, and the report is valid forever.
  • RemoveWhenExpired.RemoveWhenExpired. Valore booleano.A Boolean. Se è impostato su true, il report sull'integrità scaduto viene rimosso automaticamente dall'archivio integrità e non incide sulla valutazione dell'integrità dell'entità.If set to true, the expired health report is automatically removed from the health store, and the report doesn't impact entity health evaluation. Viene usato quando il report è valido solo per un periodo di tempo specificato e non deve essere eliminato esplicitamente dal generatore di report. Viene usato anche per eliminare i report dall'archivio integrità. Ad esempio, se un watchdog viene modificato e smette di inviare report con la proprietà e l'origine precedenti.Used when the report is valid for a specified period of time only, and the reporter doesn't need to explicitly clear it out. It's also used to delete reports from the health store (for example, a watchdog is changed and stops sending reports with previous source and property). Può inviare un report con un valore TimeToLive basso e RemoveWhenExpired per cancellare qualsiasi stato precedente dall'archivio integrità.It can send a report with a brief TimeToLive along with RemoveWhenExpired to clear up any previous state from the health store. Se il valore è impostato su false, il report scaduto viene considerato come un errore nella valutazione dell'integrità.If the value is set to false, the expired report is treated as an error on the health evaluation. Il valore false indica all'archivio integrità che l'origine dovrebbe inviare periodicamente informazioni su questa proprietà.The false value signals to the health store that the source should report periodically on this property. In caso contrario, il watchdog potrebbe avere un problema.If it doesn't, then there must be something wrong with the watchdog. L'integrità del watchdog viene acquisita considerando l'evento come un errore.The watchdog's health is captured by considering the event as an error.
  • SequenceNumber.SequenceNumber. Numero intero positivo che deve essere sempre crescente, perché rappresenta l'ordine dei report.A positive integer that needs to be ever-increasing, it represents the order of the reports. Viene usato dall'archivio integrità per rilevare i report non aggiornati, ricevuti in ritardo a causa di ritardi sulla rete o di altri problemi.It is used by the health store to detect stale reports that are received late because of network delays or other issues. I report vengono rifiutati se il numero di sequenza è minore o uguale all'ultimo numero applicato per la stessa entità, origine e proprietà.A report is rejected if the sequence number is less than or equal to the most recently applied number for the same entity, source, and property. Se non è specificato, il numero di sequenza viene generato automaticamente.If it is not specified, the sequence number is generated automatically. È necessario inserire il numero di sequenza solo quando si inviano report sulle transizioni di stato.It is necessary to put in the sequence number only when reporting on state transitions. In questo caso, l'origine deve ricordare i report inviati e mantenere le informazioni per recuperarle in caso di failover.In this situation, the source needs to remember which reports it sent and keep the information for recovery on failover.

SourceId, l'identificatore dell'entità, Property e HealthState sono dati obbligatori per tutti i report sull'integrità.These four pieces of information--SourceId, entity identifier, Property, and HealthState--are required for every health report. La stringa SourceId non può iniziare con il prefisso "System.", che è riservato ai report di sistema.The SourceId string is not allowed to start with the prefix "System.", which is reserved for system reports. Per la stessa entità è disponibile un solo report per la stessa origine e la stessa proprietà.For the same entity, there is only one report for the same source and property. Più report per la stessa origine e la stessa proprietà si sostituiscono l'uno all'altro sul lato del client di integrità (se sono in batch) o sul lato dell'archivio integrità.Multiple reports for the same source and property override each other, either on the health client side (if they are batched) or on the health store side. La sostituzione avviene in base al numero di sequenza, quindi i report più recenti con un numero di sequenza più alto sostituiscono quelli meno recenti.The replacement is based on sequence numbers; newer reports (with higher sequence numbers) replace older reports.

Eventi di integritàHealth events

Internamente, l'archivio integrità mantiene eventi di integritàcontenenti tutte le informazioni provenienti dai report e metadati aggiuntivi.Internally, the health store keeps health events, which contain all the information from the reports, and additional metadata. I metadati includono l'ora in cui un report è stato consegnato al client di integrità e l'ora in cui è stato modificato sul lato server.The metadata includes the time the report was given to the health client and the time it was modified on the server side. Gli eventi di integrità vengono restituiti dalle query sull'integrità.The health events are returned by health queries.

I metadati aggiunti includono quanto segue:The added metadata contains:

  • SourceUtcTimestamp.SourceUtcTimestamp. Ora in cui il report è stato fornito al client di integrità (UTC).The time the report was given to the health client (Coordinated Universal Time).
  • LastModifiedUtcTimestamp.LastModifiedUtcTimestamp. Ora in cui il report è stato modificato l'ultima volta sul lato server (UTC).The time the report was last modified on the server side (Coordinated Universal Time).
  • IsExpired.IsExpired. Flag che indica se il report era scaduto quando la query è stata eseguita dall'archivio integrità.A flag to indicate whether the report was expired when the query was executed by the health store. Un evento può risultare scaduto solo se RemoveWhenExpired è false.An event can be expired only if RemoveWhenExpired is false. In caso contrario, l'evento non viene restituito dalla query e viene rimosso dall'archivio.Otherwise, the event is not returned by query and is removed from the store.
  • LastOkTransitionAt, LastWarningTransitionAt, LastErrorTransitionAt.LastOkTransitionAt, LastWarningTransitionAt, LastErrorTransitionAt. Ultima volta in cui si sono verificate transizioni OK/Warning/Error.The last time for OK/warning/error transitions. Questi campi forniscono la cronologia delle transizioni degli stati di integrità per l'evento.These fields give the history of the health state transitions for the event.

I campi di transizione dello stato possono essere usati per ottenere avvisi più intelligenti o informazioni "cronologiche" sull'evento di integrità.The state transition fields can be used for smarter alerts or "historical" health event information. Consentono l'uso di scenari simili ai seguenti:They enable scenarios such as:

  • Avviso quando lo stato di una proprietà è impostato su Warning/Error da più di X minuti.Alert when a property has been at warning/error for more than X minutes. Controllando la condizione per un determinato periodo di tempo si evitano avvisi per condizioni temporanee.Checking the condition for a period of time avoids alerts on temporary conditions. Ad esempio, se si vuole un avviso quando lo stato di integrità rimane impostato su Warning per più di 5 minuti, è possibile usare: (HealthState == Warning and Now - LastWarningTransitionTime > 5 minutes).For example, an alert if the health state has been warning for more than five minutes can be translated into (HealthState == Warning and Now - LastWarningTransitionTime > 5 minutes).
  • Avviso solo per le condizioni cambiate negli ultimi X minuti.Alert only on conditions that have changed in the last X minutes. Se un report segnalava lo stato Error anche prima dell'ora specificata, può essere ignorato perché il problema era già stato segnalato in precedenza.If a report was already at error before the specified time, it can be ignored because it was already signaled previously.
  • Se una proprietà si alterna tra lo stato Warning e lo stato Error, determinare per quanto tempo è risultata non integra, ovvero non OK.If a property is toggling between warning and error, determine how long it has been unhealthy (that is, not OK). Ad esempio, se si vuole un avviso quando la proprietà non risulta integra da più di 5 minuti, è possibile usare: (HealthState != Ok and Now - LastOkTransitionTime > 5 minutes).For example, an alert if the property hasn't been healthy for more than five minutes can be translated into (HealthState != Ok and Now - LastOkTransitionTime > 5 minutes).

Esempio: Report e valutazione dell'integrità dell'applicazioneExample: Report and evaluate application health

L'esempio seguente invia tramite PowerShell un report sull'integrità dell'applicazione fabric:/WordCount dall'origine MyWatchdog.The following example sends a health report through PowerShell on the application fabric:/WordCount from the source MyWatchdog. Il report sull'integrità contiene informazioni sulla "disponibilità" della proprietà di integrità con stato di integrità Error e TimeToLive infinito.The health report contains information about the health property "availability" in an error health state, with infinite TimeToLive. Viene quindi eseguita una query sull'integrità dell'applicazione che restituisce Error come stato di integrità aggregato e gli eventi di integrità segnalati nell'elenco degli eventi di integrità.Then it queries the application health, which returns aggregated health state errors and the reported health events in the list of health events.

PS C:\> Send-ServiceFabricApplicationHealthReport –ApplicationName fabric:/WordCount –SourceId "MyWatchdog" –HealthProperty "Availability" –HealthState Error

PS C:\> Get-ServiceFabricApplicationHealth fabric:/WordCount -ExcludeHealthStatistics


ApplicationName                 : fabric:/WordCount
AggregatedHealthState           : Error
UnhealthyEvaluations            :
                                  Error event: SourceId='MyWatchdog', Property='Availability'.

ServiceHealthStates             :
                                  ServiceName           : fabric:/WordCount/WordCountService
                                  AggregatedHealthState : Error

                                  ServiceName           : fabric:/WordCount/WordCountWebService
                                  AggregatedHealthState : Ok

DeployedApplicationHealthStates :
                                  ApplicationName       : fabric:/WordCount
                                  NodeName              : _Node_0
                                  AggregatedHealthState : Ok

                                  ApplicationName       : fabric:/WordCount
                                  NodeName              : _Node_2
                                  AggregatedHealthState : Ok

                                  ApplicationName       : fabric:/WordCount
                                  NodeName              : _Node_3
                                  AggregatedHealthState : Ok

                                  ApplicationName       : fabric:/WordCount
                                  NodeName              : _Node_4
                                  AggregatedHealthState : Ok

                                  ApplicationName       : fabric:/WordCount
                                  NodeName              : _Node_1
                                  AggregatedHealthState : Ok

HealthEvents                    :
                                  SourceId              : System.CM
                                  Property              : State
                                  HealthState           : Ok
                                  SequenceNumber        : 360
                                  SentAt                : 3/22/2016 7:56:53 PM
                                  ReceivedAt            : 3/22/2016 7:56:53 PM
                                  TTL                   : Infinite
                                  Description           : Application has been created.
                                  RemoveWhenExpired     : False
                                  IsExpired             : False
                                  Transitions           : Error->Ok = 3/22/2016 7:56:53 PM, LastWarning = 1/1/0001 12:00:00 AM

                                  SourceId              : MyWatchdog
                                  Property              : Availability
                                  HealthState           : Error
                                  SequenceNumber        : 131032204762818013
                                  SentAt                : 3/23/2016 3:27:56 PM
                                  ReceivedAt            : 3/23/2016 3:27:56 PM
                                  TTL                   : Infinite
                                  Description           :
                                  RemoveWhenExpired     : False
                                  IsExpired             : False
                                  Transitions           : Ok->Error = 3/23/2016 3:27:56 PM, LastWarning = 1/1/0001 12:00:00 AM

Uso del modello di integritàHealth model usage

Il modello di integrità consente la scalabilità dei servizi cloud e della piattaforma Service Fabric sottostante perché il monitoraggio e la determinazione dell'integrità vengono distribuiti tra i diversi monitor all'interno del cluster.The health model allows cloud services and the underlying Service Fabric platform to scale, because monitoring and health determinations are distributed among the different monitors within the cluster. Altri sistemi hanno un unico servizio centralizzato a livello di cluster che analizza tutte le informazioni potenzialmente utili generate dai servizi.Other systems have a single, centralized service at the cluster level that parses all the potentially useful information emitted by services. Questo approccio ne impedisce la scalabilitàThis approach hinders their scalability. e non consente la raccolta di informazioni specifiche per identificare i problemi effettivi e potenziali risalendo alla causa principale.It also doesn't allow them to collect specific information to help identify issues and potential issues as close to the root cause as possible.

Il modello di integrità viene usato in larga misura per il monitoraggio e la diagnosi, per la valutazione dell'integrità del cluster e dell'applicazione e per aggiornamenti monitorati.The health model is used heavily for monitoring and diagnosis, for evaluating cluster and application health, and for monitored upgrades. Altri servizi usano i dati di integrità per eseguire riparazioni automatiche, generare la cronologia dell'integrità del cluster e inviare avvisi in determinate condizioni.Other services use health data to perform automatic repairs, build cluster health history, and issue alerts on certain conditions.

Passaggi successiviNext steps

Come visualizzare i report sull'integrità di Service FabricView Service Fabric health reports

Uso dei report sull'integrità del sistema per la risoluzione dei problemiUse system health reports for troubleshooting

Creare report e verificare l'integrità dei serviziHow to report and check service health

Aggiungere report sull'integrità di Service Fabric personalizzatiAdd custom Service Fabric health reports

Monitorare e diagnosticare servizi in localeMonitor and diagnose services locally

Aggiornamento di un'applicazione di infrastruttura di serviziService Fabric application upgrade