Leia a ocorrência recomendada
Instale a CLI do LogBrew e executelogbrew login. Copie o
UUID do problema de uma lista de problemas. A CLI valida a resposta antes de
imprimi-la.
--json para agentes e scripts. logbrew explain issue "<issue_id>" faz
a mesma leitura. Para ler direto pela API, peça a versão 13 da resposta. A CLI
pede a mesma versão:
response_version de 1 a 13. A seleção de ocorrência exige a
versão 2 ou posterior. Este guia descreve a versão 13.
A ocorrência recomendada é uma ocorrência retida recente com contexto útil. Ela
pode ser mais antiga que a última ocorrência. O LogBrew compara as ocorrências
retidas mais recentes, até
occurrence_selection.recommendation.candidate_limit. Ele escolhe a que tem
mais contexto para a investigação. Se duas ocorrências tiverem o mesmo
contexto, vence a mais recente. Se occurrence_selection.recommendation.candidate_window_truncated
for true, o problema tem ocorrências mais antigas que a recomendação não
avaliou.
Confirme o escopo da investigação
Os filtros da lista de problemas não se aplicam a uma investigação. O ID do problema seleciona o grupo, e a resposta pode incluir o histórico retido desse grupo. Um ID exato de ocorrência não remove esse histórico. Se a sua tarefa não permite esse histórico, não peça a investigação. Antes de interpretar o erro, confira se:subject.project_idé o projeto certo.event.idé a ocorrência selecionada.event.occurred_atestá dentro do período do incidente.- o serviço, o ambiente e a versão correspondem à implantação em análise.
schema_versioné13.
Selecione outra ocorrência
Envie um seletor:
Não envie
selection e occurrence_id juntos. Em subject,
first_seen_at e last_seen_at descrevem o grupo. As evidências detalhadas
pertencem ao event selecionado.
occurrence_selection também retorna resumos das ocorrências first,
latest, recommended e selected. occurrence_selection.reason informa
por que o LogBrew selecionou a ocorrência:
Leia a resposta nesta ordem
- Leia
subjectpara ver o grupo e, depois,eventpara ver a ocorrência selecionada. - Leia
grouping,lifecycleeoccurrence_analysispara ver o histórico do grupo. - Leia
fixpara ver o local no código. Mantenha aprovenancejunto com o arquivo, a função, a linha e a coluna. Um frame observado mostra o código a examinar, não uma causa comprovada. - Leia
cause.statuse as evidências dele. Nenhum valor de causa prova a causa raiz. - Leia
impact.user_impactseparado deimpact.occurrence_count. Mantenhacount_method,coverageelimitationsjunto com a contagem. Um usuário pode causar várias ocorrências. - Leia
reproduction.statuse, depois,correlations.
Local no código e causa
fix.status informa de onde vem o local no código:
cause.status é reported_hypothesis, evidence_only ou unknown. Uma
reported_hypothesis vem da aplicação e não foi verificada.
cause.signals lista os sinais observados, como unhandled_exception ou
error_trace_span. provenance é backend_observed ou
application_reported. Não misture os dois.
Encontre o arquivo-fonte
source_locator liga o local no código a um repositório quando a configuração
do projeto tem um repositório para o serviço. Use repository_full_name,
revision e repository_relative_file para abrir o arquivo.
revision_source é deployment_commit ou setup_snapshot.
Se source_locator.status for not_found, o serviço não tem um componente de
repositório vinculado. Isso não significa que o arquivo não existe. Não
adivinhe um componente pelo nome do arquivo.
Usuários afetados
known_affected_users é aproximado, mesmo quando o status é complete. Ele
não conta usuários anônimos nem ocorrências sem contexto de usuário. Uma
contagem null não é zero. impact.reported guarda valores que a aplicação
informou. Não some esses valores às contagens medidas.
Status da reprodução
O gatilho vem de
event.request ou de impact.reported.failed_action. A
falha esperada vem de event.exception ou de
event.request.response_status_code. O local no código é fix.location.
reproduction.baseline_occurrence_id é a ocorrência selecionada. O
comprovante reproduction.evidence registra cada dado como
reproduction.trigger, reproduction.expected_failure e
reproduction.code_location. O status ready não prova que uma reprodução
deu certo. Nunca invente corpos de requisição, valores ocultados nem etapas.
Ciclo de vida e regressão
lifecycle.persisted_status é o status armazenado. lifecycle.effective_status
é regressed quando uma ocorrência chega depois que o problema foi resolvido.
O status armazenado continua resolved até que uma pessoa reabra o problema.
lifecycle.regression.first_reappeared_occurrence identifica a primeira
ocorrência nova.
A resposta da investigação mostra um problema arquivado como ignored em
subject.status e em lifecycle. Consulte Valores de status.
Lide com evidências ausentes ou limitadas
correlations.trace.status tem estes valores:
Com
not_linked, continue com a exceção, os frames, os breadcrumbs e as
outras evidências retornadas. Com not_found, guarde o ID exato do trace. Com
unavailable, tente novamente mais tarde. Nenhum desses status significa que
a aplicação não tem traces. Um trace available pode conter só o span de
captura do problema. Consulte
Spans de captura.
correlations.logs guarda logs próximos do horário da ocorrência, da mesma
versão e do mesmo ambiente. Quando a ocorrência tem um ID de trace, os logs vêm
desse trace. Sem ID de trace, eles vêm do mesmo serviço. actions,
metrics e related_issues precisam de um ID de trace. Cada coleção tem um
status, os items dela e truncated.
Não misture captured_fields, missing_fields, redacted_fields e
truncated_fields. Dado ocultado não é o mesmo que dado não capturado. Dado
truncado não está completo. evidence.status é partial quando um campo
obrigatório não foi capturado, foi ocultado, foi truncado ou está
indisponível. Atualizar o SDK não acrescenta evidências a eventos passados.
Siga IDs exatos para logs, problemas e versões relacionados. Um horário
próximo não é um vínculo.
Siga as próximas ações
Processenext_actions na ordem de priority quando o seu cliente aceitar
exatamente o par de code e target. Cada ação também tem um reason.
Verifique a implantação candidata
Use o ID da ocorrência com falha como referência. Obtenha o ID da implantação candidata nas evidências de implantação ou no seu processo de versões.logbrew deploy registra uma implantação.
422.
A resposta conta as ocorrências do mesmo problema que o LogBrew recebeu depois
do fim da implantação, até o horário da requisição (observed_after e
observed_until). Ela também conta os traces da versão candidata.
absence_is_proof é sempre false. A falta de recorrência no período não
prova uma correção definitiva. Mude o status no
fluxo de gerenciamento de problemas só
depois que a sua equipe aceitar as evidências.
Recuperação segura
As respostas de erro têm
error, code, next e next_action. Use code
e next_action para controlar o programa. Mostre next como orientação. Não
execute esse texto como comando. Quando uma leitura falhar, não troque a
ocorrência pedida por outra. Consulte Erros da API e a
referência da API de telemetria.