Lee la ocurrencia recomendada
Instala la CLI de LogBrew y ejecutalogbrew login. Copia el
UUID de la incidencia desde una lista de incidencias. La CLI valida la
respuesta antes de imprimirla.
--json para agentes y scripts. logbrew explain issue "<issue_id>" hace
la misma lectura. Para leer directamente desde la API, solicita la versión 13
de la respuesta. La CLI solicita la misma versión:
response_version de 1 a 13. La selección de ocurrencias
necesita la versión 2 o posterior. Esta guía describe la versión 13.
La ocurrencia recomendada es una ocurrencia reciente y conservada con contexto
útil. Puede ser anterior a la ocurrencia más reciente. LogBrew compara las
ocurrencias conservadas más recientes, hasta
occurrence_selection.recommendation.candidate_limit. Elige la que tiene más
contexto para investigar. Si dos ocurrencias tienen el mismo contexto, gana la
más reciente. Si occurrence_selection.recommendation.candidate_window_truncated
es true, la incidencia tiene ocurrencias más antiguas que la recomendación no
evaluó.
Confirma el alcance de la investigación
Los filtros de la lista de incidencias no se aplican a una investigación. El ID de la incidencia selecciona el grupo, y la respuesta puede incluir el historial conservado del grupo. Un ID exacto de ocurrencia no elimina ese historial. Si tu tarea no permite ese historial, no solicites la investigación. Antes de interpretar el error, comprueba que:subject.project_ides el proyecto previsto.event.ides la ocurrencia seleccionada.event.occurred_atestá dentro del intervalo de tiempo del incidente.- El servicio, el entorno y el release coinciden con el despliegue que revisas.
schema_versiones13.
Elige otra ocurrencia
Envía un solo selector:
No envíes
selection y occurrence_id juntos. En subject, first_seen_at
y last_seen_at describen el grupo. La evidencia detallada pertenece al
event seleccionado.
occurrence_selection también devuelve resúmenes de las ocurrencias first,
latest, recommended y selected. occurrence_selection.reason indica por
qué LogBrew eligió la ocurrencia:
Lee la respuesta en orden
- Lee
subjectpara el grupo y despuéseventpara la ocurrencia seleccionada. - Lee
grouping,lifecycleyoccurrence_analysispara el historial del grupo. - Lee
fixpara la ubicación en el código. Conserva suprovenancejunto con el archivo, la función, la línea y la columna. Un marco observado muestra código que hay que revisar, no una causa demostrada. - Lee
cause.statusy su evidencia. Ningún valor de causa demuestra una causa raíz. - Lee
impact.user_impactpor separado deimpact.occurrence_count. Conservacount_method,coverageylimitationsjunto con el recuento. Un mismo usuario puede causar varias ocurrencias. - Lee
reproduction.statusy despuéscorrelations.
Ubicación en el código y causa
fix.status indica de dónde viene la ubicación en el código:
cause.status es reported_hypothesis, evidence_only o unknown. Una
reported_hypothesis viene de la app y no está verificada. cause.signals
lista las señales observadas, como unhandled_exception o error_trace_span.
provenance es backend_observed o application_reported. Mantén ambos
valores separados.
Encuentra el archivo de código fuente
source_locator relaciona la ubicación en el código con un repositorio cuando
la configuración del proyecto tiene un repositorio para el servicio. Usa
repository_full_name, revision y repository_relative_file para abrir el
archivo. revision_source es deployment_commit o setup_snapshot.
Si source_locator.status es not_found, el servicio no tiene ningún
componente de repositorio vinculado. No significa que falte el archivo. No
adivines un componente a partir del nombre del archivo.
Usuarios afectados
known_affected_users es aproximado, incluso cuando el estado es complete.
No cuenta usuarios anónimos ni ocurrencias sin contexto de usuario. Un
recuento null no es cero. impact.reported contiene valores que informó la
app. No los sumes a los recuentos medidos.
Estado de reproducción
El desencadenante viene de
event.request o de
impact.reported.failed_action. El fallo esperado viene de event.exception
o de event.request.response_status_code. La ubicación en el código es
fix.location. reproduction.baseline_occurrence_id es la ocurrencia
seleccionada. El comprobante reproduction.evidence registra cada dato como
reproduction.trigger, reproduction.expected_failure y
reproduction.code_location. Un estado ready no demuestra que la
reproducción haya funcionado. Nunca inventes cuerpos de solicitud, valores
ocultos ni pasos.
Ciclo de vida y regresión
lifecycle.persisted_status es el estado guardado.
lifecycle.effective_status es regressed cuando llegó una ocurrencia después
de resolver la incidencia. El estado guardado sigue siendo resolved hasta que
una persona reabre la incidencia.
lifecycle.regression.first_reappeared_occurrence identifica la primera
ocurrencia nueva.
La respuesta de la investigación muestra una incidencia archivada como
ignored en subject.status y lifecycle. Consulta
Valores de estado.
Gestiona la evidencia ausente o limitada
correlations.trace.status tiene estos valores:
Con
not_linked, sigue con la excepción, los marcos, los pasos anteriores y
el resto de la evidencia devuelta. Con not_found, conserva el ID exacto de
la traza. Con unavailable, vuelve a intentarlo más tarde. Ningún estado
significa que la app no tenga trazas. Una traza available puede contener
solo el span de captura de la incidencia. Consulta
Spans de captura.
correlations.logs contiene logs cercanos a la hora de la ocurrencia, del
mismo release y entorno. Cuando la ocurrencia tiene un ID de traza, los logs
vienen de esa traza. Sin ID de traza, vienen del mismo servicio. actions,
metrics y related_issues necesitan un ID de traza. Cada colección tiene un
status, sus items y truncated.
Mantén separados captured_fields, missing_fields, redacted_fields y
truncated_fields. Un dato oculto no es un dato ausente. Un dato truncado no
está completo. evidence.status es partial cuando un campo obligatorio está
ausente, oculto, truncado o no disponible. Las actualizaciones del SDK no
añaden evidencia a los eventos pasados.
Sigue los ID exactos de los logs, incidencias y releases relacionados. Una
marca de tiempo cercana no es un vínculo.
Sigue las acciones siguientes
Procesanext_actions en el orden de priority cuando tu cliente admita el
par exacto de code y target. Cada acción también tiene un reason.
Verifica el despliegue candidato
Usa el ID de la ocurrencia fallida como base. Consigue el ID del despliegue candidato de la evidencia de despliegue o de tu proceso de releases.logbrew deploy registra un despliegue.
422.
La respuesta cuenta las ocurrencias de la misma incidencia que LogBrew recibió
desde que terminó el despliegue hasta la hora de la solicitud
(observed_after y observed_until). También cuenta las trazas del release
candidato.
absence_is_proof siempre es false. Que no haya recurrencia en el intervalo
de tiempo no demuestra una corrección definitiva. Cambia el estado en el
flujo de trabajo de incidencias solo
cuando tu equipo acepte la evidencia.
Recupérate de forma segura
Las respuestas de error contienen
error, code, next y next_action. Usa
code y next_action para controlar el programa. Muestra next como
orientación. No lo ejecutes como un comando. Si una lectura falla, no
sustituyas la ocurrencia solicitada por otra. Consulta
Errores de la API y API de telemetría.