Stòradh metrics: mar a thionndaidh sinn bho Graphite+Whisper gu Graphite+ClickHouse

Hi uile! Anns a an artaigil mu dheireadh Sgrìobh mi mu bhith ag eagrachadh siostam sgrùdaidh modular airson ailtireachd microservice. Chan eil dad a’ seasamh, tha am pròiseact againn an-còmhnaidh a’ fàs, agus mar sin tha an àireamh de mheatairean a tha air an stòradh. Mar a chuir sinn air dòigh an gluasad bho Graphite + Whisper gu Graphite + ClickHouse fo chumhachan luchdan àrd, leugh mu na bha dùil bhuaithe agus toraidhean an imrich fon ghearradh.

Stòradh metrics: mar a thionndaidh sinn bho Graphite+Whisper gu Graphite+ClickHouse

Mus innis mi dhut mar a chuir sinn air dòigh an gluasad bho bhith a’ stòradh metrics ann an Graphite+Whisper gu Graphite+ClickHouse, bu mhath leam fiosrachadh a thoirt seachad mu na h-adhbharan airson a leithid de cho-dhùnadh a dhèanamh agus mu na h-eas-bhuannachdan a bha aig Whisper leis an robh sinn beò airson ùine mhòr.

Duilgheadasan Graphite + Whisper

1. Àrd luchd air an subsystem diosc

Aig àm a’ ghluasaid, bha timcheall air 1.5 millean meatrach a’ tighinn thugainn gach mionaid. Le leithid de shruth, bha cleachdadh diosc air frithealaichean ~30%. Anns an fharsaingeachd, bha seo gu math iomchaidh - dh'obraich a h-uile càil gu seasmhach, chaidh a sgrìobhadh gu sgiobalta, leugh gu sgiobalta ... Gus an do chuir aon de na sgiobaidhean leasachaidh feart ùr a-steach agus thòisich iad a 'cur thugainn 10 millean meatrach gach mionaid. Sin nuair a chaidh fo-shiostam an diosc a theannachadh, agus chunnaic sinn cleachdadh 100%. Chaidh an duilgheadas fhuasgladh gu sgiobalta, ach bha fuigheall ann fhathast.

2. Dìth ath-riochdachadh agus cunbhalachd

Is coltaiche, mar a h-uile duine a chleachdas / a chleachd Graphite + Whisper, dhòirt sinn an aon shruth de mheatairean air grunn luchd-frithealaidh Graphite aig an aon àm gus fulangas locht a chruthachadh. Agus cha robh duilgheadasan sònraichte ann le seo - gus an àm nuair a thuit fear de na frithealaichean airson adhbhar air choireigin. Aig amannan chaidh againn air frithealaiche a bha air tuiteam a thogail luath gu leòr, agus chaidh aig carbon-c-relay air metrics a luchdachadh bhon tasgadan aige, ach uaireannan cha deach. Agus an uairsin bha toll anns na metrics, a lìon sinn le rsync. Bha am modh-obrach gu math fada. B'e an t-aon ghràs caomhail, gu'n do thachair so gu ro-annamh. Ghabh sinn cuideachd bho àm gu àm seata de mheatairean air thuaiream agus rinn sinn coimeas eadar iad agus feadhainn eile den aon fheadhainn air nodan faisg air làimh den bhuidheann. Ann an timcheall air 5% de chùisean, bha grunn luachan eadar-dhealaichte, nach robh sinn glè thoilichte mu dheidhinn.

3. Lorg mòr

Leis gu bheil sinn a’ sgrìobhadh ann an Graphite chan e a-mhàin bun-structar, ach cuideachd meatrach gnìomhachais (agus a-nis cuideachd metrics bho Kubernetes), bidh sinn gu math tric a’ faighinn suidheachadh far nach eil ach beagan luachan anns a ’mheatrach, agus tha am faidhle .wsp air a chruthachadh a’ toirt aire do gach gleidheadh. ùine, agus a’ gabhail suas meud àite ro-riaraichte, a bha dhuinn ~ 2MB. Tha an duilgheadas air a dhèanamh nas miosa leis gu bheil tòrr fhaidhlichean coltach ris a’ nochdadh thar ùine, agus nuair a bhios iad a’ togail aithisgean orra, bidh leughadh puingean falamh a’ toirt tòrr ùine agus goireasan.

Bu mhath leam a thoirt fa-near sa bhad gum faodar dèiligeadh ris na duilgheadasan a tha air am mìneachadh gu h-àrd a 'cleachdadh diofar dhòighean agus le diofar ìrean de èifeachdas, ach mar as motha an dàta a thòisicheas tu a' faighinn, is ann as motha a dh'fhàsas iad.

Le bhith a 'faighinn a h-uile rud gu h-àrd (a' toirt aire don fhear roimhe artaigilean), a bharrachd air àrdachadh cunbhalach anns an àireamh de mheatairean a fhuaireadh, am miann a h-uile meatrach a ghluasad gu àm stòraidh de 30 diogan. (suas ri 10 diogan ma tha sin riatanach), chuir sinn romhainn feuchainn air Graphite + ClickHouse mar roghainn gealltanach an àite Whisper.

Graphite+Cliog Taigh. Sùileachadh

An dèidh tadhal air grunn choinneamhan de na balaich bho Yandex, an dèidh leughadh artaigil no dhà air Habré, an dèidh a dhol tro na sgrìobhainnean agus lorg co-phàirtean ciallach airson ceangal ClickHouse fo Graphite, chuir sinn romhainn gnìomh a dhèanamh!

Bu mhath leam na leanas fhaighinn:

  • lughdaich cleachdadh fo-shiostam diosc bho 30% gu 5%;
  • lughdaich na tha de rùm ann bho 1TB gu 100GB;
  • a bhith comasach air 100 millean meatrach gach mionaid fhaighinn a-steach don t-seirbheisiche;
  • ath-riochdachadh dàta agus fulangas sgàinidhean a-mach às a’ bhogsa;
  • na suidhe air a’ phròiseact seo airson bliadhna agus an gluasad a dhèanamh taobh a-staigh frèam-ama reusanta;
  • tionndadh gun ùine downt.

Gu math àrd-amasach, ceart?

Graphite+Cliog Taigh. Co-phàirtean

Gus dàta fhaighinn tron ​​​​phròtacal Graphite agus an uairsin a chlàradh ann an ClickHouse, thagh mi taigh-cliog gualain (golang).

Chaidh an sgaoileadh as ùire de ClickHouse, dreach seasmhach 1.1.54253, a thaghadh mar an stòr-dàta airson sreath ùine a stòradh. Bha duilgheadasan ann nuair a bha iad ag obair leis: chaidh beinn de mhearachdan a dhòrtadh a-steach do na logaichean, agus cha robh e gu tur soilleir dè a bu chòir a dhèanamh leotha. Ann an còmhradh le Ròmanach Lomonosov (ùghdar carbon-clickhouse, graphite-clickhouse agus mòran, mòran eile) chaidh am fear as sine a thaghadh sgaoileadh 1.1.54236. Chaidh na mearachdan à sealladh - thòisich a h-uile càil ag obair le brag.

Air a thaghadh airson dàta a leughadh bho ClickHouse graphite-slickhouse (golang). Mar API airson Graphite - carbonapi (golang). Chaidh ClickHouse a chleachdadh gus ath-riochdachadh a chuir air dòigh eadar bùird neach-sùgh. Airson metrics slighe, dh'fhàg sinn ar leannan carbon-c-sealaidheachd (C) (faic an artaigil roimhe).

Graphite+Cliog Taigh. Structar clàr

Tha “graphite” na stòr-dàta a chruthaich sinn airson clàran sgrùdaidh.

“graphite.metrics” - clàr le einnsean ReplicatedReplacingMergeTree (air ath-aithris A’ dol an àiteMergeTree). Bidh an clàr seo a’ stòradh ainmean mheatairean agus slighean thuca.

CREATE TABLE graphite.metrics ( Date Date, Level UInt32, Path String, Deleted UInt8, Version UInt32 ) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/replicator/graphite.metrics', ‘r1’, Date, (Level, Path), 8192, Version);

“graphite.data” - clàr le einnsean ReplicatedGraphiteMergeTree (ath-riochdachadh GrafiteMergeTree). Bidh an clàr seo a’ stòradh luachan meatrach.

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')

Tha “graphite.date_metrics” na chlàr làn le cumhachan leis an einnsean ReplicatedReplacingMergeTree. Tha an clàr seo a’ clàradh ainmean a h-uile meatrach ris an do thachair tron ​​latha. Tha na h-adhbharan airson a chruthachadh air am mìneachadh anns an earrainn "duilgheadasan" aig deireadh an artaigil 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” - clàr air a lìonadh a rèir staid, leis an einnsean ReplicatedAggregatingMergeTree (air ath-aithris A' cruinneachadhMergeTree). Tha an clàr seo a’ clàradh àireamh nan meatrach a tha a’ tighinn a-steach, briste sìos gu 4 ìrean neadachaidh.

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

Graphite+Cliog Taigh. Diagram eadar-obrachaidh co-phàirt

Stòradh metrics: mar a thionndaidh sinn bho Graphite+Whisper gu Graphite+ClickHouse

Graphite+Cliog Taigh. Imrich dàta

Mar a chuimhnicheas sinn bho na bha dùil bhon phròiseact seo, bu chòir an gluasad gu ClickHouse a bhith gun amannan downt; a rèir sin, bha againn ri dòigh air choireigin ar siostam sgrùdaidh gu lèir atharrachadh chun stòradh ùr cho follaiseach sa ghabhas airson ar luchd-cleachdaidh.
Seo mar a rinn sinn e.

  • Chaidh riaghailt a chuir ri carbon-c-relay gus sruthan meatrach a bharrachd a chuir gu taigh-cliog gualain aon de na frithealaichean a tha a’ gabhail pàirt ann an ath-riochdachadh chlàran ClickHouse.

  • Sgrìobh sinn sgriobt beag ann am python, a leugh, a’ cleachdadh an leabharlann whisper-dump, a h-uile faidhle .wsp bhon stòradh againn agus chuir sinn an dàta seo chun taigh-cliog gualain a chaidh a mhìneachadh gu h-àrd ann an 24 snàithlean. Ràinig an àireamh de luachan meatrach ris an deach gabhail ann an taigh-cliog gualain 125 millean / min, agus cha do bhris ClickHouse eadhon fallas.

  • Chruthaich sinn Stòr-dàta air leth ann an Grafana gus gnìomhan deasbaid a thathas a’ cleachdadh anns na deas-bhòrdan a th’ ann mar-thà. Chomharraich sinn liosta de ghnìomhan a chleachd sinn, ach cha deach an cur an gnìomh ann an carbonapi. Chuir sinn ris na gnìomhan sin agus chuir sinn PR gu ùghdaran carbonapi (taing shònraichte dhaibh).

  • Gus an luchd leughaidh atharrachadh anns na roghainnean cothromachaidh, dh’ atharraich sinn na puingean crìochnachaidh bho graphite-api (eadar-aghaidh API airson Graphite + Whisper) gu carbonapi.

Graphite+Cliog Taigh. toraidhean

  • lùghdachadh ann an cleachdadh fo-shiostam diosc bho 30% gu 1%;

    Stòradh metrics: mar a thionndaidh sinn bho Graphite+Whisper gu Graphite+ClickHouse

  • lughdaich an ìre de dh'àite bho 1 TB gu 300 GB;
  • tha comas againn 125 millean metrics gach mionaid fhaighinn a-steach don t-seirbheisiche (binneanan aig àm an imrich);
  • ghluais a h-uile meatrach gu àm stòraidh trithead sa dhà;
  • fhuair sinn ath-riochdachadh dàta agus fulangas sgàinidhean;
  • tionndadh gun ùine downt;
  • Thug e timcheall air 7 seachdainean airson a h-uile càil a chrìochnachadh.

Graphite+Cliog Taigh. Trioblaidean

Anns a 'chùis againn, bha cuid de dhuilgheadasan ann. Seo na thachair dhuinn às deidh a’ ghluasad.

  1. Cha bhith ClickHouse an-còmhnaidh ag ath-leughadh configs air an itealan; uaireannan feumar ath-thòiseachadh. Mar eisimpleir, a thaobh an tuairisgeul air a’ bhuidheann zookeeper ann an config ClickHouse, cha deach a chleachdadh gus an deach an clickhouse-server ath-thòiseachadh.
  2. Cha deach iarrtasan mòra ClickHouse troimhe, agus mar sin ann an graphite-clickhouse tha an sreang ceangail ClickHouse againn a’ coimhead mar seo:
    url = "http://localhost:8123/?max_query_size=268435456&max_ast_elements=1000000"
  3. Bidh ClickHouse gu math tric a’ leigeil a-mach dreachan ùra de sgaoilidhean seasmhach; faodaidh gum bi iongnadh annta: bi faiceallach.
  4. Bidh soithichean a chaidh a chruthachadh gu dinamach ann an kubernetes a’ cur àireamh mhòr de mheatairean le beatha ghoirid agus air thuaiream. Chan eil mòran phuingean ann airson a leithid de mheatraigean, agus chan eil duilgheadasan ann le àite. Ach nuair a bhios tu a’ togail cheistean, bidh ClickHouse a’ togail àireamh mhòr de na h-aon mheatairean sin bhon chlàr ‘metrics’. Ann an 90% de chùisean, chan eil dàta orra taobh a-muigh na h-uinneige (24 uairean). Ach thathas a’ caitheamh ùine a’ lorg an dàta seo anns a’ chlàr ‘dàta’, agus aig a’ cheann thall a’ ruith a-steach gu crìoch-ama. Gus an duilgheadas seo fhuasgladh, thòisich sinn air sealladh fa leth a chumail le fiosrachadh mu na meatrach a thachair tron ​​​​latha. Mar sin, nuair a bhios sinn a’ togail aithisgean (grafaichean) airson soithichean a chaidh a chruthachadh gu dinamach, cha bhith sinn a’ ceasnachadh ach na meatrach a thachair taobh a-staigh uinneag sònraichte, agus chan ann fad na h-ùine, a chuir gu mòr ri togail aithisgean orra. Airson am fuasgladh a tha air a mhìneachadh gu h-àrd, chruinnich mi taigh-cliog grafait (forc), a tha a’ toirt a-steach buileachadh a bhith ag obair leis a’ chlàr date_metrics.

Graphite+Cliog Taigh. Tagaichean

Le dreach 1.1.0 thàinig Graphite gu bhith oifigeil tagaichean taic. Agus tha sinn gu gnìomhach a’ smaoineachadh air dè agus ciamar a nì sinn gus taic a thoirt don iomairt seo anns a’ chruach graphite + clickhouse.

Graphite+Cliog Taigh. Lorgaire neo-riaghailteachd

Stèidhichte air a’ bhun-structar a chaidh a mhìneachadh gu h-àrd, tha sinn air prototype de lorgaire neo-riaghailteachd a chuir an gnìomh, agus tha e ag obair! Ach barrachd mu dheidhinn anns an ath artaigil.

Subscribe, brùth air an t-saighead suas agus bi toilichte!

Source: www.habr.com

Cuir beachd ann