Telemetria di Servizi multimediali di AzureAzure Media Services Telemetry

Tramite Servizi multimediali di Azure è possibile accedere ai dati di telemetria e delle metriche relativi ai servizi.Azure Media Services (AMS) enables you to access telemetry/metrics data for its services. La versione corrente di AMS consente di raccogliere i dati di telemetria relativi alle entità Channel live, StreamingEndpoint e Archive live.The current version of AMS lets you collect telemetry data for live Channel, StreamingEndpoint, and live Archive entities.

I dati di telemetria vengono scritti in una tabella di archiviazione all'interno di un account di Archiviazione di Azure specificato dall'utente (in genere quello associato all'account di AMS).Telemetry is written to a storage table in an Azure Storage account that you specify (typically, you would use the storage account associated with your AMS account).

Il sistema di telemetria non gestisce la conservazione dei dati.The telemetry system does not manage data retention. È possibile rimuovere i vecchi dati di telemetria eliminando le tabelle di archiviazione.You can remove the old telemetry data by deleting the storage tables.

Questo argomento illustra come configurare e usare i dati di telemetria di AMS.This topic discusses how to configure and consume the AMS telemetry.

Configurare la telemetriaConfiguring telemetry

È possibile configurare i dati di telemetria con granularità a livello di componente.You can configure telemetry on a component level granularity. Esistono due livelli di dettaglio: "Normal" e "Verbose".There are two detail levels "Normal" and "Verbose". Attualmente, entrambi i livelli restituiscono le stesse informazioni.Currently, both levels return the same information. Si consiglia di usare "Normal".It is recommended to use "Normal.

Gli argomenti seguenti illustrano come abilitare la telemetria:The following topics show how to enable telemetry:

Abilitare la telemetria con .NETEnabling telemetry with .NET

Abilitare la telemetria con RESTEnabling telemetry with REST

Uso delle informazioni di telemetriaConsuming telemetry information

I dati di telemetria vengono scritti in una tabella di archiviazione di Azure nell'account di archiviazione specificato dall'utente al momento di configurare la telemetria per l'account di Servizi multimediali.Telemetry is written to an Azure Storage Table in the storage account that you specified when you configured telemetry for the Media Services account. Questa sezione descrive le tabelle di archiviazione relative alle metriche.This section describes the storage tables for the metrics.

I dati di telemetria possono essere usati in uno dei modi seguenti:You can consume telemetry data in one of the following ways:

  • Leggere i dati direttamente da Archiviazione tabelle di Azure tramite, ad esempio, Storage SDK.Read data directly from Azure Table Storage (e.g. using the Storage SDK). Per la descrizione delle tabelle di archiviazione di dati di telemetria, vedere Uso delle informazioni di telemetria in questo argomento.For the description of telemetry storage tables, see the Consuming telemetry information in this topic.

OrOr

  • Usare il supporto presente nel .NET SDK di Servizi multimediali per leggere i dati di archiviazione, come descritto in questo argomento.Use the support in the Media Services .NET SDK for reading storage data, as described in this topic.

Lo schema telemetrico descritto di seguito è pensato per assicurare buone prestazioni entro i limiti dell'archiviazione tabelle di Azure:The telemetry schema described below is designed to give good performance within the limits of Azure Table Storage:

  • I dati vengono partizionati per ID account e ID di servizio, per consentire di eseguire query sulla telemetria di ogni servizio in modo indipendente.Data is partitioned by account ID and service ID to allow telemetry from each service to be queried independently.
  • Le partizioni contengono la data per assegnare un ragionevole limite superiore alle dimensioni delle partizioni.Partitions contain the date to give a reasonable upper bound on the partition size.
  • Le chiavi di riga sono in ordine cronologico inverso per consentire di eseguire query sugli ultimi elementi di telemetria di un determinato servizio.Row keys are in reverse time order to allow the most recent telemetry items to be queried for a given service.

Ciò dovrebbe garantire l'efficienza di molte query comuni:This should allow many of the common queries to be efficient:

  • Download parallelo e indipendente dei dati da destinare ad altri servizi.Parallel, independent downloading of data for separate services.
  • Recupero di tutti i dati relativi a un servizio in un certo intervallo di date.Retrieving all data for a given service in a date range.
  • Recupero degli ultimi dati relativi a un servizio.Retrieving the most recent data for a service.

Schema di output dell'archiviazione tabelle di telemetriaTelemetry table storage output schema

I dati di telemetria sono archiviati tutti insieme nella tabella "TelemetryMetrics20160321" dove "20160321" è la data di creazione della tabella.Telemetry data is stored in aggregate in one table, "TelemetryMetrics20160321" where "20160321" is date of the created table. Il sistema di telemetria crea una nuova tabella per ogni giornata alle ore 00:00 UTC.Telemetry system creates a separate table for each new day based at 00:00 UTC. In questa tabella vengono archiviati i valori ricorrenti, come la velocità in bit delle operazioni di inserimento in un determinato intervallo di tempo, i byte inviati e così via.The table is used to store recurring values such as ingest bitrate within a given window of time, bytes sent, etc.

ProprietàProperty ValoreValue Esempi/noteExamples/notes
PartitionKeyPartitionKey {ID account}{ID entità}{account ID}{entity ID} e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66<br/e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66<br/
L'ID dell'account viene incluso nella chiave di partizione per semplificare i flussi di lavoro in quei casi in cui nello stesso account di archiviazione scrivono più account di Servizi multimediali.The account ID is included in the partition key to simplify workflows where multiple Media Services accounts are writing to the same storage account.
RowKeyRowKey {secondi a mezzanotte}{valore casuale}{seconds to midnight}{random value} 01688_0019901688_00199

La chiave di riga inizia con il numero di secondi che mancano alla mezzanotte per consentire le principali query di stile all'interno di una partizione.The row key starts with the number of seconds to midnight to allow top n style queries within a partition. Per altre informazioni, vedere questo articolo.For more information, see this article.
TimestampTimestamp Data/oraDate/Time Timestamp automatico della tabella di Azure 2016-09-09T22:43:42.241ZAuto timestamp from the Azure table 2016-09-09T22:43:42.241Z
TipoType Tipo di entità che fornisce i dati di telemetriaThe type of the entity providing telemetry data Channel/StreamingEndpoint/ArchiveChannel/StreamingEndpoint/Archive

Il tipo di evento è semplicemente un valore stringa.Event type is just a string value.
NomeName Nome dell'evento di telemetriaThe name of the telemetry event ChannelHeartbeat/StreamingEndpointRequestLogChannelHeartbeat/StreamingEndpointRequestLog
ObservedTimeObservedTime L'ora (UTC) in cui si è verificato l'evento di telemetriaThe time the telemetry event occurred (UTC) 2016-09-09T22:42:36.924Z2016-09-09T22:42:36.924Z

L'ora osservata è fornita dall'entità che invia i dati di telemetria (ad esempio un canale).The observed time is provided by the entity sending the telemetry (for example a channel). Poiché possono esserci problemi di sincronizzazione tra i componenti, questo valore è approssimativoThere can be time synchronization issues between components so this value is approximate
ServiceIDServiceID {ID servizio}{service ID} f70bd731-691d-41c6-8f2d-671d0bdc9c7ef70bd731-691d-41c6-8f2d-671d0bdc9c7e
Proprietà specifiche di entitàEntity-specific properties Come definito dall'eventoAs defined by the event NomeFlusso: flusso1, bitrate 10123, ...StreamName: stream1, Bitrate 10123, …

Vengono definite le proprietà rimanenti per il tipo di evento specificato.The remaining properties are defined for the given event type. Il contenuto della tabella di Azure corrisponde a coppie valore-chiave.Azure Table content is key value pairs. (ovvero a diverse righe della tabella corrispondono diversi set di proprietà).(that is, different rows in the table have different sets of properties).

Schema specifico di entitàEntity-specific schema

Esistono tre tipi di dati di telemetria specifici di entità inseriti con la seguente frequenza:There are three types of entity-specific telemetric data entries each pushed with the following frequency:

  • Endpoint di streaming: ogni 30 secondiStreaming endpoints: Every 30 seconds
  • Canali live: ogni minutoLive channels: Every minute
  • Archivio live: ogni minutoLive archive: Every minute

Endpoint di streamingStreaming Endpoint

ProprietàProperty ValoreValue esempiExamples
PartitionKeyPartitionKey PartitionKeyPartitionKey e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66
RowKeyRowKey RowKeyRowKey 01688_0019901688_00199
TimestampTimestamp TimestampTimestamp Timestamp automatico della tabella di Azure 2016-09-09T22:43:42.241ZAuto timestamp from Azure Table 2016-09-09T22:43:42.241Z
TipoType TipoType StreamingEndpointStreamingEndpoint
NomeName NomeName StreamingEndpointRequestLogStreamingEndpointRequestLog
ObservedTimeObservedTime ObservedTimeObservedTime 2016-09-09T22:42:36.924Z2016-09-09T22:42:36.924Z
ServiceIDServiceID ID del servizioService ID f70bd731-691d-41c6-8f2d-671d0bdc9c7ef70bd731-691d-41c6-8f2d-671d0bdc9c7e
HostNameHostName Nome host dell'endpointHostname of the endpoint builddemoserver.Origin.mediaservices.Windows.NETbuilddemoserver.origin.mediaservices.windows.net
StatusCodeStatusCode Stato dei record HTTPRecords HTTP status 200200
ResultCodeResultCode Dettagli del codice risultatoResult code detail S_OKS_OK
RequestCountRequestCount Totale delle richieste nell'aggregazioneTotal request in the aggregation 33
BytesSentBytesSent Insieme dei byte inviatiAggregated bytes sent 29873582987358
ServerLatencyServerLatency Latenza media del server (inclusa l'archiviazione)Average server latency (including storage) 129129
E2ELatencyE2ELatency Latenza end-to-end mediaAverage end-to-end latency 250250

Canale liveLive channel

ProprietàProperty ValoreValue Esempi/noteExamples/notes
PartitionKeyPartitionKey PartitionKeyPartitionKey e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66
RowKeyRowKey RowKeyRowKey 01688_0019901688_00199
TimestampTimestamp TimestampTimestamp Timestamp automatico della tabella di Azure 2016-09-09T22:43:42.241ZAuto timestamp from the Azure table 2016-09-09T22:43:42.241Z
TipoType TipoType canaleChannel
NomeName NomeName ChannelHeartbeatChannelHeartbeat
ObservedTimeObservedTime ObservedTimeObservedTime 2016-09-09T22:42:36.924Z2016-09-09T22:42:36.924Z
ServiceIDServiceID ID del servizioService ID f70bd731-691d-41c6-8f2d-671d0bdc9c7ef70bd731-691d-41c6-8f2d-671d0bdc9c7e
TrackTypeTrackType Tipo di testo traccia di testo/video/audioType of track video/audio/text video/audiovideo/audio
TrackNameTrackName Nome della tracciaName of the track video/audio_1video/audio_1
BitrateBitrate Velocità in bit della tracciaTrack bitrate 785000785000
CustomAttributesCustomAttributes
IncomingBitrateIncomingBitrate Velocità in bit in ingresso effettivaActual incoming bitrate 784548784548
OverlapCountOverlapCount Sovrapposizione nell'inserimentoOverlap in the ingest 00
DiscontinuityCountDiscontinuityCount Discontinuità di tracciaDiscontinuity for track 00
LastTimestampLastTimestamp Timestamp degli ultimi dati inseritiLast ingested data timestamp 18004888001800488800
NonincreasingCountNonincreasingCount Numero di frammenti scartati a causa del timestamp invariatoCount of fragments discarded due to non-increasing timestamp 22
UnalignedKeyFramesUnalignedKeyFrames Eventuali frammenti (con vari livelli di qualità) ricevuti con fotogrammi chiave non allineatiWhether we received fragment(s) (across quality levels) where key frames not aligned TrueTrue
UnalignedPresentationTimeUnalignedPresentationTime Eventuali frammenti (con vari livelli/tracce di qualità) ricevuti con l'ora di presentazione non allineataWhether we received fragment(s) (across quality levels/tracks) where presentation time is not aligned TrueTrue
UnexpectedBitrateUnexpectedBitrate True, se la frequenza in bit audio/video calcolata/effettiva è > 40.000 bps e IncomingBitrate è = = 0 O i valori IncomingBitrate e actualBitrate sono diversi del 50%True, if calculated/actual bitrate for audio/video track > 40,000 bps and IncomingBitrate == 0 OR IncomingBitrate and actualBitrate differ by 50% TrueTrue
HealthyHealthy True, seTrue, if
overlapCount,overlapCount,
DiscontinuityCount,DiscontinuityCount,
NonIncreasingCount,NonIncreasingCount,
UnalignedKeyFrames,UnalignedKeyFrames,
UnalignedPresentationTime,UnalignedPresentationTime,
UnexpectedBitrateUnexpectedBitrate
sono tutti pari a 0are all 0
TrueTrue

Healthy è una funzione composita che restituisce il valore false in presenza di una delle seguenti condizioni:Healthy is a composite function that returns false when any of the following conditions hold:

- OverlapCount > 0- OverlapCount > 0
- DiscontinuityCount > 0- DiscontinuityCount > 0
- NonincreasingCount > 0- NonincreasingCount > 0
- UnalignedKeyFrames == True- UnalignedKeyFrames == True
- UnalignedPresentationTime == True- UnalignedPresentationTime == True
- UnexpectedBitrate == True- UnexpectedBitrate == True

Archivio liveLive archive

ProprietàProperty ValoreValue Esempi/noteExamples/notes
PartitionKeyPartitionKey PartitionKeyPartitionKey e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66e49bef329c29495f9b9570989682069d_64435281c50a4dd8ab7011cb0f4cdf66
RowKeyRowKey RowKeyRowKey 01688_0019901688_00199
TimestampTimestamp TimestampTimestamp Timestamp automatico della tabella di Azure 2016-09-09T22:43:42.241ZAuto timestamp from the Azure table 2016-09-09T22:43:42.241Z
TipoType TipoType ArchiviazioneArchive
NomeName NomeName ArchiveHeartbeatArchiveHeartbeat
ObservedTimeObservedTime ObservedTimeObservedTime 2016-09-09T22:42:36.924Z2016-09-09T22:42:36.924Z
ServiceIDServiceID ID del servizioService ID f70bd731-691d-41c6-8f2d-671d0bdc9c7ef70bd731-691d-41c6-8f2d-671d0bdc9c7e
ManifestNameManifestName URL del programmaProgram url asset-eb149703-ed0a-483c-91c4-e4066e72cce3/a0a5cfbf-71ec-4bd2-8c01-a92a2b38c9ba.ismasset-eb149703-ed0a-483c-91c4-e4066e72cce3/a0a5cfbf-71ec-4bd2-8c01-a92a2b38c9ba.ism
TrackNameTrackName Nome della tracciaName of the track audio_1audio_1
TrackTypeTrackType Tipo di tracciaType of the track Audio/videoAudio/video
CustomAttributeCustomAttribute Stringa esadecimale che opera la distinzione fra tracce diverse con lo stesso nome e la stessa velocità in bit (diverse angolazioni)Hex string that differentiates between different track with same name and bitrate (multi camera angle)
BitrateBitrate Velocità in bit della tracciaTrack bitrate 785000785000
HealthyHealthy True, se FragmentDiscardedCount == 0 e ArchiveAcquisitionError == FalseTrue, if FragmentDiscardedCount == 0 && ArchiveAcquisitionError == False True (questi due valori non sono presenti nella metrica, ma lo sono nell'evento di origine)True (these two values are not present in the metric but they are present in the source event)

Healthy è una funzione composita che restituisce il valore false in presenza di una delle seguenti condizioni:Healthy is a composite function that returns false when any of the following conditions hold:

- FragmentDiscardedCount > 0- FragmentDiscardedCount > 0
- ArchiveAcquisitionError == True- ArchiveAcquisitionError == True

Domande generaliGeneral Q&A

Come si usano i dati di metrica?How to consume metrics data?

I dati di metrica vengono archiviati come una serie di tabelle di Azure nell'account di archiviazione del cliente.Metrics data is stored as a series of Azure Tables in the customer’s storage account. Questi dati possono essere usati con gli strumenti seguenti:This data can be consumed using the following tools:

  • SDK DI AMSAMS SDK
  • Microsoft Azure Storage Explorer (supporta l'esportazione in valori con formato delimitato da virgole ed elaborati in Excel)Microsoft Azure Storage Explorer (supports export to comma-separated value format and processed in Excel)
  • API RESTREST API

Come si fa a risalire al consumo medio della larghezza di banda?How to find average bandwidth consumption?

Il consumo medio della larghezza di banda è la media del valore BytesSent in un determinato intervallo di tempo.The average bandwidth consumption is the average of BytesSent over a span of time.

Come si fa a definire il numero delle unità di streaming?How to define streaming unit count?

Il numero delle unità di streaming può essere definito come la velocità effettiva massima dagli endpoint di streaming del servizio, divisa per la velocità effettiva massima di un endpoint di streaming.The streaming unit count can be defined as the peak throughput from the service’s streaming endpoints divided by the peak throughput of one streaming endpoint. La velocità effettiva massima utilizzabile di un endpoint di streaming è 160 Mbps.The peak usable throughput of one streaming endpoint is 160 Mbps. Si supponga, ad esempio, che la velocità effettiva massima del servizio di un cliente sia 40 MBps (il valore BytesSent massimo in un determinato intervallo di tempo).For example, suppose the peak throughput from a customer’s service is 40 MBps (the maximum value of BytesSent over a span of time). In questo caso il numero delle unità di streaming è uguale a (40 MBps)(8 bit/byte)/(160 Mbps) = 2 unità di streaming.Then, the streaming unit count is equal to (40 MBps)(8 bits/byte)/(160 Mbps) = 2 streaming units.

Come si fa a risalire alla media delle richieste al secondo?How to find average requests/second?

Per trovare il numero medio di richieste al secondo, calcolare il numero medio di richieste (RequestCount) in un determinato intervallo di tempo.To find the average number of requests/second, compute the average number of requests (RequestCount) over a span of time.

Come si fa a definire l'integrità del canale?How to define channel health?

L'integrità del canale può essere definita come una funzione booleana composita, che risulta false in presenza di una delle seguenti condizioni:Channel health can be defined as a composite Boolean function such that it is false when any of the following conditions hold:

  • OverlapCount > 0OverlapCount > 0
  • DiscontinuityCount > 0DiscontinuityCount > 0
  • NonincreasingCount > 0NonincreasingCount > 0
  • UnalignedKeyFrames == TrueUnalignedKeyFrames == True
  • UnalignedPresentationTime == TrueUnalignedPresentationTime == True
  • UnexpectedBitrate == TrueUnexpectedBitrate == True

Come si fa a rilevare discontinuità?How to detect discontinuities?

Per individuare eventuali discontinuità, risalire a tutte le voci di dati del canale dove DiscontinuityCount > 0.To detect discontinuities, find all Channel data entries where DiscontinuityCount > 0. Il timestamp ObservedTime corrispondente indica le ore in cui si sono verificate le discontinuità.The corresponding ObservedTime timestamp indicates the times at which the discontinuities occurred.

Come si fa a rilevare le sovrapposizioni del timestamp?How to detect timestamp overlaps?

Per rilevare le sovrapposizioni del timestamp, individuare tutte le voci di dati del canale dove OverlapCount > 0.To detect timestamp overlaps, find all Channel data entries where OverlapCount > 0. Il timestamp ObservedTime corrispondente indica le ore in cui si è verificata la sovrapposizione del timestamp.The corresponding ObservedTime timestamp indicates the times at which the timestamp overlaps occurred.

Come si fa a risalire agli errori nelle richieste di streaming e alle relative cause?How to find streaming request failures and reasons?

Per trovare gli errori nelle richieste di streaming e le relative cause, cercare tutti i dati Streaming Endpoint in cui ResultCode è diverso da S_OK.To find streaming request failures and reasons, find all Streaming Endpoint data entries where ResultCode is not equal to S_OK. Il campo StatusCode corrispondente indica il motivo dell'errore della richiesta.The corresponding StatusCode field indicates the reason for the request failure.

Come faccio a usare i dati con strumenti esterni?How to consume data with external tools?

I dati di telemetria possono essere elaborati e visualizzati con gli strumenti seguenti:Telemetric data can be processed and visualized with the following tools:

  • PowerBIPowerBI
  • Application InsightsApplication Insights
  • Monitoraggio di Azure (in precedenza Shoebox)Azure Monitor (formerly Shoebox)
  • Dashboard in tempo reale di AMSAMS Live Dashboard
  • Portale di Azure (in attesa di rilascio)Azure Portal (pending release)

Come si fa a gestire la conservazione dei dati?How to manage data retention?

Il sistema di telemetria non consente di gestire la conservazione dei dati o l'eliminazione automatica dei vecchi record.The telemetry system does not provide data retention management or auto deletion of old records. Pertanto, i record obsoleti devono essere gestiti ed eliminati manualmente dalla tabella di archiviazione.Thus, you need to manage and delete old records manually from the storage table. Consultare l'SDK dell'archiviazione per sapere come fare.You can refer to storage SDK for how to do it.

Passaggi successiviNext steps

Altre informazioni sui percorsi di apprendimento di Servizi multimediali di Azure:Read about the Azure Media Services learning paths:

Fornire commenti e suggerimentiProvide feedback

Usare il forum di suggerimenti degli utenti per fornire commenti e suggerimenti su come migliorare Servizi multimediali di Azure.Use the User Voice forum to provide feedback and make suggestions on how to improve Azure Media Services. È anche possibile passare direttamente a una delle categorie seguenti:You also can go directly to one of the following categories: