Ocorrências

A linha do tempo persistente de toda aresta de ocorrência, observada pelo juiz de uma execução ou pelo vigia do modo Sempre fora de execução, com a condição congelada por trás de cada uma.

Ver como Markdown

A aba Ocorrências de Eventos (/events?view=occurrences) é a linha do tempo persistente do que as coisas sob teste fizeram: uma linha por aresta de ocorrência, tenha sido o juiz de uma execução ou o vigia do modo Sempre, de fora de execução, quem a observou. Vê-la exige Ver eventos; exportar exige Exportar/importar históricos. As ocorrências são definidas por modelo em Process > Preparação > Ocorrências; esta aba lê o histórico delas e não muda nada.

Ela segue a conduta compartilhada das três linhas do tempo descrita em Eventos: 500 linhas por página com um paginador embaixo, um período, uma busca com atraso, atualização ao vivo, um painel de detalhes, exportação CSV e JSON do período inteiro.

O que é uma linha

Uma ocorrência é uma condição booleana sobre os canais de um modelo, com um atraso de liga e um atraso de desliga. Uma linha é uma das quatro transições de uma sessão de observação:

Transição Significado
Ativada A condição subiu e se manteve pelo atraso de liga.
Normalizada A condição caiu e se manteve pelo atraso de desliga.
Indisponível Um ou mais canais que a condição referencia pararam de entregar valor. O juiz segura a última condição confirmada e nunca fabrica uma normalização.
Restaurada Todo canal referenciado entrega de novo; a condição é avaliada do zero e o seu atraso recomeça.

Cada linha também diz em qual escopo ela foi observada e por que a sua sessão começou:

Campo Valores Significado
Escopo Execução, Fora de execução Execução: o juiz da própria execução, armado pelo procedimento; a aresta também é escrita no arquivo daquela execução. Fora de execução: o vigia do modo Sempre, que lê os vínculos da unidade entre execuções.
Motivo Execução iniciada, Execução retomada, Vigia iniciado, Observação fora de execução retomada, Definição alterada Por que uma sessão de observação nova começou: uma execução começou; uma execução foi retomada depois de a aplicação reiniciar; o vigia do modo Sempre começou para esta ocorrência e unidade; a unidade voltou à observação fora de execução depois de uma execução; ou a condição, os atrasos, os canais referenciados, o estado de habilitação ou o modo de armar foram editados.

Uma sessão nova começa do zero: nenhuma condição, disponibilidade ou estado de antirrepique atravessa um intervalo sem observação, então uma condição já verdadeira pode produzir outra Ativada quando uma execução começa ou quando a aplicação volta, e não existe linha sintética de "sessão iniciada" nesta linha do tempo. O arquivo da própria execução grava a fronteira da sessão mesmo quando nenhuma transição a segue; Históricos e relatórios usam isso para classificar uma ativação aberta mais antiga como Interrompida. Essa marca fica fora desta linha do tempo e não gera notificação nenhuma. Edições só de exibição (nome, mensagem, severidade) preservam a sessão e mudam apenas os snapshots posteriores.

Busca e filtro

Controle Valores O que faz
Busca Texto de exemplo "Buscar nome, mensagem, modelo, unidade ou procedimento" Casamento por "contém" no nome da ocorrência, na sua mensagem, no nome do modelo, no nome da unidade e no nome do procedimento, como foram fotografados na hora.
Severidade Todas as severidades (padrão), Crítica, Alerta, Informação Mantém apenas as transições de ocorrências que carregavam aquela severidade quando aconteceram.
Atualizar Relê o diário; dica "Atualizar ocorrências".
Exportar Exportar como CSV…, Exportar como JSON… Grava as linhas listadas no momento. Desenhado apenas com Exportar/importar históricos; fica cinza enquanto a lista está vazia.

As linhas

Parte da linha Conteúdo
Hora Data e hora em que o juiz observou a aresta (numa execução, o instante da própria amostra julgada).
Ponto O tom da severidade: crítico para Crítica, cautela para Alerta, neutro para Informação.
Nome O nome da ocorrência na hora.
Resumo "Transição · obs N (Motivo) · Modelo / Unidade · contexto", onde N é a posição da aresta dentro da sua sessão e o contexto é "Execução · " seguido do nome do procedimento (ou apenas "Execução" quando nenhum nome de procedimento foi gravado) ou "Fora de execução". Exemplo: "Ativada · obs 1 (Execução iniciada) · Forno / Linha 2 · Execução · Cozimento 180".
Nível A palavra da severidade.

A mensagem que uma linha carrega é a mensagem da própria ocorrência para Ativada e Normalizada (vazia quando a definição não tem nenhuma, mostrada como "Nenhuma mensagem capturada." no painel) e, para as arestas de disponibilidade, "Sinal indisponível:" ou "Sinal restaurado:" seguido dos nomes dos canais afetados, separados por vírgulas.

O painel de detalhes

Selecionar uma linha abre o painel com o distintivo da severidade e o nome, o instante completo, a linha de resumo, a mensagem e quatro cartões:

Cartão Campo Conteúdo
EVENTO Nível A severidade.
EVENTO ID do evento A identidade desta aresta no diário. Numa observação de execução, é o mesmo id que o arquivo da execução guarda.
SNAPSHOT DA OCORRÊNCIA Transição Ativada, Normalizada, Indisponível ou Restaurada.
SNAPSHOT DA OCORRÊNCIA Modelo O nome do modelo na hora.
SNAPSHOT DA OCORRÊNCIA Unidade O nome da unidade na hora.
SNAPSHOT DA OCORRÊNCIA Escopo Execução ou Fora de execução.
SNAPSHOT DA OCORRÊNCIA Procedimento Só no escopo Execução: o nome do procedimento, ou um traço quando nenhum foi gravado.
SNAPSHOT DA OCORRÊNCIA ID da execução Só no escopo Execução: o id da execução, o mesmo que Históricos mostra.
SNAPSHOT DA OCORRÊNCIA ID do modelo, ID da unidade, ID da ocorrência Os ids estáveis por trás dos nomes, que renomear não muda.
SESSÃO DE OBSERVAÇÃO Sequência no diário O número de inserção da linha no diário, que ordena linhas com o mesmo instante.
SESSÃO DE OBSERVAÇÃO ID da observação A identidade da sessão que observou a aresta; toda aresta de uma sessão a compartilha.
SESSÃO DE OBSERVAÇÃO Sequência da transição A ordem da aresta dentro da sessão, começando em um. Um salto significa uma aresta que o diário não conseguiu persistir.
SESSÃO DE OBSERVAÇÃO Início Quando a sessão começou, como instante completo.
SESSÃO DE OBSERVAÇÃO Motivo Execução iniciada, Execução retomada, Vigia iniciado, Observação fora de execução retomada ou Definição alterada.
CONFIGURAÇÃO CONGELADA Condição A condição JavaScript que a sessão de fato julgou.
CONFIGURAÇÃO CONGELADA Atraso de liga / desliga "x ms / y ms", o antirrepique que a sessão usou.
CONFIGURAÇÃO CONGELADA IDs dos canais referenciados Os ids dos canais que condicionaram a condição, separados por ponto e vírgula.

Copiar evento copia uma linha: "instante | Ocorrência | severidade | nome | resumo | mensagem | EventId=… | OccurrenceId=… | ObservationId=… | ObservationSequence=… | ObservationStartedAt=… | ObservationReason=… | Condition=… | OnDelayMs=… | OffDelayMs=… | ReferencedChannelIds=…".

Colunas da exportação

O CSV e o JSON carregam os mesmos campos, nesta ordem: Timestamp (o cabeçalho do CSV acrescenta a referência de tempo, "Timestamp (UTC-03:00)"), JournalSequence, Severity, Name, Transition, Scope, Model, ModelId, Unit, UnitId, Procedure, RunId, Message, EventId, OccurrenceId, ObservationId, ObservationSequence, ObservationStartedAt, ObservationReason, Condition, OnDelayMs, OffDelayMs e ReferencedChannelIds (separados por ponto e vírgula no CSV, um vetor no JSON). O JSON é um envelope com TimeZone e Events. Os nomes dos arquivos são occurrence-history-<yyyyMMdd-HHmmss>.csv e .json. O CSV segue a preferência de separador decimal da estação como toda outra exportação: com decimais por ponto o separador de lista é ,, com decimais por vírgula ele é ;. Uma célula que começa com =, +, - ou @ recebe um apóstrofo na frente para que a planilha a leia como texto.

Onde mais uma ocorrência é gravada

Uma observação de execução é escrita primeiro no arquivo da própria execução e depois copiada para cá com o mesmo id de evento e o contexto da execução; se a cópia falhar, o arquivo da execução ainda guarda a aresta e o Console carrega uma linha de Error dizendo isso. Uma observação fora de execução existe apenas aqui. Toda aresta também deixa uma linha no Console sob a área Process: uma ativação no nível da sua severidade (Crítica como erro, Alerta como alerta, Informação como informação), uma perda de sinal nesse mesmo nível, uma normalização e uma restauração como informação. Uma ativação ainda levanta uma notificação dentro da janela intitulada "Ocorrência · " seguida do nome da unidade e, para uma ativação de Alerta ou Crítica observada durante uma execução, uma notificação do sistema operacional enquanto a janela está escondida ou minimizada.

Estados vazios e a linha de status

  • "Nenhuma ocorrência ainda" com "As transições de ocorrência vindas de execuções e do monitoramento do modo Sempre fora de execução vão aparecer aqui."
  • "Nenhuma ocorrência casa com estes filtros" com "Ajuste a severidade ou os termos de busca para ampliar este histórico."
  • A linha de status diz "N mostradas · página 1" e, em seguida, " · filtrado" quando uma busca, uma severidade ou um período está em vigor; à direita, "1 selecionada" e "Atualizado hh:mm:ss".

O que a aba Ocorrências não faz

  • Ela não define, arma nem edita uma ocorrência (Process > Preparação > Ocorrências).
  • Ela não emparelha arestas em episódios com duração: essa visão derivada, com as suas classificações Interrompida e Incompleta, está em Históricos para uma execução e nos painéis da própria unidade.
  • Ela não tem filtro por unidade, execução, escopo ou data; busque pelo nome da unidade, do modelo ou do procedimento, ou abra a execução em Históricos.
  • Ela não mostra estado ao vivo: se uma ocorrência está ativa agora se lê no painel da unidade, não aqui.