logbrew login antes de começar.
Problemas e ocorrências
Uma lista de problemas retorna um resumo do grupo, não um evento completo. Leia estes campos antes de abrir o detalhe:
A contagem de ocorrências não é uma contagem de usuários afetados. As contagens e os horários valem para o escopo retornado, não para todo o histórico de erros. Um filtro
--since ou --until limita as ocorrências que o LogBrew conta. Quando você informar uma contagem, informe também os filtros que a produziram.
Valores de status
archived se chamava ignored. Os dois nomes selecionam os mesmos problemas, e os dois são aceitos na entrada. logbrew read, logbrew issues e as versões 2 e 3 da API mostram archived. A versão 1 da API (a padrão), o fluxo de acompanhamento ao vivo e a resposta de investigação de problemas mostram ignored. O painel mostra os status como Não resolvido, Resolvido e Arquivado.
O status vale para o problema inteiro, não para uma ocorrência. A gravidade mostra a urgência, e o status registra a decisão. Mantenha os dois separados. Um problema critical pode ficar resolved depois de uma correção verificada. Um problema archived mantém a gravidade capturada.
O LogBrew não reabre automaticamente um problema resolvido. Quando chega uma nova ocorrência depois da resolução, a investigação informa lifecycle.effective_status como regressed. O status continua resolved até que uma pessoa reabra o problema.
Prioridade
A prioridade define a ordem em que a equipe faz a triagem dos problemas:
Todo problema tem uma prioridade. Se ninguém a definir, ela segue a gravidade do problema:
error e critical são high, warning é medium e info é low. Quando uma regra de problema muda a gravidade, a prioridade segue triage.effective_severity. Nesse caso, priority_source é derived. Quando uma pessoa define a prioridade, ela fica fixa e priority_source é manual.
Para listar os problemas que devem ser examinados primeiro:
Atribua problemas
Atribua um problema para mostrar quem é responsável pelo próximo passo. Um problema tem 0 ou 1 responsável: uma conta ou uma equipe.1
Descubra quem pode ser responsável
assignees traz todas as contas que podem ler o projeto, com user_id, name e email. teams traz todas as equipes da organização do projeto, com team_id, slug e name. Não é possível atribuir um problema a uma conta que não pode ler o projeto nem a uma equipe de outra organização.2
Atribua o problema
me em vez de um ID de usuário para atribuir o problema a você. Use logbrew issues unassign "<issue_id>" --json para remover o responsável. Adicione --project para mudar até 100 problemas de um projeto.3
Leia os seus problemas
--assignee my_teams para ver os problemas das suas equipes, --assignee "team:<team_id>" para ver os de uma equipe e --assignee none para encontrar os problemas sem responsável.--assignee none. Se o membro recuperar o acesso, os problemas voltam a mostrar esse membro, a menos que alguém tenha mudado ou removido o responsável nesse meio-tempo.
Descubra o dono de um problema
suggested_assignee. Cada dono tem um source:
inputs conta os caminhos de frames da stack, os módulos, o template de rota, as tags e as regras que o LogBrew verificou. Se a lista vier vazia e inputs não mostrar caminhos, o problema não tem evidências para comparar. Isso não quer dizer que ele não tem dono.
Escreva as regras de dono em um arquivo de texto, uma regra por linha:
path corresponde ao final do caminho de um frame da stack. Assim, src/payments/** encontra frames em qualquer diretório de implantação. * corresponde a qualquer texto. Os donos são e-mails de contas ou #team-slug. A última regra que corresponde vem primeiro. Depois envie as regras, um arquivo CODEOWNERS do GitHub ou os dois:
@org/team-slug indica a equipe com esse slug. Regras que citam uma conta sem acesso ao projeto ou uma equipe desconhecida falham com 422. Donos do CODEOWNERS que não correspondem a ninguém aparecem em unresolved_owners. Um arquivo vazio apaga o texto correspondente.
Leia o histórico do problema
first_seen. Uma conta que perdeu o acesso ao projeto aparece só com o ID. Use --limit e os valores de next_cursor para ler mais.
Leia a sua caixa de entrada
unread conta as atribuições feitas depois da sua marca de leitura. logbrew inbox read move a marca de leitura para agora. O LogBrew não envia e-mail sobre essas atribuições. A caixa de entrada mostra só os projetos que você pode ler agora.
Fluxo recomendado
1
Liste os problemas não resolvidos em um escopo
2
Leia o detalhe do problema
3
Investigue uma ocorrência
subject.project_id, event.occurred_at, a versão e o ambiente com o seu escopo. A ocorrência recomendada pode ser mais antiga que a mais recente. Siga Investigar um problema para revisar todas as evidências.4
Siga as evidências de trace só quando estiverem disponíveis
Leia o trace somente quando A leitura do trace não tem filtro de tempo. Se o status for
correlations.trace.status for available. Use o ID de trace da resposta. Nunca invente um.not_linked, continue com as evidências do problema.5
Verifique a implantação candidata
Use a ocorrência investigada como referência. Pegue o ID da implantação nas evidências de implantação ou no seu processo de lançamento de versões.A ausência de recorrência no período de observação não prova uma correção permanente. Se
status for insufficient_traffic ou unavailable, mantenha o problema unresolved. Siga a próxima ação retornada.6
Mude o status, a prioridade ou o responsável
Execute um único comando. Esses comandos não pedem confirmação, então confira o ID do problema antes.Sem
--project, cada comando recebe 1 ID de problema. Confira o código de saída e os campos status, priority e assignee retornados. Se o resultado não vier, leia o problema de novo antes da próxima mudança.Scripts mais antigos podem usar logbrew set issue "<issue_id>" resolved e os atalhos resolve, ignore e reopen. ignore define archived.Mude muitos problemas de uma vez
Adicione--project para mudar até 100 problemas de um projeto com um só comando:
Cada item tem
issue_id, outcome e issue. issue é o problema atual, ou null para not_found. Você pode executar o mesmo comando de novo depois de uma falha de rede. Os problemas que já mudaram mostram unchanged. Para mais de 100 problemas, execute mais comandos. Para um resultado not_found, copie o ID de novo de uma lista de problemas desse projeto. Veja Atualizar problemas em lote para conhecer a requisição da API.
Escolha o próximo status
- Mantenha
unresolvedquando a falha estiver ativa ou a correção não estiver verificada. Um trace ausente não é motivo para arquivar um problema. - Defina
resolveddepois que a equipe aceitar as evidências da correção. Uma correção proposta não é evidência. - Defina
archivedpara uma condição aceita ou para um sinal que só vem de testes. A decisão vale para todas as ocorrências do problema. O comando não tem campo de motivo, então anote o motivo no registro de trabalho da equipe. - Reabra com
unresolvedquando chegar uma nova ocorrência depois da resolução.lifecycle.regression.first_reappeared_occurrenceidentifica essa ocorrência. Compare essa ocorrência com a que foi usada na resolução. Não crie outro problema.
Repasse a investigação
Passe à próxima pessoa referências, não um despejo de eventos brutos:- ID, status, prioridade, responsável e gravidade do problema.
- Projeto, serviço, ambiente e versão.
- Horário da primeira ocorrência, horário da última ocorrência e contagem de ocorrências.
- ID da ocorrência selecionada e
occurrence_selection.reason. fix.status,cause.statuse aprovenancede cada um.- Status e ID do trace, se estiverem disponíveis.
- Status da reprodução e evidências ausentes.
- Resultado da verificação da implantação candidata.
- A próxima ação que a resposta retornou.
Corrija erros da CLI
Confira o código de saída do processo antes de interpretar a saída. Em caso de sucesso, o JSON vai para a saída padrão. Um erro de análise do comando sai com o código2. Um erro de execução sai com o código 1. Os erros em JSON vão para o erro padrão e contêm ok: false, error, message e next. Mostre next como orientação. Não execute esse comando automaticamente.
Por exemplo, logbrew issues archive "<issue_id_1>" "<issue_id_2>" --json não tem --project. O comando sai com o código 2 antes de qualquer requisição, com o erro invalid_issue_command.
Quando a API rejeita uma requisição, error é api_error. Leia status para saber o status HTTP e api_code para saber o código de erro da API.
Uma resposta com falha não prova que a mudança de status, de prioridade ou de responsável não teve efeito. Leia o problema antes de tentar de novo.
O que torna um problema útil
- Um título claro e uma mensagem legível.
- Um fingerprint estável.
- Frames da pilha, quando disponíveis.
- Contexto de versão, ambiente e serviço.
- Contexto de trace, quando capturado com a ocorrência.
- Atributos pequenos e relevantes, não payloads completos.
