In questa pagina viene descritto come utilizzare i log della piattaforma generati dall'API Live Stream come
parte di Cloud Logging. L'API Live Stream utilizza il nome del servizio dell'API Logging
livestream.googleapis.com
per registrare le attività relative al canale.
Prima di iniziare
- Assicurati di disporre delle autorizzazioni e dei ruoli IAM corretti per visualizzare e gestire i log.
Attiva il logging della piattaforma
Per impostazione predefinita, la piattaforma livestream.googleapis.com/channel_activities
registra
L'API Live Stream è disattivata. Per attivare i log, devi specificare un livello di gravità durante la creazione o l'aggiornamento della risorsa del canale.
Per attivare i log, aggiungi il seguente campo al corpo JSON della richiesta del metodo
projects.locations.channels.create
o
projects.locations.channels.patch
:
"logConfig": { "logSeverity": "SEVERITY_LEVEL" },
dove SEVERITY_LEVEL
è uno dei seguenti:
OFF
DEBUG
INFO
WARNING
ERROR
Dopo aver scelto un livello di gravità dei log per un canale, solo la piattaforma registra
vengono registrati un livello di gravità superiore o uguale a quello scelto.
Ad esempio, se il livello di gravità è WARNING
, vengono registrati solo i log con livello di gravità WARNING
e ERROR
. Se il livello di gravità è INFO
, i log di tutti
vengono registrati i livelli di gravità eccetto DEBUG
.
Per ulteriori informazioni sui livelli di gravità dei log, consulta LogSeverity.
Visualizza i log della piattaforma
Per visualizzare i log della piattaforma, segui le istruzioni riportate di seguito:
Console
Per visualizzare i log della piattaforma nella console Google Cloud:
Vai a Esplora log:
Seleziona il progetto Google Cloud appropriato.
Nel campo Query, inserisci il seguente comando di query:
resource.labels.channel_id=CHANNEL_ID resource.labels.location=LOCATION logName="projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities"
dove:
CHANNEL_ID
è l'ID del canale di cui vuoi eseguire il debug o il monitoraggio. Ad esempio,my-channel
.LOCATION
è la posizione del canale di cui vuoi eseguire il debug o il monitoraggio. Ad esempio,us-central1
.PROJECT_ID
è l'ID del progetto contenente il canale di cui vuoi eseguire il debug o il monitoraggio. Ad esempio,my-project
.
Fai clic su Esegui query.
Per ulteriori informazioni su Esplora log, consulta Panoramica di Esplora log e Utilizzo di Esplora log.
gcloud
Lo strumento a riga di comando gcloud fornisce un'interfaccia a riga di comando per Cloud Logging.
Per visualizzare i log di channel_activities
per il tuo progetto, esegui il seguente comando:
gcloud logging read "logName:projects/PROJECT_ID/logs/livestream.googleapis.com%2Fchannel_activities" --project=PROJECT_ID
dove PROJECT_ID
è l'ID del tuo progetto Google Cloud.
Per ulteriori informazioni sull'utilizzo dello strumento gcloud con Cloud Logging, consulta
gcloud logging
Utilizza i log della piattaforma
Questa sezione descrive come utilizzare e interpretare log specifici della piattaforma per API Live Stream.
eventStateChange
I log eventStateChange
vengono generati quando lo stato di un evento del canale
modifiche. Il livello di gravità di un log eventStateChange
è ERROR
quando
Il nuovo stato dell'evento del canale è FAILED
. In caso contrario, il livello di gravità
eventStateChange
log è INFO
.
Di seguito è riportato un esempio di log eventStateChange
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" eventStateChange: { eventId: "my-ad-break" newState: "SCHEDULED" previousState: "PENDING" } message: "State of event "my-ad-break" changed from "PENDING" to "SCHEDULED"." } ... severity: "INFO" ... }
scte35CommandReceived
I log scte35CommandReceived
vengono generati quando il flusso di input riceve un
SCTE35. Il livello di gravità per un log scte35CommandReceived
è INFO
.
Di seguito è riportato un esempio di log scte35CommandReceived
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" scte35CommandReceived: { spliceInfoSection: { ptsAdjustment: "123456789" spliceInsert: { availNum: 0 availsExpected: 0 breakDuration: null componentCount: 0 components: [0] durationFlag: false out0fNetworkIndicator: true programSpliceFlag: true spliceEventCancelIndicator: false spliceEventId: 123456789 spliceImmediateFlag: true spliceTime: null uniqueProgramId: 5 } } } message: "Received inband SCTE35 command, eventID=123456789." } ... severity: "INFO" ... }
streamingStateChange
I log streamingStateChange
vengono generati quando lo stato di flusso di un canale
modifiche. Il livello di gravità di un log streamingStateChange
è ERROR
quando
il nuovo stato del canale è STREAMING_ERROR
. In caso contrario, il livello di gravità
streamingStateChange
log è INFO
.
Di seguito è riportato un esempio di log streamingStateChange
in cui la versione precedente
lo stato è STREAMING_ERROR
e il nuovo stato è STREAMING
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" message: "streaming state of channel "CHANNEL_ID" changes from "STREAMING_ERROR" to "STREAMING"" streamingStateChange: { newState: "STREAMING" previousState: "STREAMING_ERROR" ... type: "livestream.googleapis.com/Channel" } severity: "INFO" ... }
Puoi aggiungere altri comandi nel campo Query di Esplora log per restringere il numero di log visualizzati.
Aggiungi il comando seguente per visualizzare tutti i log streamingStateChange
in cui il nuovo stato è STREAMING
:
jsonPayload.streamingStateChange.newState="STREAMING"
Aggiungi il comando seguente per visualizzare solo i log streamingStateChange
:
jsonPayload.streamingStateChange.newState:*
streamingError
I log streamingError
vengono generati quando un canale rileva un errore
. Il livello di gravità di un log di streamingError
è ERROR
.
Di seguito è riportato un esempio di log streamingError
in cui l'API Live Stream era
negata l'autorizzazione a caricare i file di output nel bucket Cloud Storage specificato:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" message: "A live streaming encounters an error." streamingError: { error: { ... message: "Permission denied to access the Cloud Storage bucket "STORAGE_BUCKET_NAME"" ... severity: "ERROR" ... }
Questo errore può verificarsi anche se il bucket Cloud Storage specificato non esiste.
Se in streamingError.message
viene visualizzato il messaggio This is due to an internal
error. If the error persists, please contact support team
, copia
contenuti e invialo al team di assistenza per la risoluzione dei problemi.
inputAccept
inputAccept
log vengono generati quando viene connesso correttamente un flusso di input
all'endpoint di input dell'API Live Stream. Il livello di gravità dei log di inputAccept
è INFO
.
Il campo inputStreamProperty
in un log inputAccept
include le seguenti informazioni sui sottostream video e audio dello stream di input:
Flussi video |
|
Stream audio |
|
Puoi utilizzare i log di inputAccept
per verificare il formato e lo stato di accettazione del
flusso di input:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputAccept: { inputAttachment: "input-primary" inputStreamProperty: { audioStreams: [ 0: { audioFormat: { channelCount: 2 channelLayout: [ 0: "fl" 1: "fr" ] codec: "aac" } index: 1 } ] videoStreams: [ 0: { videoFormat: { codec: "h264" frameRate: 60 heightPixels: 720 widthPixels: 1280 ... streamId: "STREAM_ID" } message: "Input stream "STREAM_ID" is accepted by channel "CHANNEL_ID" for input attachment "input-primary"" } ... severity: "INFO" ... }
Aggiungi il seguente comando nel campo Query di Esplora log per visualizzare solo i log inputAccept
per uno stream specifico:
jsonPayload.inputAccept.streamId="STREAM_ID"
dove STREAM_ID
è l'identificatore univoco di uno stream incluso nell'input
URI endpoint.
inputError
I log inputError
vengono generati quando un flusso di input viene rifiutato dal server
API Live Stream. Il livello di gravità per un log inputError
è ERROR
.
Di seguito è riportato un esempio di log inputError
in cui è stato inviato uno stream di input
a un canale che non è ancora stato avviato:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputError: { error: { ... message: "The channel has not been started yet" } streamId: "STREAM_ID" ... severity: "ERROR" ... }
Di seguito è riportato un esempio di log inputError
in cui un flusso di input duplicato
è stato inviato a un canale che sta già trasmettendo in streaming:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputError: { error: { code: 9 message: "input stream "STREAM_ID" has been accepted. Please verify if another input stream has been streaming to the same endpoint." } streamId: "STREAM_ID" ... severity: "ERROR" ... }
Aggiungi il comando seguente nel campo Query di Esplora log solo per visualizzare i dati
inputError
log per un flusso specifico:
jsonPayload.inputError.streamId="STREAM_ID"
dove STREAM_ID
è l'identificatore univoco di uno stream incluso nell'input
URI endpoint.
inputDisconnect
inputDisconnect
log vengono generati quando i flussi di input sono disconnessi
dall'API Live Stream. Puoi utilizzare i log di inputDisconnect
per controllare
disconnessioni impreviste del live streaming. Il livello di gravità di un log inputDisconnect
è INFO
.
Di seguito è riportato un esempio di log inputDisconnect
:
{ jsonPayload: { @type: "type.googleapis.com/google.cloud.video.livestream.logging.v1.ChannelActivity" inputDisconnect: { inputAttachment: "input-primary" streamId: "STREAM_ID" } message: "Input stream "STREAM_ID" is disconnected by channel "CHANNEL_ID" for input attachment "input-primary"" ... severity: "INFO" ... }