Home Tehnoloģija No terabaitiem līdz ieskatiem: reālās pasaules Ai Obervability arhitektūra

No terabaitiem līdz ieskatiem: reālās pasaules Ai Obervability arhitektūra

44
0

Vai vēlaties gudrāku ieskatu iesūtnē? Reģistrējieties mūsu iknedēļas biļeteniem, lai iegūtu tikai to, kas ir svarīgi uzņēmuma AI, datu un drošības vadītājiem. Abonēt tūlīt


Apsveriet iespēju uzturēt un attīstīt e-komercijas platformu, kas katru minūti apstrādā miljoniem darījumu, ģenerējot lielu daudzumu telemetrijas datu, ieskaitot metriku, žurnālus un pēdas vairākos mikropakalpojumos. Kad notiek kritiski gadījumi, dežūras inženieri saskaras ar biedējošo uzdevumu-izsijāt cauri datu okeānam, lai atšķetinātu attiecīgos signālus un atziņas. Tas ir līdzvērtīgs adatas meklēšanai siena kaudzē.

Tas novērojamību padara par neapmierinātības avotu, nevis ieskatu. Lai mazinātu šo galveno sāpju punktu, es sāku izpētīt risinājumu, lai izmantotu modeļa konteksta protokolu (MCP), lai pievienotu kontekstu un izdarītu secinājumus no žurnāliem un izplatītajām pēdām. Šajā rakstā es ieskicēšu savu pieredzi, veidojot AI darbināmu novērošanas platformu, izskaidroju sistēmas arhitektūru un dalīšos ar ieskatu, kas gūti pa ceļam.

Kāpēc novērojamība ir izaicinoša?

Mūsdienu programmatūras sistēmās novērojamība nav greznība; Tā ir pamata nepieciešamība. Spēja izmērīt un izprast sistēmas uzvedību ir uzticamības, veiktspējas un lietotāju uzticības pamatā. Kā saka, “Ko jūs nevarat izmērīt, jūs nevarat uzlabot.”

Tomēr novērojamības sasniegšana mūsdienu mākoņa vietējā, mikropakalpojumu arhitektūrā ir grūtāka nekā jebkad agrāk. Viens lietotāja pieprasījums var šķērsot desmitiem mikropakalpojumu, katrs izstarojošie žurnāli, metrika un pēdas. Rezultāts ir telemetrijas datu pārpilnība:


AI mērogošana sasniedz savas robežas

Strāvas robežas, pieaugošās marķiera izmaksas un secinājumu kavēšanās ir uzņēmuma AI pārveidošana. Pievienojieties mūsu ekskluzīvajam salonam, lai atklātu, kā ir labākās komandas:

  • Enerģijas pārvēršana par stratēģisku priekšrocību
  • Arhitektējot efektīvus secinājumus par reālu caurlaidspējas pieaugumu
  • Konkurences IA atbloķēšana ar ilgtspējīgām AI sistēmām

Nostipriniet savu vietu, lai paliktu priekšā:


  • Desmitiem terabaitu apaļkoku dienā
  • Desmitiem miljonu metrisko datu punktu un pirms agregātu
  • Miljoniem izplatītu pēdu
  • Katru minūti radīja tūkstošiem korelācijas ID

Izaicinājums ir ne tikai datu apjoms, guess arī datu sadrumstalotība. Atbilstoši New Relic 2023. gada novērojamības prognozes ziņojums50% organizāciju ziņo par silemetrijas datiem, tikai 33% sasniedzot vienotu skatu starp metrikām, žurnāliem un pēdām.

Žurnāli stāsta vienu stāsta daļu, metrika cita, izseko vēl vienu. Bez konsekventa konteksta pavediena inženieri tiek piespiesti manuālā korelācijā, paļaujoties uz intuīciju, cilšu zināšanām un garlaicīgu detektīvu darbu starpgadījumu laikā.

Šīs sarežģītības dēļ es sāku domāt: kā AI var mums palīdzēt iegūt sadrumstalotus datus un piedāvāt visaptverošu, noderīgu ieskatu? Konkrēti, vai mēs varam padarīt telemetrijas datus būtībā jēgpilnākus un pieejamākus gan cilvēkiem, gan mašīnām, izmantojot strukturētu protokolu, piemēram, MCP? Šī projekta pamatu veidoja šis centrālais jautājums.

Izpratne par MCP: datu cauruļvada perspektīva

Antropisks Definē MCP kā atvērtu standartu, kas ļauj izstrādātājiem izveidot drošu divvirzienu savienojumu starp datu avotiem un AI rīkiem. Šis strukturētais datu cauruļvads ietver:

  • Kontekstuālais ETL AI: Konteksta ieguves standartizēšana no vairākiem datu avotiem.
  • Strukturēts vaicājuma interfeiss: Ļauj AI vaicājumiem piekļūt caurspīdīgiem un viegli saprotamiem datu slāņiem.
  • Semantisko datu bagātināšana: Iegūst jēgpilnu kontekstu tieši telemetrijas signālos.

Tam ir potenciāls novirzīt platformas novērojamību no reaktīvās problēmu risināšanas un uz proaktīvām atziņām.

Sistēmas arhitektūra un datu plūsma

Pirms ienirt ieviešanas detaļās, ejam cauri sistēmas arhitektūrai.

Arhitektūras diagramma MCP balstītai AI novērojamības sistēmai

Pirmajā slānī mēs izstrādājam kontekstuālās telemetrijas datus, ieguldami standartizētus metadatus telemetrijas signālos, piemēram, izplatītās pēdas, žurnāli un metrika. Pēc tam otrajā slānī bagātinātie dati tiek ievadīti MCP serverī, lai indeksētu, pievienotu struktūru un nodrošinātu klienta piekļuvi kontekstam bagātinātiem datiem, izmantojot API. Visbeidzot, AI virzītā analīzes dzinējs izmanto strukturētus un bagātinātus telemetrijas datus anomāliju noteikšanai, korelācijai un sakņu cēloņu analīzei, lai novērstu lietojumprogrammu jautājumus.

Šis slāņainais dizains nodrošina, ka AI un inženierzinātņu komandas saņem uz kontekstu balstītu, realizējamu ieskatu no telemetrijas datiem.

Īstenojoša dziļa niršana: trīs slāņu sistēma

Izpētīsim mūsu MCP darbināmās novērošanas platformas faktisko ieviešanu, koncentrējoties uz datu plūsmām un pārvērtībām katrā posmā.

1. slānis: ar kontekstu bagātināta datu ģenerēšana

Pirmkārt, mums jāpārliecinās, ka mūsu telemetrijas dati satur pietiekami daudz konteksta jēgpilnai analīzei. Galvenais ieskats ir tāds, ka datu korelācijai jānotiek radīšanas laikā, nevis analīzes laikā.

Def Process_Checkout (user_id, cart_items, pabalsts_metod):
“” ”Simulējiet izrakstīšanās procesu ar kontekstu bagātinātu telemetriju.” ””

# Ģenerēt korelācijas ID
order_id = f ”order- {uuid.uuid4 (). Hex[:8]} ”
request_id = f ”req- {uuid.uuid4 (). Hex[:8]} ”

# Inicializējiet konteksta vārdnīcu, kas tiks piemērota
konteksts = {
“User_id”: user_id,
“Order_id”: order_id,
“Request_id”: request_id,
“CART_ITEM_COUNT”: len (CART_ITEMS),
“Payment_method”: Payment_method,
“Service_name”: “kase”,
“Service_version”: “V1.0.0”
}

# Sāciet otel izsekošanu ar tādu pašu kontekstu
ar tracer.start_as_current_span (
“Process_Checkout”,
atribūti = {okay: str (v) okay, v kontekstā.ITEMS ()}
) kā kaseout_span:

# Reģistrēšana, izmantojot to pašu kontekstu
logger.information (f ”sākšanas course of”, additional = {“konteksts”: json.dump (konteksts)})

# Konteksta izplatība
ar tracer.start_as_current_span (“Process_Payment”):
# Procesa maksājuma loģika …
logger.information (“maksājums apstrādāts”, additional = {“konteksts”:

json.dump (konteksts)})

Kods 1. Konteksta bagātināšana žurnālu un pēdu

Šī pieeja nodrošina, ka katrs telemetrijas signāls (žurnāli, metrika, pēdas) ir tie paši pamatkontekstuālie dati, kas atrisina korelācijas problēmu avotā.

2. slānis: datu piekļuve, izmantojot MCP serveri

Tālāk es izveidoju MCP serveri, kas neapstrādātu telemetriju pārveido par vaicātu API. Pamatdatu operācijas šeit ietver šādas:

  1. Indeksēšana: Efektīvu meklēšanas izveidošana starp kontekstuālajiem laukiem
  2. Filtrēšana: Atlasīt attiecīgās telemetrijas datu apakšgrupas
  3. Apkopošana: Statistisko pasākumu skaitļošana starp laika logiem
@app.submit (“/mcp/log”, response_model = saraksts[Log])
def query_logs (vaicājums: logquery):
“” ”Vaicājumu žurnāli ar īpašiem filtriem” ”
rezultāti = log_db.copy ()

# Pielietojiet kontekstuālos filtrus
Ja Question.request_ID:
rezultāti = [log for log in results if log[“context”].get (“request_id”) == question.request_id]

Ja question.user_id:
rezultāti = [log for log in results if log[“context”].get (“user_id”) == question.user_id]

# Piemērojiet filtrus uz laiku uz laiku
Ja Question.time_Range:
start_time = datetime.fromisoformat (question.time_range[“start”])
end_time = datetime.fromisoformat (question.time_range[“end”])
rezultāti = [log for log in results
                  if start_time <= datetime.fromisoformat(log[“timestamp”]) <= end_time]

# Šķirot pie laika zīmogs
Rezultāti = sakārtoti (rezultāti, taustiņš = lambda x: x[“timestamp”]reverse = true)

Atgriešanās rezultāti[:query.limit] Ja vaicājums.Restrict cits rezultāti

Kods 2. Datu pārveidošana, izmantojot MCP serveri

Šis slānis pārveido mūsu telemetriju no nestrukturēta datu ezera par strukturētu, vaicājumu optimizētu saskarni, kurā AI sistēma var efektīvi pārvietoties.

3. slānis: AI vadīts analīzes dzinējs

Galīgais slānis ir AI komponents, kas patērē datus caur MCP interfeisu, veicot:

  1. Daudzdimensionāla analīze: Signālu korelācija dažādos baļķos, metrikā un pēdās.
  2. Anomālijas noteikšana: Statistisko novirzes no normāliem modeļiem identificēšana.
  3. Pamatcēloņu noteikšana: Kontekstuālo norāžu izmantošana, lai izolētu iespējamos problēmu avotus.
def analze_incident (self, request_id = nav, user_id = nav, timeFrame_minutes = 30):
“” ”Analizējiet telemetrijas datus, lai noteiktu galveno cēloni un ieteikumus.” ””

# Definēt analīzes laika logu
end_time = datetime.now ()
start_time = end_time – timedelta (minūte = laika grafiks_minutes)
time_range = {“begin”: start_time.isoformat (), “beigas”: end_time.isoformat ()}

# Atnest atbilstošu telemetriju, pamatojoties uz kontekstu
žurnāli = self.fetch_logs (request_id = request_id, user_id = user_id, time_range = time_range)

# Minētie ekstrakta pakalpojumi iekšā baļķi par Mērķtiecīga metriskā analīze
pakalpojumi = set (log.get (“pakalpojums”, “nezināms”) žurnāliem žurnālos)

# Saņemiet metriku par šie pakalpojumi
metrics_by_service = {}
Par pakalpojumiem pakalpojumos:
par metric_name in [“latency”, “error_rate”, “throughput”]:
metric_data = self.fetch_metrics (pakalpojums, metric_name, time_range)

# Aprēķiniet statistiskās īpašības
vērtības = [point[“value”] par punktu metric_data[“data_points”]]
metrics_by_service[f”{service}.{metric_name}”] = {
“Imply”: statistics.imply (vērtības), ja vērtības citur 0,
“Mediāna”: statistika.medians (vērtības), ja vērtības citur 0,
“StDev”: statistics.stdev (vērtības), ja len (vērtības)> 1 cits 0,
“Min”: min (vērtības), ja vērtības citur 0,
“Max”: max (vērtības), ja vērtības citur 0
}

# Identificējiet anomālijas, izmantojot Z-Rating
anomālijas = []
Metric_name, statistika metrikā_by_service.objects ():
Ja statistika[“stdev”] > 0: # Izvairieties no dalīšanas ar nulli
z_score = (statistika[“max”] – statistika[“mean”]) / statistika[“stdev”]
Ja z_score> 2: # vairāk nekā 2 standartnovirzes
anomalies.append ({
“Metrika”: metric_name,
“Z_score”: z_score,
“Smagums”: “augsts”, ja z_score> 3 cits “Medium”
})

atgriezties {
“Kopsavilkums”: ai_Summary,
“Anomālijas”: anomālijas,
“Impacted_services”: saraksts (pakalpojumi),
“Ieteikums”: AI_RECOMENTĀCIJA
}

Kods 3. Incidentu analīze, anomāliju noteikšanas un secināšanas metode

MCP pastiprinātas novērojamības ietekme

MCP integrēšana ar novērojamības platformām varētu uzlabot sarežģītu telemetrijas datu pārvaldību un izpratni. Potenciālie ieguvumi ir:

  • Ātrāka anomāliju noteikšana, kā rezultātā samazinās minimālais laiks, lai noteiktu (MTTD) un minimālais laiks, lai atrisinātu (MTTR).
  • Vieglāk identificēt galvenos cēloņus jautājumiem.
  • Mazāks troksnis un mazāk neapstrādājamu brīdinājumu, tādējādi samazinot brīdināt nogurumu un izstrādātāja produktivitātes uzlabošana.
  • Netikas izšķirtspējas laikā mazāk pārtraukumu un konteksta slēdzis, kā rezultātā inženieru komanda uzlabojas darbības efektivitāte.

Iespējamas atziņas

Šeit ir daži no šī projekta galvenajām atziņām, kas palīdzēs komandām ar viņu novērojamības stratēģiju.

  • Kontekstuālie metadati jāiesniedz agrīnā telemetrijas ģenerēšanas procesā, lai atvieglotu pakārtoto korelāciju.
  • Strukturētas datu saskarnes Izveidojiet API vadītus, strukturētus vaicājuma slāņus, lai telemetriju padarītu pieejamāku.
  • Konteksta apzināšanās AI Koncentrē analīzi uz kontekstu bagātiem datiem, lai uzlabotu precizitāti un atbilstību.
  • Konteksta bagātināšana un AI metodes regulāri jānoskaidro, izmantojot praktiskas darbības atgriezeniskās saites.

Secinājums

Strukturētu datu cauruļvadu un AI apvienošana ir milzīgs solījums par novērojamību. Mēs varam pārveidot plašos telemetrijas datus par izmantojamām atziņām, izmantojot tādus strukturētos protokolus kā MCP un AI vadītas analīzes, kā rezultātā tiek iegūtas proaktīvas, nevis reaktīvas sistēmas. Lumigo identificē trīs novērojamības pīlārus – baļķiVerdzība metrikaun pēdas – kas ir nepieciešami. Bez integrācijas inženieri ir spiesti manuāli korelēt atšķirīgus datu avotus, palēninot negadījumu reakciju.

Kā mēs ģenerējam telemetriju, ir vajadzīgas strukturālas izmaiņas, kā arī analītiskās metodes, lai iegūtu nozīmi.

Pronnoy Goswami ir AI un datu zinātnieks ar vairāk nekā desmit gadiem šajā jomā.


avots