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.
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:
- Indeksēšana: Efektīvu meklēšanas izveidošana starp kontekstuālajiem laukiem
- Filtrēšana: Atlasīt attiecīgās telemetrijas datu apakšgrupas
- 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:
- Daudzdimensionāla analīze: Signālu korelācija dažādos baļķos, metrikā un pēdās.
- Anomālijas noteikšana: Statistisko novirzes no normāliem modeļiem identificēšana.
- 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