Pupuri inenga: me pehea te huri mai i te Graphite+Whisper ki te Graphite+ClickHouse

Kia ora katoa! I roto i tana Tuhinga whakamutunga I tuhituhi ahau mo te whakarite i tetahi punaha aroturuki mo te hoahoanga microservice. Kaore he mea e tu tonu, kei te tipu haere tonu ta maatau kaupapa, me te maha o nga inenga rongoa. Me pehea ta matou whakarite i te whakawhiti mai i te Graphite+Whisper ki te Graphite+ClickHouse i raro i nga tikanga kawenga nui, panuihia nga tumanakohanga mai i a ia me nga hua o te heke i raro i te tapahi.

Pupuri inenga: me pehea te huri mai i te Graphite+Whisper ki te Graphite+ClickHouse

I mua i taku korero ki a koe me pehea ta matou whakarite i te whakawhiti mai i te penapena inenga i roto i te Graphite+Whisper ki te Graphite+ClickHouse, ka hiahia ahau ki te tuku korero mo nga take i whakatau ai penei me nga huakore o Whisper i noho ai matou mo te wa roa.

Raruraru graphite+Whisper

1. Uta teitei i runga i te puunaha-iti kōpae

I te wa o te whakawhiti, tata ki te 1.5 miriona nga mita i tae mai ki a matou ia meneti. Na te rere pera, ko te whakamahinga o te kōpae ki runga i nga kaitoro he ~30%. I te nuinga o te waa, he tino pai tenei - he pai te mahi o nga mea katoa, he tere te tuhi, he tere te panui... Tae noa ki te wa i whakaputahia e tetahi o nga roopu whanaketanga he waahanga hou ka timata te tuku mai i te 10 miriona ine mo ia meneti. Koinei te wa i kaha ake ai te punaha o te kōpae, a ka kite matou i te 100% te whakamahi. I tere te whakatau i te raruraru, engari he toenga i toe.

2. Te kore o te tāruarua me te riterite

Ko te mea pea, pera i nga tangata katoa e whakamahi/whakamahi ana i te Graphite+Whisper, i ringihia e matou te awa o nga inenga kotahi ki runga i te maha o nga tūmau Graphite i te wa kotahi kia taea ai te whakararu i te he. A kaore he raruraru motuhake mo tenei - tae noa ki te wa i pakaru ai tetahi o nga kaitoro mo etahi take. I etahi wa ka taea e matou te tiki tere i te tūmau kua hinga, ka taea e te waro-c-relay te uta i nga inenga mai i tana keteroki ki roto, engari i etahi wa kaore. Na ka puta he kohao i roto i nga inenga, i whakakiia e matou ki te rsync. He roa te tukanga. Ko te aroha whakaora anake ko te tino uaua tenei. I ia wa ka tangohia e matou he huinga inenga matapōkere, ka whakatairitehia ki etahi atu o taua momo i runga i nga pokapu tata o te tautau. I roto i te 5% o nga keehi, he maha nga uara he rereke, kaore matou i tino koa.

3. Taahi waewae nui

I te mea ka tuhia e matou ki te Graphite ehara i te hanganga anake, engari ano hoki nga inenga pakihi (a inaianei ano nga inenga mai i Kubernetes), he maha nga wa ka puta he ahuatanga kei roto i te ine he iti noa nga uara, ka hangaia te konae .wsp ma te whakaaro ki nga pupuri katoa. wā, me te tango i te nui o te mokowā i toha-mua, ko te ~2MB mo matou. Ka kaha ake te raru i te mea he maha nga konae rite ka puta mai i te waa, a, ka hangaia nga purongo mo ratou, ka roa te taima me nga rauemi ki te panui i nga tohu kore.

E hiahia ana ahau ki te mohio tonu ko nga raru e whakaahuahia ana i runga ake nei ka taea te whakatau ma te whakamahi i nga momo tikanga me nga taumata rereke o te whai huatanga, engari ko te nui ake o nga raraunga ka timata koe ki te whiwhi, ka nui ake te kino.

Ko nga mea katoa o runga ake nei (ma te whai whakaaro ki nga mea o mua Tuhinga), me te piki haere tonu o te maha o nga ine kua riro, ko te hiahia ki te whakawhiti i nga ine katoa ki te waahi rokiroki o te 30 hēkona. (tae atu ki te 10 hēkona mena e tika ana), i whakatau matou ki te whakamatau i te Graphite+ClickHouse hei huarahi pai ki te Whisper.

Graphite+ClickHouse. Nga tumanakohanga

I toro atu ki nga huihuinga maha o nga taangata mai i Yandex, kua panui e rua nga tuhinga mo Habré, kua haere i roto i nga tuhinga me te kitea nga waahanga pai mo te here i te ClickHouse i raro i te Graphite, i whakatau matou ki te mahi!

Kei te pirangi au ki te whiwhi i nga mea e whai ake nei:

  • whakaitihia te whakamahinga o te punaha iti mai i te 30% ki te 5%;
  • whakaitihia te nui o te waahi e nohoia ana mai i te 1TB ki te 100GB;
  • kia whiwhi 100 miriona mita ia meneti ki roto i te tūmau;
  • te tukuruatanga o nga raraunga me te whakamaaramatanga o te he i waho o te pouaka;
  • kaua e noho ki runga i tenei kaupapa mo te tau kotahi ka mahi i te whakawhiti i roto i te waa tika;
  • whakawhiti me te kore wa heke.

Tino hao, tika?

Graphite+ClickHouse. Waehanga

Ki te whiwhi raraunga ma te kawa Graphite me te tuhi i te reira ki ClickHouse, i tohua e ahau waro-clickhouse (golang).

Ko te tukunga hou o ClickHouse, te putanga pumau 1.1.54253, i whiriwhiria hei papaarangi mo te penapena raupapa wa. He raruraru i te wa e mahi ana: he maunga o nga hapa i ringihia ki roto i nga rakau, a kaore i tino marama he aha te mahi ki a raatau. I roto i te korerorero me Roma Lomonosov (kaituhi o carbon-clickhouse, graphite-clickhouse me te maha, he maha noa atu) i tohua te mea tawhito tuku 1.1.54236. Kua ngaro nga hapa - kua timata nga mea katoa ki te mahi me te pupuhi.

Kua tohua hei panui raraunga mai i ClickHouse graphite-сlickhouse (golang). Hei API mo te Graphite − carbonapi (golang). I whakamahia a ClickHouse ki te whakarite tukurua i waenga i nga ripanga kaiutuakiaki. Mo nga inenga ararere, i whakarerea e matou to maatau aroha waro-c-relay (C) (tirohia te tuhinga o mua).

Graphite+ClickHouse. Hanganga ripanga

Ko te "graphite" he papaa raraunga i hangaia e matou hei aroturuki i nga ripanga.

"graphite.metrics" - tepu me te miihini ReplicatedReplacingMergeTree (whakaritea WhakakapiMergeTree). Kei tenei ripanga nga ingoa o nga inenga me nga huarahi ki a raatau.

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" - tepu me te miihini ReplicatedGraphiteMergeTree (whakaritea GraphiteMergeTree). Pupuri ana tenei ripanga i nga uara ine.

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

Ko te "graphite.date_metrics" he ripanga kua whakakiia ki nga here me te miihini ReplicatedReplacingMergeTree. Ka tuhia e tenei ripanga nga ingoa o nga inenga katoa i tutaki i te ra. Ko nga take mo tona hanganga ka korerohia i te waahanga "Nga raruraru" i te mutunga o tenei tuhinga.

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” - he ripanga kua whakakiia e ai ki nga ahuatanga, me te miihini ReplicatedAggregatingMergeTree (whakaritea HuihuingaRakau). Ka tuhia e tenei ripanga te maha o nga inenga taumai, ka wehewehea kia 4 nga taumata kohanga.

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+ClickHouse. Hoahoa tauwhitinga wahanga

Pupuri inenga: me pehea te huri mai i te Graphite+Whisper ki te Graphite+ClickHouse

Graphite+ClickHouse. Te hekenga raraunga

I a matou e maumahara ana mai i nga tumanako mai i tenei kaupapa, ko te whakawhiti ki ClickHouse me kore he wa whakangao; na reira, me whakarereke i a maatau punaha tirotiro katoa ki te rokiroki hou kia maamaa mo o maatau kaiwhakamahi.
Koinei te huarahi i mahia e matou.

  • Kua taapirihia he ture ki te waro-c-relay ki te tuku atu i te rerenga inenga ki te whare pawhiri-wao o tetahi o nga kaitoro e uru ana ki te tukurua o nga ripanga ClickHouse.

  • I tuhia e matou he tuhinga iti ki te python, ma te whakamahi i te whare pukapuka whisper-dump, ka panui i nga konae .wsp katoa mai i ta maatau rokiroki ka tukuna enei raraunga ki te whare panui waro i runga ake nei i roto i nga miro 24. Ko te maha o nga uara metric kua whakaaetia i roto i te waro-clickhouse i tae ki te 125 miriona / min, a kaore a ClickHouse i pakaru i te werawera.

  • I hanga e matou he Raraunga Raraunga motuhake ki Grafana hei patuiro i nga mahi e whakamahia ana i roto i nga papatohu o naianei. I tautuhia e matou he rarangi o nga mahi i whakamahia e matou, engari kaore i whakatinanahia i roto i te carbonapi. I taapirihia enei mahi me te tuku PR ki nga kaituhi o carbonapi (he mihi motuhake ki a ratou).

  • Hei huri i te kawenga panui i roto i nga tautuhinga taurite, i hurihia e matou nga tohu mutunga mai i te graphite-api (atanga API mo te Graphite+Whisper) ki te carbonapi.

Graphite+ClickHouse. hua

  • whakaitihia te whakamahinga o te punaha-a-roto mai i te 30% ki te 1%;

    Pupuri inenga: me pehea te huri mai i te Graphite+Whisper ki te Graphite+ClickHouse

  • i whakaitihia te nui o te waahi i nohohia mai i te 1 TB ki te 300 GB;
  • kei a matou te kaha ki te whiwhi i te 125 miriona ine mo ia meneti ki roto i te tūmau (te tihi i te wa o te hekenga);
  • i whakawhitia nga inenga katoa ki te toru tekau ma rua te waahi rokiroki;
  • i whiwhi tukuruatanga raraunga me te aro ki te he;
  • ka hurihia me te kore he waahi;
  • Tata ki te 7 wiki te roa ki te whakaoti i nga mea katoa.

Graphite+ClickHouse. Nga raruraru

I roto i to maatau, i puta etahi mahanga. Koinei te mea i tutakihia e matou i muri i te whakawhitinga.

  1. Kaore a ClickHouse e panui i nga whirihora i nga wa katoa; i etahi wa me whakaara ano. Hei tauira, mo te whakaahuatanga o te roopu zookeeper i te whirihora ClickHouse, kaore i whakamahia kia whakaara ano te clickhouse-server.
  2. Ko nga tono nui a ClickHouse kaore i tutuki, no reira i roto i te graphite-clickhouse te ahua o to tatou aho hononga ClickHouse:
    url = "http://localhost:8123/?max_query_size=268435456&max_ast_elements=1000000"
  3. He maha nga wa ka tukuna e ClickHouse nga putanga hou o nga putanga pumau; kei roto pea he ohorere: kia tupato.
  4. Ko nga ipu i hangaia i roto i nga kubernetes ka tukuna he maha o nga ine me te wa poto me te matapōkere. Kaore he maha o nga tohu mo enei inenga, a kaore he raruraru mo te waahi. Engari i te wa e hanga patai ana, ka kohia e ClickHouse te maha o enei inenga mai i te ripanga 'mehua'. I roto i te 90% o nga keehi, kaore he raraunga mo ratou i tua atu o te matapihi (24 haora). Engari ka pau te wa ki te rapu i enei raraunga i te ripanga 'raraunga', ka mutu ka mutu ki te waahi. Hei whakaoti i tenei raruraru, i timata matou ki te pupuri i tetahi tirohanga motuhake me nga korero mo nga inenga i tutaki i te ra. No reira, i te wa e hanga ana i nga purongo (kauwhata) mo nga ipu i hanga hihiri, ka patai noa matou i nga inenga i kitea i roto i tetahi matapihi, kaua mo te wa katoa, i tere tere ai te hanga o nga purongo. Mo te otinga i whakaahuahia i runga ake nei, i kohia e ahau graphite-clickhouse (marau), kei roto ko te whakatinanatanga o te mahi me te ripanga date_metrics.

Graphite+ClickHouse. Tohutohu

Na te putanga 1.1.0 ka whai mana te Graphite tūtohu tautoko. A kei te kaha whakaaro matou mo te aha me pehea te mahi hei tautoko i tenei kaupapa i roto i te graphite+clickhouse stack.

Graphite+ClickHouse. He kaitirotiro kino

I runga i nga hanganga e whakaahuatia ana i runga ake nei, kua whakatinanahia e matou he tauira o te kaitirotiro anomaly, a ka mahi! Engari etahi atu korero mo ia i te tuhinga ka whai ake.

Ohauru, pehia te pere ki runga kia koa!

Source: will.com

Tāpiri i te kōrero