Sari la conținut

Ce se întâmplă în producție? Observabilitate pentru aplicații și agenți AI

Ilustrație conceptuală a trasării unei cereri prin trei servicii, cu un punct luminos portocaliu evidențiat de un inel de inspecție.

Seria II: De la infrastructură la proiecte agentice în producție. Episodul 14 din 20.

Portalul B2B fictiv din serie a trecut prin verificările de lansare. Totuși, un utilizator poate vedea o solicitare blocată, deși serverul răspunde. Pentru un IMM, următoarea decizie nu este cumpărarea celui mai bogat tablou de bord, ci alegerea semnalelor care arată efectul asupra utilizatorului și permit unei persoane să intervină. Propunem un minim de observabilitate, aplicat întâi unui singur traseu important.

Observabilitatea începe cu o întrebare

Observabilitatea este capacitatea de a înțelege starea internă a unui sistem din semnalele pe care le produce. Telemetria reprezintă datele colectate despre funcționarea lui. Întrebarea utilă este: „De ce nu s-a terminat această solicitare?”, nu „Câte grafice avem?”.

Continuăm portalul pentru solicitări și documente printr-un scenariu ipotetic. Un document încărcat intră într-o coadă de procesare. Un proces de lucru îl preia și, într-un pilot propus, un agent integrat în aplicație pregătește un rezumat pentru verificare umană. Acesta nu este agentul de programare care modifică repository-ul, adică depozitul de cod. Primul execută o funcție a produsului; al doilea ajută echipa să îl construiască.

Trei semnale, aceeași solicitare

Un log înregistrează un eveniment: procesarea a început, a eșuat sau s-a încheiat. O metrică este o măsurătoare numerică urmărită în timp. Un trace, o urmă distribuită, leagă operațiile aceleiași execuții între servicii. Un span este o operație din această urmă, cu început, sfârșit și atribute descriptive.

Corelarea înseamnă asocierea acestor dovezi prin identificatori comuni. Pentru portal, legăm primirea cererii, publicarea mesajului în coadă, prelucrarea și apelurile către model sau alte servicii. Contextul trebuie transmis și prin mesajele asincrone, procesate ulterior; altfel, traseul pare întrerupt. Identificatorul de trasare nu înlocuiește verificarea drepturilor de acces.

Lucrarea tehnică Dapper, publicată de Google în 2010, este un reper pentru urmărirea operațiilor distribuite. Nu dovedește performanța portalului nostru. Lecția practică este că timpii unor servicii izolate nu explică întotdeauna așteptarea întregului proces.

OpenTelemetry nu este întregul sistem

OpenTelemetry oferă instrumente și convenții pentru producerea, colectarea și exportarea telemetriei. Nu reprezintă, singur, soluția de stocare, căutare și alertare. Alegem separat unde ajung datele, cine le accesează și cât costă păstrarea lor.

Instrumentarea este adăugarea mecanismelor care emit semnale. Începem cu serviciul web și procesul care preia documentele, apoi adăugăm etapele relevante pentru utilizator. Înregistrăm versiunea aplicației și mediul, pentru a compara comportamentul înainte și după lansarea controlată din episodul anterior.

La verificarea din 15 octombrie 2026, convențiile OpenTelemetry pentru AI generativ din repository-ul dedicat sunt marcate „Development”. Nu tratăm toate denumirile și câmpurile ca interfețe definitive. Fixăm versiunile bibliotecilor de instrumentare și testăm compatibilitatea după actualizare. Dacă o integrare nu furnizează o măsurătoare, o afișăm ca indisponibilă, nu ca zero.

Tabloul de bord minim al portalului

Propunerea de pornire combină rezultatul procesului cu explicațiile tehnice. Un răspuns web reușit poate confirma doar acceptarea documentului, nu terminarea prelucrării.

Întrebarea echipei

Semnalul propus

Utilizatorul primește rezultatul?

Solicitări finalizate, eșuate și încă în așteptare

Unde se pierde timpul?

Durata totală, durata etapelor și vechimea celui mai vechi mesaj

Ce face componenta AI?

Durata apelurilor, erori, reîncercări și consum disponibil de tokenuri

Putem avea încredere în vizibilitate?

Resurse ocupate, erori de export și lipsa neașteptată a telemetriei

Un token este o unitate de text procesată de model; consumul raportat nu este automat o factură. Calculul costului cere condițiile furnizorului și contextul utilizării. Pentru durate, putem urmări p95, percentila sub care se situează aproximativ 95% dintre observațiile din intervalul ales. Arătăm și numărul de observații: un interval cu puține cereri nu descrie fidel încărcarea viitoare.

Evităm adresele de e-mail și identificatorii fiecărei solicitări în etichetele metricilor. Ele pot crește cardinalitatea, numărul combinațiilor distincte de etichete, făcând colectarea și analiza mai costisitoare. Detaliile necesare investigației apar controlat în loguri și traces.

În scenariul nostru, un rezumat întârziat nu justifică imediat schimbarea modelului. Urma ar putea arăta că documentul a așteptat în coadă, iar apelul AI a fost scurt. Investigăm atunci capacitatea procesului de lucru, nu optimizarea promptului. Dacă durata crește după o lansare, filtrăm după versiunea instalată și comparăm cereri similare, fără a confunda simpla coincidență cu o cauză demonstrată.

Înainte de extindere, provocăm și o eroare cunoscută într-un mediu izolat. Verificăm dacă evenimentul apare în log, este numărat în metrică și poate fi legat de urma corespunzătoare. Acest test arată dacă instrumentarea explică problema reală, nu doar dacă trimite date.

O alertă trebuie să ducă la o acțiune

Ca exemplu strict ipotetic, echipa poate testa o alertă dacă există documente în așteptare de peste zece minute, iar situația persistă cinci minute. Aceste praguri ilustrează mecanismul, nu reprezintă o promisiune de serviciu sau valori universal potrivite. Le ajustăm după nevoia utilizatorilor și măsurătorile portalului.

Alerta ajunge la responsabilul operațional desemnat și conține mediul, intervalul, efectul observat și legătura către instrucțiunile de intervenție. Acesta verifică dacă procesul de lucru rulează, dacă mesajele sunt preluate și dacă dependența externă răspunde. Nu repornește automat toate operațiile: unele reîncercări pot dubla acțiuni.

Testăm regula în preproducție, mediul de verificare dinaintea producției, printr-o oprire controlată a procesului de lucru. Confirmăm primirea notificării și dispariția alertei după remediere. O alertă fără destinatar disponibil și fără acțiune clară este doar zgomot.

Vizibilitate fără copierea documentelor

Pentru acest traseu propunem o listă explicită de câmpuri permise: serviciu, versiune, tip de operație, durată, rezultat și categorie de eroare. Nu trimitem implicit documente, prompturi, răspunsuri integrale, credențiale sau antete de autentificare în platforma de observabilitate.

Verificăm inclusiv datele emise automat de biblioteci. Eliminarea informațiilor sensibile trebuie aplicată înainte de transmiterea către stocarea externă, nu doar ascunderea lor într-un ecran. Limităm accesul și stabilim perioada de păstrare în funcție de scop și risc. Înlocuirea unui identificator cu o amprentă nu garantează anonimizarea.

Eșantionarea păstrează numai o parte dintre traces pentru a controla volumul. Absența unei urme nu demonstrează absența unei execuții. Documentăm ce este eșantionat și monitorizăm separat sănătatea colectării, ca o problemă a telemetriei să nu pară funcționare perfectă.

Execuție reușită nu înseamnă răspuns corect

Agentul poate termina rapid și fără erori tehnice, dar poate omite o obligație din document. Păstrăm separat evaluarea calității, cu exemple verificate și criterii de acceptare, discutată în episodul despre evaluarea agenților. Telemetria ajută investigația, nu stabilește singură adevărul rezumatului.

Rezultatul utilizabil este o fișă cu traseul urmărit, semnalele colectate, câmpurile interzise, tabloul de bord și proprietarul alertei. Agentul de dezvoltare poate propune instrumentarea și testele; echipa verifică datele efectiv exportate. Episodul următor adaugă backupul, recuperarea și răspunsul la incidente, pentru situațiile în care diagnosticarea trebuie urmată de refacerea serviciului.

Surse

Surse verificate la 15 octombrie 2026:

Vrei să afli unde apar erorile și întârzierile din aplicațiile tale? Discută cu i8 despre observabilitate, date protejate și alerte care duc la acțiune.