Monitoraggio del cluster e della piattaformaMonitoring the cluster and platform

Il monitoraggio a livello piattaforma è importante per determinare se l'hardware e il cluster abbiano o meno il comportamento previsto.It is important to monitor at the platform level to determine whether or not your hardware and cluster are behaving as expected. Service Fabric può mantenere in esecuzione le applicazioni durante un errore hardware, ma è comunque necessario diagnosticare se l'errore si sia verificato in un'applicazione o nell'infrastruttura sottostante.Though Service Fabric can keep applications running during a hardware failure, but you still need to diagnose whether an error is occurring in an application or in the underlying infrastructure. È consigliabile monitorare i cluster anche per pianificare in modo più efficiente la capacità e supportare le decisioni in merito all'aggiunta o alla rimozione dell'hardware.You also should monitor your clusters to better plan for capacity, helping in decisions about adding or removing hardware.

Service Fabric espone diversi eventi di piattaforma strutturati, come "eventi di Service Fabric", tramite EventStore e diversi canali di log immediatamente disponibili.Service Fabric exposes several structured platform events, as "Service Fabric events," through the EventStore and various log channels out-of-the-box.

EventStore consente l'accesso agli eventi del cluster per singola entità (tra cui cluster, nodi, applicazioni, servizi, partizioni, repliche e contenitori) e li espone tramite API REST e la libreria client di Service Fabric.The EventStore gives you access to your cluster's events on a per entity basis (entities including cluster, nodes, applications, services, partitions, replicas, and containers) and exposes them via REST APIs and the Service Fabric client library. Usare EventStore per monitorare i cluster di sviluppo/test e per ottenere un riconoscimento temporizzato dello stato dei cluster di produzione.Use the EventStore to monitor your dev/test clusters, and for getting a point-in-time understanding of the state of your production clusters. Altre informazioni in merito sono disponibili nella Panoramica di EventStore.Read more about this at EventStore Overview.

Service Fabric fornisce anche i seguente canali di log predefiniti per la configurazione di una pipeline per monitorare i cluster di produzione:Service Fabric also provides the following log channels out-of-the-box for setting up a pipeline to monitor your production clusters:

  • Canale operativoOperational
    Operazioni generali eseguite da Service Fabric e dal cluster, inclusi gli eventi per l'attivazione di un nodo, la distribuzione di una nuova applicazione, il ripristino dello stato precedente a un aggiornamento e così via.High-level operations performed by Service Fabric and the cluster, including events for a node coming up, a new application being deployed, or an upgrade rollback, etc.

  • Canale OPERATIVO - in dettaglioOperational - detailed
    Report sull'integrità e decisioni di bilanciamento del carico.Health reports and load balancing decisions.

  • Canale dati e messaggisticaData & Messaging
    Eventi e registri critici generati nella messaggistica (attualmente solo ReverseProxy) e nel percorso dati (modelli di servizi affidabili).Critical logs and events generated in the messaging (currently only the ReverseProxy) and data path (reliable services models).

  • Canale data e messaggistica - in dettaglioData & Messaging - detailed
    Canale dettagliato che contiene tutti i registri non critici di dati e messaggistica nel cluster. Questo canale presenta un volume di eventi molto elevato.Verbose channel that contains all the non-critical logs from data and messaging in the cluster (this channel has a very high volume of events).

Oltre a questi, sono forniti due canali EventSource strutturati, nonché log che vengono raccolti a scopo di supporto.In addition to these, there are two structured EventSource channels provided, as well as logs that we collect for support purposes.

  • Eventi di Reliable ServicesReliable Services events
    Eventi specifici del modello di programmazione.Programming model specific events.

  • Eventi di Reliable ActorsReliable Actors events
    Contatori delle prestazioni ed eventi specifici del modello di programmazione.Programming model specific events and performance counters.

  • Registri di supportoSupport logs
    Registri di sistema generati da Service Fabric e destinati esclusivamente a finalità di supporto.System logs generated by Service Fabric only to be used by us when providing support.

Questi diversi canali coprono la maggior parte della registrazione consigliabile a livello piattaforma.These various channels cover most of the platform level logging that is recommended. Per migliorare la registrazione a livello piattaforma, valutare la possibilità di comprendere meglio il modello di integrità e aggiungere report sull'integrità personalizzati e contatori delle prestazioni personalizzati per ottenere una conoscenza in tempo reale dell'impatto dei servizi e delle applicazioni sul cluster.To improve platform level logging, consider investing in better understanding the health model and adding custom health reports, and adding custom Performance Counters to build a real-time understanding of the impact of your services and applications on the cluster.

Per sfruttare questi log, è consigliabile che durante la creazione del cluster sia abilitata la diagnostica.In order to take advantage of these logs, it is highly recommended that during cluster creation, "Diagnostics" is enabled. Attivando la diagnostica, durante la distribuzione del cluster Diagnostica di Microsoft Azure può riconoscere il canale operativo e quelli di Reliable Services e Reliable Actors e archiviare i dati come illustrato con maggiore dettaglio Aggregare eventi con Diagnostica di Azure.By turning on diagnostics, when the cluster is deployed, Windows Azure Diagnostics is able to acknowledge the Operational, Reliable Services, and Reliable actors channels, and store the data as explained further in Aggregate events with Azure Diagnostics.

Creazione di report su integrità e carico di Azure Service FabricAzure Service Fabric health and load reporting

Service Fabric offre un modello di integrità specifico, descritto in dettaglio in questi articoli:Service Fabric has its own health model, which is described in detail in these articles:

Il monitoraggio dell'integrità è fondamentale per vari aspetti dell'uso di un servizio.Health monitoring is critical to multiple aspects of operating a service. Il monitoraggio dell'integrità è particolarmente importante quando Service Fabric esegue l'aggiornamento di un'applicazione denominata.Health monitoring is especially important when Service Fabric performs a named application upgrade. Dopo l'aggiornamento di ogni dominio di aggiornamento del servizio, quando il dominio è disponibile per i clienti, è necessario che superi controlli di integrità prima che la distribuzione passi al dominio di aggiornamento successivo.After each upgrade domain of the service is upgraded and is available to your customers, the upgrade domain must pass health checks before the deployment moves to the next upgrade domain. Se non è possibile ottenere uno stato di integrità ottimale, viene eseguito il rollback della distribuzione, in modo che l'applicazione raggiunga uno stato positivo noto.If good health status cannot be achieved, the deployment is rolled back, so that the application is in a known, good state. Anche se è possibile che alcuni clienti subiscano interruzioni prima del rollback del servizio, la maggior parte dei clienti non riscontra problemi.Although some customers might be affected before the services are rolled back, most customers won't experience an issue. La risoluzione è inoltre relativamente veloce, senza dovere attendere l'intervento di un tecnico.Also, a resolution occurs relatively quickly, and without having to wait for action from a human operator. Con un numero maggiore di controlli di integrità inclusi nel codice, il servizio sarà più resistente alle problematiche di distribuzione.The more health checks that are incorporated into your code, the more resilient your service is to deployment issues.

Un altro aspetto dell'integrità del servizio è dato dalla creazione di report sulle metriche del servizio.Another aspect of service health is reporting metrics from the service. Le metriche sono importanti in Service Fabric perché vengono usate per bilanciare l'uso delle risorse.Metrics are important in Service Fabric because they are used to balance resource usage. Possono anche essere usate come un indicatore dell'integrità del sistema.Metrics also can be an indicator of system health. È ad esempio possibile che sia presente un'applicazione con molti servizi e che ogni istanza segnali una metrica relativa alle richieste al secondo.For example, you might have an application that has many services, and each instance reports a requests per second (RPS) metric. Se uno dei servizi usa più risorse rispetto a un altro, Service Fabric sposta le istanze del servizio nel cluster, provando a mantenere un uso bilanciato delle risorse stesse.If one service is using more resources than another service, Service Fabric moves service instances around the cluster, to try to maintain even resource utilization. Per una spiegazione più dettagliata del funzionamento dell'utilizzo delle risorse, vedere Gestione dell'utilizzo delle risorse e del carico in Service Fabric con le metriche.For a more detailed explanation of how resource utilization works, see Manage resource consumption and load in Service Fabric with metrics.

Le metriche consentono anche di ottenere informazioni approfondite sulle prestazioni del servizio.Metrics also can help give you insight into how your service is performing. Nel corso del tempo, è possibile usare le metriche per assicurarsi che il servizio stia operando entro i parametri previsti.Over time, you can use metrics to check that the service is operating within expected parameters. Se, ad esempio, le tendenze indicano che alle 9:00 del lunedì mattina la media delle richieste al secondo è pari a 1.000, è possibile configurare un report di integrità che genera un avviso se le richieste al secondo sono inferiori a 500 o superiori a 1.500.For example, if trends show that at 9 AM on Monday morning the average RPS is 1,000, then you might set up a health report that alerts you if the RPS is below 500 or above 1,500. È possibile che non si verifichino problemi, ma è comunque consigliabile controllare per assicurare la migliore esperienza possibile per i clienti.Everything might be perfectly fine, but it might be worth a look to be sure that your customers are having a great experience. Il servizio può definire una serie di metriche di cui eseguire il report per l'integrità. Questo comunque non influirà sul bilanciamento delle risorse del cluster.Your service can define a set of metrics that can be reported for health check purposes, but that don't affect the resource balancing of the cluster. Per ottenere questo risultato, impostare il peso delle metriche su zero.To do this, set the metric weight to zero. È consigliabile avviare tutte le metriche con peso zero e non aumentare il peso fino a quando non si è sicuri di aver compreso l'impatto della ponderazione sul bilanciamento delle risorse nel cluster.We recommend that you start all metrics with a weight of zero, and not increase the weight until you are sure that you understand how weighting the metrics affects resource balancing for your cluster.

Suggerimento

Non usare un numero eccessivo di metriche ponderate.Don't use too many weighted metrics. Potrebbe essere difficile comprendere i motivi dello spostamento delle istanze del servizio per il bilanciamento del carico.It can be difficult to understand why service instances are being moved around for balancing. Anche un numero ridotto di metriche può essere molto utile.A few metrics can go a long way!

Tutte le informazioni che possono indicare l'integrità e le prestazioni dell'applicazione possono essere usate per report relativi alle metriche e all'integrità.Any information that can indicate the health and performance of your application is a candidate for metrics and health reports. Un contatore delle prestazioni della CPU può indicare l'uso di un nodo ma non consente di capire se un servizio specifico sia integro, poiché su quel nodo potrebbero essere in esecuzione più servizi.A CPU performance counter can tell you how your node is utilized, but it doesn't tell you whether a particular service is healthy, because multiple services might be running on a single node. Le metriche relative alle richieste al secondo, agli elementi elaborati e alla latenza delle richieste, tuttavia, possono indicare l'integrità di un servizio specifico.But, metrics like RPS, items processed, and request latency all can indicate the health of a specific service.

Log di supporto di Service FabricService Fabric support logs

Se è necessario contattare il supporto Microsoft per assistenza con il cluster di Azure Service Fabric, saranno quasi sempre richiesti i log di supporto.If you need to contact Microsoft support for help with your Azure Service Fabric cluster, support logs are almost always required. Se il cluster è ospitato in Azure, questi log vengono automaticamente configurati e raccolti in fase di creazione di un cluster.If your cluster is hosted in Azure, support logs are automatically configured and collected as part of creating a cluster. I log vengono archiviati in un account di archiviazione dedicato nel gruppo di risorse del cluster.The logs are stored in a dedicated storage account in your cluster's resource group. L'account di archiviazione non ha un nome predefinito, ma nell'account vengono visualizzati contenitori BLOB e tabelle con nomi che iniziano con fabric.The storage account doesn't have a fixed name, but in the account, you see blob containers and tables with names that start with fabric. Per informazioni sulla configurazione di raccolte di log per un cluster autonomo, vedere Creare un cluster autonomo di Azure Service Fabric e Impostazioni di configurazione per un cluster autonomo in Windows.For information about setting up log collections for a standalone cluster, see Create and manage a standalone Azure Service Fabric cluster and Configuration settings for a standalone Windows cluster. Per istanze autonome di Service Fabric, i log devono essere inviati a una condivisione file locale.For standalone Service Fabric instances, the logs should be sent to a local file share. È obbligatorio disporre di questi log per ottenere assistenza. I log devono essere usati solo dal team di assistenza clienti Microsoft.You are required to have these logs for support, but they are not intended to be usable by anyone outside of the Microsoft customer support team.

Misurazione delle prestazioniMeasuring performance

La misurazione delle prestazioni del cluster consentirà di comprenderne la capacità di gestire il carico e prendere decisioni in merito al ridimensionamento del cluster. Vedere altre informazioni sul ridimensionamento di un cluster in Azure o in locale.Measure performance of your cluster will help you understand how it is able to handle load and drive decisions around scaling your cluster (see more about scaling a cluster on Azure, or on-premises). I dati sulle prestazioni sono utili anche rispetto alle azioni eseguite dall'utente oppure dalle applicazioni e dai servizi, per la futura analisi dei log.Performance data is also useful when compared to actions you or your applications and services may have taken, when analyzing logs in the future.

Per un elenco dei contatori delle prestazioni da raccogliere quando si usa Service Fabric, vedere l'articolo relativo ai contatori delle prestazioni in Service Fabric.For a list of performance counters to collect when using Service Fabric, see Performance Counters in Service Fabric

Di seguito sono illustrati due modi comuni disponibili per configurare la raccolta dei dati sulle prestazioni del cluster.Here are two common ways in which you can set up collecting performance data for your cluster:

  • Uso di un agenteUsing an agent
    Modo preferito per raccogliere dati sulle prestazioni da un computer, perché gli agenti includono in genere un elenco delle possibili metriche delle prestazioni disponibili per la raccolta e scegliere o modificare le metriche da raccogliere è un processo relativamente semplice.This is the preferred way of collecting performance from a machine, since agents usually have a list of possible performance metrics that can be collected, and it is a relatively easy process to choose the metrics you want to collect or change them. Per altre informazioni sull'agente OMS, un agente di monitoraggio di questo tipo che può acquisire i dati sulle prestazioni delle VM del cluster e dei contenitori distribuiti, vedere gli articoli su come configurare OMS per Service Fabric e sulla configurazione dell'agente Windows di OMS.Read about how to configure the OMS for Service Fabric and Setting up the OMS Windows Agent articles to learn more about the OMS agent, which is one such monitoring agent that is able to pick up performance data for cluster VMs and deployed containers.

  • Configurazione della diagnostica per scrivere contatori delle prestazioni in una tabellaConfiguring diagnostics to write performance counters to a table
    Per i cluster in Azure, ciò significa modificare la configurazione di Diagnostica di Microsoft Azure per scegliere i contatori delle prestazioni appropriati dalle VM del cluster e abilitarla per acquisire le statistiche Docker se si distribuiranno contenitori.For clusters on Azure, this means changing the Azure Diagnostics configuration to pick up the appropriate performance counters from the VMs in your cluster, and enabling it to pick up docker stats if you will be deploying any containers. Per configurare la raccolta dei contatori delle prestazioni, leggere l'articolo relativo alla configurazione dei contatori delle prestazioni in Diagnostica di Microsoft Azure per Service Fabric.Read about configuring Performance Counters in WAD in Service Fabric to set up performance counter collection.

Passaggi successiviNext steps

Per poter essere inviati a qualsiasi piattaforma di analisi, i log e gli eventi devono prima essere aggregati.Your logs and events need to be aggregated before they can be sent to any analysis platform. Per comprendere meglio alcune delle opzioni consigliate, vedere gli articoli relativi a EventFlow e Diagnostica di Microsoft Azure.Read about EventFlow and WAD to better understand some of the recommended options.