KEPLIN Docs

Undersöka ett problem

Från symptom till orsak — ett API:s panel, en sessions tidslinje, ett fels kedja och problemens status.

Att undersöka är att gå från symptom till orsak utan att gissa på vägen. Radar är byggd för den vandringen: man väljer det som misslyckades, ser varje körning en och en, och går bakåt till steget som orsakade den.

Den här sidan går igenom vägen i fyra etapper — API:et, sessionen, problemet, och granskningsloggen som förklarar varför just nu.

Ett API som misslyckas

  1. Öppna appen och gå till Radar.
  2. Klicka på API:ets rad i avsnittet API:er och skript — till exempel oportunidades.
  3. En flik med dess namn öppnas, och överst tre etiketter: det interna namnet, 116 anrop och 4 ms i snitt. När det finns fel visas även ”N fel (X %)”.

Ett API:s panel i Radar: en rad per anrop, med status, operation, resultat och tid
Ett API:s panel i Radar: en rad per anrop, med status, operation, resultat och tid

Tabellen har en rad per anrop — aldrig grupperad — med fem kolumner:

Kolumn Vad den visar
När Anropets tidpunkt.
Status HTTP-statusen som returnerades.
Operation Operationen som begärdes, när anropet anger den.
Resultat inget fel, eller feltypen som sprack.
Tid Hur lång tid det tog.

Raden Filtrera… ovanför tabellen reducerar listan efter vilket som helst av de här fälten: bara felen, bara de över 500 ms, bara dagens. Sidnavigeringen längst ned säger var du är — 1–50 av 116.

Detaljen för ett anrop

Klicka på en rad så öppnas detaljpanelen, längst ned, med tre flikar:

Ett markerat anrop, med detaljens flik Allmänt öppen
Ett markerat anrop, med detaljens flik Allmänt öppen

Flik Vad den innehåller
Allmänt När, Tid, Status, Ursprung, Vem som gjorde anropet och den Trace som identifierar det.
Skickat Det som anropet skickade med. När det finns tvivel om typer visas fält för fält Skickat och Förväntad typ, med den misstänkta i rött.
Svar Det som kom tillbaka. Ett anrop som inte returnerade något säger ”Ingenting kom tillbaka.”; ett som inte skickade något säger ”Det här anropet skickade ingenting.”

Dica

Trace är tråden som binder ihop allt. Samma referens dyker upp i Observerbarhetens händelser och i felets detalj — kopiera den så har du en förfrågans hela väg, även när den passerat flera delar.

Skripten har en tvillingpanel: en rad per körning, med Avslutskod, Utlösare och Konsol — utskriften som skriptet skrev. Ett skript utan körningar under perioden säger ”Inga körningar registrerade.”

En sessions tidslinje

Ett isolerat anrop förklarar sällan ett fel. Nästa fråga är alltid ”vad höll personen på med?” — och det är vad sessionerna är till för.

  1. Fäll ut avsnittet Sessioner i Radar.
  2. Klicka på besöket som intresserar dig — 23:11 · demo.
  3. Panelen öppnas med vem som loggade in, när, och en sammanfattning: 15 steg på 5 sidor.

En sessions tidslinje, med stegens vattenfall till höger
En sessions tidslinje, med stegens vattenfall till höger

Tabellen är besökets tidslinje, ett steg per rad:

Kolumn Vad den visar
Namn Steget: en sida, en skärm, en händelse, ett anrop till ett API, en dataläsning.
Status Om det gick bra eller illa.
Källa Varifrån steget kom — Sidor, Skärmar, Åtgärder, Data.
Tid Hur lång tid det tog.
Vattenfall Stapeln som visar när det hände inne i sessionen och hur mycket det tog.

Vattenfallet är det som gör läsningen omedelbar: staplarna ligger i linje i tiden, och ett steg som tog tid syns utan att man läser en enda siffra. Klicka på en rad för detaljen — med Sida, När, Tid och Sedan sessionens början (+0.0s, +2.4s, …). Ett steg som inte anropade servern säger det: ”Det här steget anropade inte servern.”

Nota

En tom session — ”Inga steg i den här sessionen.” — är normalt ett besök som öppnade appen och lämnade innan något hann hända. Det är inget fel.

Ett kodfel

De fel som uppstod i händelsernas kod dyker upp i avsnittet Skärmar, grupperade efter orsak: ett problem per distinkt fel, med antalet förekomster bredvid.

Klicka på ett för att öppna problemets panel, som samlar allt man vet om det:

Zon Vad den svarar på
Kod Utdraget ur din kod, med den skyldiga raden markerad, och den exakta Positionen.
Vägen hit Vad personen gjorde innan det sprack — sida, skärm, dataläsningar, det avgörande klicket.
Felets spår Det tekniska spåret, när det har sparats.
Flöde Felets väg genom appens delar.
Öppna i designern Tar dig direkt till händelsen där felet uppstod.

Knappen Öppna i designern är undersökningens naturliga slut: du hittade raden, nu ska du rätta den.

Ett fel som plattformen klassificerat som Från plattformen visar något annat: ”Det här felet uppstod i Keplins runtime, inte i din apps kod. Det finns inget att rätta från din sida — det är värt att rapportera det.” — med en Referens att kopiera.

Problemen, i alla appar

Menyn ObserverbarhetProblem är samma material, samlat och med status. Varje rad är ett grupperat problem, med Förekomster, Berörda användare, Först sedd och Senast sedd.

Observerbarhetens avsnitt Problem — i den här demoinstallationen finns inget olöst
Observerbarhetens avsnitt Problem — i den här demoinstallationen finns inget olöst

En frisk installation har den här sidan tom — ”Inget problem matchar filtren”, med Rensa filtren för att bredda sökningen. Innan du drar slutsatsen att det inte finns några problem, kontrollera tidsintervallet överst: med 1 h valt syns inte ett fel från igår.

Varje problem har tre statusar, och de ändras i själva panelen:

Åtgärd Vad den gör
Lös Markerar det som hanterat — ”Problemet är markerat som löst.” Om det händer igen öppnas det av sig självt.
Ignorera Får det ur vägen utan att lösa det — ”Problemet ignoreras.” För brus som man känner igen.
Öppna igen Sätter det som öppet igen — ”Problemet har öppnats igen.”

Inne i ett problem ritar Problemets kedja upp vägen: kontexten i webbläsaren, de korrelerade körningarna, felet och den observerade påverkan. När det inte går att koppla ihop delarna säger den det i stället för att hitta på — ”De streckade kopplingarna representerar bara bekräftad kontext, inte ett härlett orsakssamband.”

Händelserna, en och en

ObserverbarhetHändelser är den råa listan: en rad per körning av API, skript eller system, inklusive de som gick bra.

Avsnittet Händelser med en markerad körning och detaljen bredvid
Avsnittet Händelser med en markerad körning och detaljen bredvid

Kolumner: När, Typ, App, Vad, Varaktighet och Utfall. Filtren överst skär efter App, Typ, Status, Allvarlighetsgrad och tidsintervall; Rensa filtren återställer allt.

Klicka på en rad så öppnas detaljen bredvid, med Sammanfattning och Data — och Öppna hela sidan när du behöver mer plats. Felmeddelandena visas på serverns originalspråk, med flit: att översätta dem skulle skilja dem från den text man söker efter i dokumentationen.

Och varför just nu? Granskningen

Ett fel som började idag har nästan alltid en ändring bakom sig. ObserverbarhetGranskning sparar de administrativa ändringarna och konfigurationsändringarna — skapa, ändra, ta bort, köra, importera, exportera, återkalla, återställa lösenord, ändra roll — med vem som gjorde dem, i vilken app och när.

Klicka på en rad så visar detaljen ändringens Före och Efter. Det är det direkta svaret på frågan som avslutar de flesta undersökningar: ”vad ändrades igår eftermiddag?”

Vägen, i korthet

  1. Översikt — vilken app som brinner.
  2. Appens Radar — vilket API, skript eller vilken skärm.
  3. Dess panel — vilket anrop, med vilka data, i vilket ögonblick.
  4. Sessionen — vad personen gjorde innan.
  5. Problemet — kodraden och knappen Öppna i designern.
  6. Granskningen — vad som ändrades för att det här skulle börja.

Varför ser jag inte…?

  • …detaljen för ett anrop? Ingen rad är markerad. Tabellen säger ”Välj en rad för att se detaljen.”
  • …förekomsterna för ett gammalt problem? De kan ha tagits bort av rotationen av poster — panelen varnar när det händer.
  • …Vägen hit ifylld? Alla förekomster bär inte med sig vägen; när de inte gör det säger panelen ”Ingen väg registrerad för den här förekomsten.” i stället för att visa påhittade steg.
  • …knappen Öppna i designern? Den visas bara vid fel med ursprung i appens kod. Plattformens fel har ingenting att öppna.