ProHoster > Blag > Riarachán > Stóráil méadrachta: conas a d’aistrigh muid ó Graphite+Whisper go Graphite+ClickHouse
Stóráil méadrachta: conas a d’aistrigh muid ó Graphite+Whisper go Graphite+ClickHouse
Dia duit gach duine! Ina an t-alt deireanach Scríobh mé faoi chóras monatóireachta modúlach a eagrú don ailtireacht microservice. Ní dhéanfaidh aon ní fós, tá ár dtionscadal ag fás i gcónaí, agus mar sin tá líon na méadrachta stóráilte. Mar a d’eagraíomar an t-aistriú ó Graphite+Whisper go Graphite+ClickHouse faoi choinníollacha ualaigh ard, léigh faoi na hionchais uaidh agus faoi thorthaí na himirce faoin gearrtha.
Sula n-inseoidh mé duit conas a d’eagraíomar an t-aistriú ó mhéadracht a stóráil in Graphite+Whisper go Graphite+ClickHouse, ba mhaith liom eolas a thabhairt faoi na fáthanna le cinneadh den sórt sin a dhéanamh agus faoi na míbhuntáistí a bhaineann le Whisper a raibh cónaí orainn leis le fada an lá.
Fadhbanna le graifít+cogar
1. Ard-ualach ar an bhfochóras diosca
Ag am an aistrithe, bhí thart ar 1.5 milliún méadracht ag teacht chugainn in aghaidh an nóiméid. Le sreabhadh den sórt sin, ba é ~30% an úsáid diosca ar fhreastalaithe. Go ginearálta, bhí sé seo inghlactha go leor - d'oibrigh gach rud go cobhsaí, scríobhadh go tapa, léigh go tapa... Go dtí gur chuir ceann de na foirne forbartha gné nua i bhfeidhm agus thosaigh sé ag cur 10 milliún méadracht chugainn in aghaidh an nóiméid. Sin nuair a tháinig an fochóras diosca níos doichte, agus chonaiceamar úsáid 100%. Réitíodh an fhadhb go tapa, ach bhí iarmhar fós ann.
2. Easpa macasamhlú agus comhsheasmhachta
Is dócha, cosúil le gach duine a úsáideann / a d'úsáid Graphite+Whisper, doirteamar an sruth céanna méadrachta ar roinnt freastalaithe Graphite ag an am céanna chun lamháltas lochtanna a chruthú. Agus ní raibh aon fadhbanna speisialta leis seo - go dtí an nóiméad nuair a crashed ar cheann de na freastalaithe ar chúis éigin. Uaireanta d'éirigh linn freastalaí tite a phiocadh suas go tapa go leor, agus d'éirigh le carbón-c-relay méadracht a luchtú as a thaisce isteach ann, ach uaireanta ní raibh. Agus ansin bhí poll sa mhéadracht, a líonadh muid le rsync. Bhí an nós imeachta fada go leor. Ba é an t-aon ghrásta coigiltis ná gur fíor-annamh a tharla sé seo. Thógamar sraith randamach méadrach ó am go chéile freisin agus chuireamar i gcomparáid iad le cinn eile den chineál céanna ar nóid chomharsanacha an bhraisle. I thart ar 5% de na cásanna, bhí roinnt luachanna difriúil, rud nach raibh muid an-sásta faoi.
3. Lorg mór
Ós rud é go scríobhann muid i Graphite ní hamháin bonneagar, ach freisin méadracht gnó (agus anois méadracht ó Kubernetes freisin), is minic a fhaigheann muid cás nach bhfuil ach cúpla luach sa mhéadracht, agus cruthaítear an comhad .wsp ag cur san áireamh gach coinneáil. tréimhse sin, agus tógann sé méid spáis réamh-leithroinnte, a bhí ~2MB dúinne. Cuireann an fhadhb níos measa fós toisc go bhfuil go leor comhaid den chineál céanna le feiceáil le himeacht ama, agus nuair a bhíonn tuairiscí á dtógáil orthu, tógann sé go leor ama agus acmhainní a léamh pointí folamh.
Ba mhaith liom a thabhairt faoi deara láithreach gur féidir déileáil leis na fadhbanna a thuairiscítear thuas trí úsáid a bhaint as modhanna éagsúla agus le céimeanna éagsúla éifeachtúlachta, ach dá mhéad sonraí a thosaíonn tú a fháil, is mó a éiríonn siad in olcas.
Tar éis gach ceann de na nithe thuas (ag cur san áireamh an ceann roimhe sin Airteagal), chomh maith le méadú leanúnach ar líon na méadrachta a fuarthas, an fonn chun gach méadracht a aistriú chuig eatramh stórála de 30 soicind. (suas le 10 soicind más gá), bheartaíomar triail a bhaint as Graphite+ClickHouse mar rogha eile a bhfuil gealladh fúthu in ionad Whisper.
Graphite+ClickHouse. Ionchais
Tar éis cuairt a thabhairt ar roinnt cruinnithe de na guys ó Yandex, tar éis a léamh cúpla alt ar Habré, tar éis dúinn dul tríd an doiciméadú agus teacht ar chomhpháirteanna ciallmhar le haghaidh ClickHouse ceangailteach faoi Graphite, shocraigh muid beart a dhéanamh!
Ba mhaith liom na rudaí seo a leanas a fháil:
laghdú ar úsáid fochórais diosca ó 30% go 5%;
laghdú ar an méid spáis áitithe ó 1TB go 100GB;
a bheith in ann 100 milliún méadracht in aghaidh an nóiméid a fháil isteach sa fhreastalaí;
macasamhlú sonraí agus lamháltas locht as an mbosca;
ná suí ar an tionscadal seo ar feadh bliana agus an t-aistriú a dhéanamh laistigh de fhráma ama réasúnta;
lasc gan downtime.
Go leor uaillmhianach, ceart?
Graphite+ClickHouse. Comhpháirteanna
Chun sonraí a fháil tríd an bprótacal Graphite agus ina dhiaidh sin é a thaifeadadh i ClickHouse, roghnaigh mé carbóin-cliceáil (golang).
Roghnaíodh an scaoileadh is déanaí de ClickHouse, leagan cobhsaí 1.1.54253, mar bhunachar sonraí chun sraitheanna ama a stóráil. Bhí fadhbanna ann agus iad ag obair leis: tháinig sliabh earráidí isteach sna logaí, agus ní raibh sé soiléir go hiomlán cad atá le déanamh leo. I bplé le Rómhánach Lomonosov (údar carbon-clickhouse, graphite-clickhouse agus go leor, go leor eile) a roghnaíodh an ceann is sine scaoileadh 1.1.54236. D'imigh na hearráidí - thosaigh gach rud ag obair le bang.
Is bunachar sonraí é “graifít” a chruthaigh muid le haghaidh táblaí monatóireachta.
“graphite.metrics” - tábla le hinneall ReplicatedReplacingMergeTree (athdhéanta IonadúMergeTree). Stórálann an tábla seo ainmneacha na méadrachta agus na cosáin chucu.
“graphite.data” - tábla le hinneall ReplicatedGraphiteMergeTree (macasamhlaithe GrafiteMergeTree). Stórálann an tábla seo luachanna méadracha.
CREATE TABLE graphite.data ( Path String, Value Float64, Time UInt32, Date Date, Timestamp UInt32 ) ENGINE = ReplicatedGraphiteMergeTree('/clickhouse/tables/replicator/graphite.data', 'r1', Date, (Path, Time), 8192, 'graphite_rollup')
Is tábla líonta go coinníollach é “graphite.date_metrics” leis an inneall ReplicatedReplacingMergeTree. Déanann an tábla seo taifead ar ainmneacha na méadrachta ar fad ar thángthas orthu i rith an lae. Tá cur síos ar na cúiseanna lena chruthú sa chuid "Fadhbanna" ag deireadh an ailt seo.
CREATE MATERIALIZED VIEW graphite.date_metrics ( Path String, Level UInt32, Date Date) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/replicator/graphite.date_metrics', 'r1', Date, (Level, Path, Date), 8192) AS SELECT toUInt32(length(splitByChar('.', Path))) AS Level, Date, Path FROM graphite.data
“graphite.data_stat” - tábla arna líonadh de réir an choinníll, leis an inneall ReplicatedAggregatingMergeTree (athdhéanta ComhiomlánúMergeTree). Taifeadann an tábla seo líon na méadrachta ag teacht isteach, briste síos go 4 leibhéal neadaithe.
CREATE MATERIALIZED VIEW graphite.data_stat ( Date Date, Prefix String, Timestamp UInt32, Count AggregateFunction(count)) ENGINE = ReplicatedAggregatingMergeTree('/clickhouse/tables/replicator/graphite.data_stat', 'r1', Date, (Timestamp, Prefix), 8192) AS SELECT toStartOfMonth(now()) AS Date, replaceRegexpOne(Path, '^([^.]+.[^.]+.[^.]+).*$', '1') AS Prefix, toUInt32(toStartOfMinute(toDateTime(Timestamp))) AS Timestamp, countState() AS Count FROM graphite.data GROUP BY Timestamp, Prefix
Mar is cuimhin linn ó na hionchais ón tionscadal seo, ba cheart go mbeadh an t-aistriú go ClickHouse gan amanna downt; dá réir sin, bhí orainn ár gcóras monatóireachta iomlán a athrú go dtí an stóráil nua ar bhealach chomh trédhearcach agus is féidir dár n-úsáideoirí.
Seo mar a rinneamar é.
Tá riail curtha le carbón-c-relay chun sruth breise méadrachta a sheoladh chuig an carbóin-cliceáil ar cheann de na freastalaithe atá rannpháirteach i macasamhlú táblaí ClickHouse.
Scríobhamar script bheag i python, a léigh, ag baint úsáide as an leabharlann whisper-dump, gach comhad .wsp ónár stóráil agus sheolamar na sonraí seo chuig an teach cliceáil carbóin thuasluaite i 24 snáithe. Shroich líon na luachanna méadracha glactha i dteach cliceáil carbóin 125 milliún / nóim, agus níor bhris ClickHouse fiú allais.
Chruthaíomar Foinse Sonraí ar leith i Grafana chun feidhmeanna a úsáidtear ar na deais atá ann cheana a dhífhabhtú. D’aithníomar liosta feidhmeanna a d’úsáideamar, ach níor cuireadh i bhfeidhm iad i carbonapi. Chuireamar na feidhmeanna seo leis agus chuireamar PR chuig údair carbonapi (buíochas ar leith leo).
Chun an t-ualach léitheoireachta a athrú sna socruithe cothromaíochta, d'athraigh muid na críochphointí ó graphite-api (comhéadan API le haghaidh Graphite+Whisper) go carbonapi.
Graphite+ClickHouse. torthaí
laghdú ar úsáid fochórais diosca ó 30% go 1%;
laghdaigh an méid spáis a bhí á áitiú ó 1 TB go 300 GB;
tá an cumas againn 125 milliún méadracht in aghaidh an nóiméid a fháil isteach sa fhreastalaí (buanna ag am an imirce);
d'aistrigh sé gach méadracht go dtí eatramh stórála tríocha dó;
fuair macasamhlú sonraí agus lamháltas lochtanna;
aistrigh gan downtime;
Thóg sé thart ar 7 seachtaine gach rud a chríochnú.
Graphite+ClickHouse. Fadhbanna
In ár gcás, bhí roinnt gaistí. Seo an rud a thángamar i ndiaidh an aistrithe.
Ní athléann ClickHouse cumraíochtaí ar an eitilt i gcónaí; uaireanta is gá é a atosú. Mar shampla, i gcás cur síos ar an mbraisle zookeeper sa config ClickHouse, níor úsáideadh é go dtí gur atosaíodh an clickhouse-server.
Ní dhearnadh iarratais mhóra ClickHouse, mar sin i dteach graifíte-cliceáil is é seo an chuma atá ar ár teaghrán ceangail ClickHouse:
Is minic a eisíonn ClickHouse leaganacha nua d’eisiúintí cobhsaí; d’fhéadfadh go mbeadh iontas orthu: bí cúramach.
Seolann coimeádáin a cruthaíodh go dinimiciúil i kubernetes líon mór méadracht le saolré gearr agus randamach. Níl go leor pointí ann do mhéadracht den sórt sin, agus níl aon fhadhbanna ann le spás. Ach nuair a bhíonn ceisteanna á dtógáil, roghnaíonn ClickHouse líon mór de na méadrachtaí céanna seo ón tábla 'méadracht'. I 90% de na cásanna, níl aon sonraí orthu níos faide ná an fhuinneog (24 uair an chloig). Ach caitear am ag cuardach na sonraí seo sa tábla ‘sonraí’, agus ar deireadh téann sé isteach i teorainn ama. Chun an fhadhb seo a réiteach, thosaigh muid ag coinneáil dearcadh ar leith le heolas ar mhéadracht ar thángthas orthu i rith an lae. Mar sin, agus tuarascálacha (graif) á dtógáil le haghaidh coimeádáin a chruthaítear go dinimiciúil, ní cheistímid ach na méadrachtaí sin ar thángthas orthu laistigh d’fhuinneog ar leith, agus ní ar feadh an ama ar fad, rud a chuir dlús suntasach le tógáil tuarascálacha orthu. Maidir leis an réiteach a thuairiscítear thuas, bhailigh mé graifít-cliceáilte (forc), lena n-áirítear cur i bhfeidhm oibriú leis an tábla date_metrics.
Graphite+ClickHouse. Clibeanna
Le leagan 1.1.0 tháinig Graphite oifigiúil clibeanna tacaíochta. Agus táimid ag smaoineamh go gníomhach ar cad atá le déanamh agus conas a dhéanamh chun tacú leis an tionscnamh seo sa chairn graphite+ clickhouse.
Graphite+ClickHouse. Brathadóir aimhrialtacht
Bunaithe ar an mbonneagar a thuairiscítear thuas, tá fréamhshamhail de bhrathadóir aimhrialtacht curtha i bhfeidhm againn, agus oibríonn sé! Ach níos mó mar gheall air sa chéad alt eile.
Liostáil, brúigh an tsaighead suas agus a bheith sásta!