ReplicaSet rau qhov raug ntiab tawm Ingester nyob rau hauv pawg ntau lawm tau kuaj pom cov pods raug tshem tawm thiab tsim ib qho tshiab los tuav cov ntawv teev tseg. Lub pod tshiab tau muab los ntawm lub neej ntawd nruab nrab qhov tseem ceeb, thiab lwm qhov "laus" Ingester hauv kev tsim khoom poob nws cov peev txheej. Qhov tshwm sim yog txheej txheem avalanche, uas ua rau kev hloov pauv ntawm tag nrho cov pods los ntawm Ingester rau Cortex ntau lawm pawg.
Ingesters yog qhov tseem ceeb thiab khaws cov ntaub ntawv rau 12 teev dhau los. Qhov no tso cai rau peb kom compress lawv zoo dua ua ntej sau lawv mus rau lub sijhawm ntev. Txhawm rau ua tiav qhov no, Cortex shards cov ntaub ntawv hla cov koob siv Distributed Hash Table (DHT) thiab rov ua dua txhua qhov hla peb Ingesters siv Dynamo-style pawg sib xws. Cortex tsis sau cov ntaub ntawv rau Ingesters uas tsis taus. Yog li, thaum muaj coob tus Ingesters tawm ntawm DHT, Cortex tsis tuaj yeem muab cov ntaub ntawv rov qab txaus, thiab lawv poob.
Kev tshawb nrhiav thiab kho
Cov ntawv ceeb toom tshiab Prometheus raws li "kev siv nyiaj yuam kev" (yuam kev-pob nyiaj-raws li - cov ntsiab lus yuav tshwm sim hauv tsab xov xwm yav tom ntej) pib suab lub tswb 4 feeb tom qab pib kaw. Tshaj li tsib feeb tom ntej no los yog li ntawd, peb tau khiav qee qhov kev kuaj mob thiab ntsuas lub hauv paus Kubernetes pawg los tuav cov pawg tsim khoom tshiab thiab tam sim no.
Tom qab tsib feeb ntxiv, cov qub Ingesters tau sau lawv cov ntaub ntawv tiav, cov tshiab tau pib, thiab Cortex pawg tau rov muaj dua.
Lwm 10 feeb tau siv tshuaj ntsuam xyuas thiab kho qhov tsis nco qab (OOM) qhov yuam kev los ntawm kev lees paub rov qab cov npe nyob rau pem hauv ntej ntawm Cortex. OOM yuam kev tau tshwm sim los ntawm kev nce kaum npaug ntawm QPS (peb ntseeg tias vim muaj kev thov nruj dhau los ntawm tus neeg siv khoom Prometheus servers).
Qhov yuav tshwm sim
Tag nrho downtime yog 26 feeb. Tsis muaj ntaub ntawv poob lawm. Ingesters tau ua tiav tag nrho cov ntaub ntawv hauv lub cim xeeb rau hauv kev cia ntev. Thaum lub sijhawm kaw, tus neeg siv khoom Prometheus servers buffered deleted (nyob deb) cov ntaub ntawv siv tshiab API remote_write raws li WAL (sau los ntawm Callum Styan los ntawm Grafana Labs) thiab rov sau cov ntawv ua tsis tiav tom qab kev sib tsoo.
Kev tsim khoom pawg sau ua haujlwm
tshawb pom
Nws yog ib qho tseem ceeb kom kawm los ntawm qhov xwm txheej no thiab ua cov kauj ruam tsim nyog kom tsis txhob rov tshwm sim dua.
Nyob rau hauv hindsight, peb yuav tsum tsis tau teem lub neej ntawd nruab nrab qhov tseem ceeb kom txog thaum tag nrho Ingesters hauv ntau lawm tau txais siab qhov tseem ceeb. Tsis tas li ntawd, nws yuav tsum tau saib xyuas lawv ua ntej siab qhov tseem ceeb. Txhua yam yog kho tam sim no. Peb cia siab tias peb qhov kev paub dhau los yuav pab tau lwm lub koom haum xav txog kev siv cov pods tseem ceeb hauv Kubernetes.
Peb yuav ntxiv ib theem ntxiv ntawm kev tswj hwm kev xa tawm ntawm ib qho khoom ntxiv uas nws cov kev teeb tsa yog thoob ntiaj teb rau pawg. Txij no mus, cov kev hloov no yuav raug ntsuas bΠΎntau tus neeg. Tsis tas li ntawd, qhov kev hloov kho uas ua rau kev sib tsoo tau suav tias yog me me rau cov ntaub ntawv sib cais - nws tsuas yog tham hauv GitHub qhov teeb meem. Txij ntawm no mus, tag nrho cov kev hloov pauv rau kev teeb tsa yuav raug nrog rau cov ntaub ntawv tsim nyog.
Thaum kawg, peb yuav automate resizing ntawm authentication reverse proxy los tiv thaiv lub overload OOM peb pom, thiab yuav tshuaj xyuas Prometheus default settings ntsig txog kev poob rov qab thiab scaling los tiv thaiv cov teeb meem zoo sib xws yav tom ntej.
Qhov tsis ua hauj lwm kuj muaj qee qhov txiaj ntsig zoo: tau txais cov peev txheej tsim nyog, Cortex tau txais txiaj ntsig zoo yam tsis muaj kev cuam tshuam ntxiv. Peb kuj tau txais txiaj ntsig kev ua haujlwm nrog Grafana Loki - peb lub cav sib sau ua ke tshiab - uas tau pab xyuas kom txhua tus Ingesters coj tus cwj pwm zoo thaum lub sijhawm thiab tom qab tsis ua haujlwm.