Monitoraggio e diagnostica in Azure Service FabricMonitoring and diagnostics for Azure Service Fabric

Questo articolo offre una panoramica del monitoraggio e della diagnostica per Azure Service Fabric.This article provides an overview of monitoring and diagnostics for Azure Service Fabric. Il monitoraggio e la diagnostica sono essenziali per lo sviluppo, il test e la distribuzione di carichi di lavoro in qualsiasi ambiente cloud.Monitoring and diagnostics are critical to developing, testing, and deploying workloads in any cloud environment. Il monitoraggio, in particolare, consente di tenere traccia delle modalità di utilizzo delle applicazioni e delle risorse e dell'integrità complessiva del cluster.Monitoring enables you to track how your applications are used, your resource utilization, and the overall health of your cluster. È possibile usare queste informazioni per diagnosticare e correggere eventuali problemi e per evitare che si verifichino nuovi problemi in futuro.You can use this information to diagnose and correct any issues, and prevent issues from occurring in the future.

Monitoraggio delle applicazioniApplication monitoring

Il monitoraggio delle applicazioni tiene traccia del modo in cui vengono usati le funzionalità e i componenti dell'applicazione.Application monitoring tracks how features and components of your application are being used. Con il monitoraggio delle applicazioni è possibile, ad esempio, identificare i problemi che possono incidere sugli utenti.You want to monitor your applications to make sure issues that impact users are caught. Il monitoraggio delle applicazioni può essere utile negli scenari seguenti:Monitoring your applications can be useful in the following scenarios:

  • Determinare il carico dell'applicazione e il traffico utente. È necessario ridimensionare i servizi per soddisfare le esigenze dell'utente o risolvere un potenziale collo di bottiglia nell'applicazione?Determining application load and user traffic - do you need to scale your services to meet user demands or address a potential bottleneck in your application?
  • Identificare possibili problemi con le comunicazioni remote e dei servizi all'interno del clusterIdentifying issues with service communication and remoting across your cluster
  • Capire il modo in cui gli utenti stanno usando l'applicazione: la raccolta dei dati di telemetria nelle applicazioni semplifica lo sviluppo delle funzionalità future e migliora la diagnostica degli errori nelle appFiguring out what your users are doing with your application - collecting telemetry in your applications can help guide future feature development and better diagnostics for app errors
  • Monitoraggio delle operazioni eseguite nei contenitori in esecuzioneMonitoring what is happening inside your running containers

Service Fabric supporta numerose opzioni per instrumentare il codice dell'applicazione con le tracce e i dati di telemetria appropriati.Service Fabric supports many options to instrument your application code with the proper traces and telemetry. È consigliabile usare Application Insights (AI).We recommend that you use Application Insights (AI). L'integrazione di AI con Service Fabric include l'uso degli strumenti per Visual Studio e il portale di Azure, oltre a metriche specifiche di Service Fabric, determinando un'esperienza di registrazione completa fin dall'inizio.AI's integration with Service Fabric includes tooling experiences for Visual Studio and Azure portal, as well as Service Fabric specific metrics, providing a comprehensive out-of-the-box logging experience. Nonostante molti log vengano creati e raccolti in modo automatico con AI, si consiglia di aggiungere altre registrazioni personalizzate alle applicazioni per creare un'esperienza di diagnostica più completa.Though many logs are automatically created and collected for you with AI, we recommend that you add further custom logging to your applications to create a richer diagnostics experience. Per altre informazioni su come iniziare a usare Application Insights con Service Fabric, vedere Analisi e visualizzazione degli eventi con Application Insights.See more about getting started with Application Insights with Service Fabric at Event analysis with Application Insights.

Monitoraggio della piattaforma (cluster)Platform (Cluster) monitoring

Il monitoraggio del cluster di Service Fabric è fondamentale per avere la certezza che la piattaforma e tutti i carichi di lavoro siano in esecuzione come previsto.Monitoring your Service Fabric cluster is critical in ensuring that the platform and all workloads are running as intended. Uno dei principali obiettivi di Service Fabric è mantenere le applicazioni resilienti agli errori hardware.One of Service Fabric's goals is to keep applications resilient to hardware failures. Questo obiettivo viene conseguito grazie alla capacità dei servizi di sistema della piattaforma di rilevare eventuali problemi dell'infrastruttura ed eseguire rapidamente il failover dei carichi di lavoro su altri nodi del cluster.This goal is achieved through the platform's system services' ability to detect infrastructure issues and rapidly failover workloads to other nodes in the cluster. In questo caso specifico, tuttavia, cosa accade se sono presenti problemi anche nei servizi di sistema?But in this particular case, what if the system services themselves have issues? O se, nel tentativo di spostare un carico di lavoro, vengono violate le regole relative al posizionamento dei servizi?Or if in attempting to move a workload, rules for the placement of services are violated? Il monitoraggio del cluster consente di essere sempre aggiornati sulle attività in esecuzione sul cluster, condizione essenziale per diagnostica più facilmente i problemi e correggerli in modo efficace.Monitoring the cluster allows you to stay informed about activity taking place in your cluster, which helps in diagnosing issues and fixing them effectively. Di seguito sono elencati alcuni aspetti a cui è necessario prestare particolare attenzione:Some key things you want to be looking out for are:

  • Service Fabric sta realmente funzionando come previsto, in termini di posizionamento delle applicazioni e bilanciamento del carico nel cluster?Is Service Fabric behaving the way you expect, in terms of placing your applications and balancing work around the cluster?
  • Le azioni utente effettuate nel cluster vengono confermate ed eseguite come previsto?Are user actions taken on your cluster acknowledged and executed on as expected? Questo aspetto è particolarmente importante quando si ridimensiona un cluster.This is especially relevant when scaling a cluster.
  • Service Fabric sta gestendo i dati e le comunicazioni tra i servizi all'interno del cluster in modo corretto?Is Service Fabric handling your data and your service-service communication inside the cluster correctly?

Service Fabric offre un set completo di eventi immediatamente disponibili.Service Fabric provides a comprehensive set of events out of the box. Tali eventi di Service Fabric sono accessibili tramite le API EventStore o il canale operativo (canale di evento esposto dalla piattaforma).These Service Fabric events can be accessed through the EventStore APIs or the operational channel (event channel exposed by the platform).

  • EventStore - EventStore (disponibile su Windows 6.2 e versioni successive, su Linux ancora in corso alla data dell'ultimo aggiornamento dell'articolo) espone questi eventi tramite un set di API (accessibile tramite gli endpoint REST o la libreria client).EventStore - the EventStore (available on Windows in versions 6.2 and later, Linux still in progress as of this article's last updated date), exposes these events via a set of APIs (accessible via REST endpoints or through the client library). Altre informazioni su EventStore sono disponibili nella Panoramica di EventStore.Read more about the EventStore at the EventStore Overview.
  • Eventi di canale di Service Fabric - In Windows, sono disponibili da un unico provider ETW con un set di logLevelKeywordFilters rilevanti che consente di scegliere tra canali operativi, dati e messaggistica. È così che gli eventi di Service Fabric in uscita vengono separati per essere filtrati in base alle esigenze.Service Fabric event channels - On Windows, Service Fabric events are available from a single ETW provider with a set of relevant logLevelKeywordFilters used to pick between Operational and Data & Messaging channels - this is the way in which we separate out outgoing Service Fabric events to be filtered on as needed. In Linux, tutti gli eventi di Service Fabric vengono forniti tramite LTTng e raccolti in una tabella di Archiviazione, da dove possono essere filtrati in base alle esigenze.On Linux, Service Fabric events come through LTTng and are put into one Storage table, from where they can be filtered as needed. Questi canali contengono eventi curati e strutturati che consentono di comprendere meglio lo stato del cluster.These channels contain curated, structured events that can be used to better understand the state of your cluster. Il canale di diagnostica è abilitato per impostazione predefinita al momento della creazione di un cluster, nel corso della quale viene creata una tabella di archiviazione di Azure in cui vengono inviati gli eventi generati dai canali, su cui poter eseguire query in futuro.Diagnostics are enabled by default at the cluster creation time, which create an Azure Storage table where the events from these channels are sent for you to query in the future.

Si consiglia di usare EventStore per un'analisi veloce e per ottenere un'idea di snapshot del modo in cui il cluster sta funzionando e se le operazioni vengono eseguite come previsto.We recommend using the EventStore for quick analysis and to get a snapshot idea of how your cluster is operating, and if things are happening as expected. Per raccogliere i log e gli eventi che vengono generati dal cluster, è in genere consigliabile usare l'estensione Diagnostica di Azure,For collecting the logs and events being generated by your cluster, we generally recommend using the Azure Diagnostics extension. che si integra bene con Analisi Service Fabric, la soluzione specifica per Service Fabric di OMS Log Analytics, che fornisce un dashboard personalizzato per il monitoraggio dei cluster di Service Fabric e consente di eseguire query sugli eventi del cluster e di impostare avvisi.This integrates well with Service Fabric Analytics, OMS Log Analytics' Service Fabric specific solution, which provides a custom dashboard for monitoring Service Fabric clusters and allows you to query your cluster's events and set up alerts. Per altre informazioni, vedere Analisi di eventi con OMS.Read more about this at Event analysis with OMS.

È possibile leggere altre informazioni sul monitoraggio del cluster nell'articolo Generazione di eventi e log a livello piattaforma.You can read more about monitoring your cluster at Platform level event and log generation.

Monitoraggio delle prestazioniPerformance monitoring

Il monitoraggio dell'infrastruttura sottostante è un fattore essenziale per conoscere lo stato del cluster e le modalità di utilizzo delle risorse.Monitoring your underlying infrastructure is a key part of understanding the state of your cluster and your resource utilization. La misurazione delle prestazioni di sistema dipende da diversi fattori, ognuno dei quali viene misurato in genere tramite un indicatore di prestazioni chiave (KPI).Measuring system performance depends on several factors, each of which is typically measured through a Key Performance Indicators (KPIs). Gli indicatori KPI relativi a Service Fabric, in particolare, possono essere mappati alle metriche che è possibile raccogliere dai nodi del cluster come contatori delle prestazioni.Service Fabric relevant KPIs can be mapped to metrics that can be collected from the nodes in your cluster, as performance counters. Gli indicatori KPI possono essere utili per:These KPIs can help with:

  • Determinare il carico e l'utilizzo delle risorse ai fini del ridimensionamento del cluster o dell'ottimizzazione dei processi del servizio.Understanding resource utilization and load - for the purpose of scaling your cluster, or optimizing your service processes.
  • Anticipare eventuali problemi dell'infrastruttura: molti problemi sono preceduti da improvvise variazioni (cali) delle prestazioni ed è quindi possibile usare indicatori KPI come l'I/O di rete e l'utilizzo della CPU per anticipare e diagnosticare eventuali problemi infrastrutturali.Predicting infrastructure issues - many issues are preceded by sudden changes (drops) in performance, so you can use KPIs such as network I/O and CPU utilization to predict and diagnose infrastructural issues.

Un elenco dei contatori delle prestazioni che è possibile raccogliere a livello di infrastruttura è disponibile in Metriche delle prestazioni.A list of performance counters that should be collected at the infrastructure level can be found at Performance metrics.

Service Fabric fornisce un set di contatori delle prestazioni per i modelli di programmazione Reliable Services e Reliable Actors.Service Fabric provides a set of performance counters for the Reliable Services and Actors programming models. Se si usa uno di questi modelli, i contatori delle prestazioni possono fornire indicatori KPI in grado di assicurare che gli attori vengano attivati e disattivati correttamente o che richieste di Reliable Services vengano gestite in modo sufficientemente rapido.If you are using either of these models, these performance counters can provide KPIs that help ensure that your actors are spinning up and down correctly, or that your reliable service requests are being handled fast enough. Per altre informazioni, vedere Monitoraggio delle prestazioni per Reliable Service Remoting e Monitoraggio delle prestazioni per Reliable Actors.For more information, see Monitoring for Reliable Service Remoting and Performance monitoring for Reliable Actors. Se configurato con l'applicazione in uso, anche Application Insights offre un set di metriche delle prestazioni che è in grado di raccogliere.In addition to this, Application Insights also has a set of performance metrics it will collect, if configured with your application.

Usare l'agente OMS per raccogliere i contatori delle prestazioni appropriati e visualizzare gli indicatori KPI in OMS Log Analytics.Use the OMS agent to collect the appropriate performance counters, and view these KPIs in OMS Log Analytics.

Grafico di panoramica della diagnostica

Monitoraggio dell’integritàHealth monitoring

La piattaforma Service Fabric include un modello di integrità che fornisce report di integrità estendibili sullo stato delle entità presenti in un cluster.The Service Fabric platform includes a health model, which provides extensible health reporting for the status of entities in a cluster. Ogni nodo, applicazione, servizio, partizione, replica o istanza presenta uno stato di integrità costantemente aggiornabile,Each node, application, service, partition, replica, or instance, has a continuously updatable health status. che può essere "OK", "Avviso" o "Errore".The health status can either be "OK", "Warning", or "Error". Lo stato di integrità viene modificato tramite report di integrità generati per ogni entità, sulla base dei problemi presenti nel cluster.The health status is changed through health reports that are emitted for each entity, based on issues in the cluster. Lo stato di integrità delle entità può essere verificato in qualsiasi momento in Service Fabric Explorer (SFX), come illustrato di seguito. In alternativa, è possibile eseguire una query tramite l'API di integrità delle piattaforme.The health status of your entities can be checked at any time in Service Fabric Explorer (SFX) as shown below, or can be queried via the platforms's Health API. È possibile anche personalizzare i report di integrità e modificare lo stato di integrità di un'entità aggiungendo report di integrità personali o tramite l'API di integrità.You can also customize health reports and modify the health status of an entity by adding your own health reports or using the Health API. Altre informazioni sul modello di integrità sono disponibili in Introduzione al monitoraggio dell'integrità di Service Fabric.More details on the health model can be found at Introduction to Service Fabric health monitoring.

Dashboard dell'integrità di SFX

I report di integrità più recenti possono essere visualizzati in SFX, ma ogni report è disponibile anche come evento.In addition to seeing latest health reports in SFX, each report is also available as an event. Gli eventi di integrità possono essere raccolti tramite il canale operativo (vedere Aggregazione di eventi con Diagnostica di Azure) e archiviati in Log Analytics per consentire l'impostazione di avvisi e l'esecuzione di query in futuro.Health events can be collected through the operational channel (see Event aggregation with Azure Diagnostics), and stored in Log Analytics for alerting and querying in the future. In questo modo, è possibile anche rilevare eventuali problemi che possono incidere sulla disponibilità dell'applicazione ed è per questo che si consiglia di impostare avvisi per gli scenari di errore appropriati (avvisi personalizzati tramite Log Analytics).This helps detect issues that may impact your application availability, so we recommend that you set up alerts for appropriate failure scenarios (custom alerts through Log Analytics).

Altre soluzioni di registrazioneOther logging solutions

Anche se le due soluzioni consigliate, OMS e Application Insights, hanno l'integrazione predefinita con Service Fabric, diversi eventi vengono scritti tramite provider ETW e sono estendibili con altre soluzioni di registrazione.Although the two solutions we recommended, OMS and Application Insights have built in integration with Service Fabric, many events are written out through etw providers and are extensible with other logging solutions. È opportuno prendere in considerazione anche Elastic Stack, soprattutto se si intende eseguire un cluster in un ambiente offline, Splunk, Dynatrace o qualsiasi altra piattaforma preferita.You should also look into the Elastic Stack (especially if you are considering running a cluster in an offline environment), Splunk, Dynatrace, or any other platform of your preference.

Nella scelta della piattaforma si deve considerare l'interfaccia utente e le opzioni di query, la possibilità di visualizzare i dati e creare dashboard facilmente leggibili, oltre agli strumenti aggiuntivi offerti per migliorare il monitoraggio, ad esempio gli avvisi automatici.The key points for any platform you choose should include how comfortable you are with the user interface and querying options, the ability to visualize data and create easily readable dashboards, and the additional tools they provide to enhance your monitoring, such as automated alerting.

Passaggi successiviNext steps