Fitehirizana metrika: ny fomba nifindranay tamin'ny Graphite+Whisper ho Graphite+ClickHouse

Salama daholo! Amin'ny azy lahatsoratra farany Nanoratra momba ny fikarakarana rafitra fanaraha-maso modular ho an'ny maritrano microservice aho. Tsy misy na inona na inona mijanona, mitombo hatrany ny tetikasanay, ary toy izany koa ny isan'ny metrika voatahiry. Ny fomba nandaminanay ny tetezamita avy amin'ny Graphite+Whisper to Graphite+ClickHouse eo ambanin'ny fepetra avo lenta, vakio ny zavatra andrasana avy amin'izany sy ny vokatry ny fifindra-monina eo ambanin'ny fanapahana.

Fitehirizana metrika: ny fomba nifindranay tamin'ny Graphite+Whisper ho Graphite+ClickHouse

Alohan'ny hilazako aminao ny fomba nandaminanay ny tetezamita avy amin'ny fitehirizana metrika ao amin'ny Graphite+Whisper mankany amin'ny Graphite+ClickHouse, dia te-hanome fampahalalana momba ny antony handraisana fanapahan-kevitra toy izany sy ny tsy fahampian'ny Whisper izay niainanay nandritra ny fotoana ela aho.

Olana amin'ny graphite+whisper

1. Enta-mavesatra ambony amin'ny subsystem kapila

Tamin'ny fotoanan'ny tetezamita dia manodidina ny 1.5 tapitrisa metrika no tonga eto amintsika isa-minitra. Miaraka amin'ny fikorianana toy izany, ny fampiasana kapila amin'ny mpizara dia ~ 30%. Amin'ny ankapobeny, tena azo ekena izany - niasa tsara daholo ny zava-drehetra, nosoratana haingana, namaky haingana... Mandra-pahatongan'ny iray amin'ireo ekipa fampandrosoana namoaka endri-javatra vaovao ary nanomboka nandefa metrika 10 tapitrisa isa-minitra ho antsika. Tamin'izay no nihamafy ny subsystem kapila, ary hitanay ny fampiasana 100%. Vetivety dia voavaha ny olana, saingy nisy sisa tavela.

2. Tsy fahampian'ny replication sy tsy miovaova

Azo inoana fa, tahaka ny olona rehetra izay mampiasa/nampiasa Graphite+Whisper, dia narotsakay tamin'ny lohamilina Graphite maromaro indray mandeha mba hamoronana fandeferana diso. Ary tsy nisy olana manokana tamin'izany - hatramin'ny fotoana nianjeran'ny iray amin'ireo mpizara noho ny antony. Indraindray izahay dia nahavita naka mpizara lavo haingana, ary ny carbon-c-relay dia nahavita nampiditra metrika avy tao amin'ny cache-ny tao anatiny, fa indraindray tsy. Ary nisy lavaka teo amin'ny metrika, izay nofenointsika rsync. Naharitra ela ny fomba fiasa. Ny hany fahasoavana mahavonjy dia ny tsy fahita firy no nisehoan’izany. Nalainay tsindraindray ihany koa ireo metrika kisendrasendra ary nampitaha azy ireo tamin'ny karazana hafa mitovy amin'ny node manodidina ny cluster. Amin'ny 5% eo ho eo amin'ny tranga, sanda maromaro no tsy mitovy, izay tsy dia nahafaly anay.

3. Dian-tongotra lehibe

Koa satria manoratra ao amin'ny Graphite izahay tsy ny fotodrafitrasa ihany, fa ny metrika ara-barotra ihany koa (ary ankehitriny koa ny metrika avy amin'ny Kubernetes), dia matetika isika no mahazo toe-javatra izay tsy ahitana afa-tsy soatoavina vitsivitsy ny metrika, ary ny rakitra .wsp dia noforonina amin'ny fitazonana rehetra. vanim-potoana, ary maka habaka voatokana mialoha, izay ho antsika dia ~2MB. Ny olana dia vao mainka niharatsy noho ny fisian'ny rakitra mitovitovy amin'izany rehefa mandeha ny fotoana, ary rehefa manangana tatitra momba azy ireo, ny famakiana teboka foana dia mitaky fotoana sy loharano maro.

Tiako ny manamarika avy hatrany fa ireo olana voalaza etsy ambony dia azo fehezina amin'ny fampiasana fomba isan-karazany sy amin'ny ambaratongam-pahombiazana isan-karazany, saingy arakaraka ny atombokao ny angon-drakitra azonao dia vao mainka miharatsy izany.

Ny fananana rehetra voalaza etsy ambony (raha raisina ny teo aloha lahatsoratra), ary koa ny fitomboan'ny isan'ny metrika voaray, ny faniriana hamindra ny metrika rehetra amin'ny elanelam-potoana fitahirizana 30 segondra. (hatramin'ny 10 segondra raha ilaina), dia nanapa-kevitra ny hanandrana ny Graphite+ClickHouse izahay ho solon'ny Whisper.

Graphite+ClickHouse. fanantenana

Nitsidika fihaonana maromaro tamin'ireo lehilahy avy ao amin'ny Yandex, rehefa namaky lahatsoratra roa momba ny Habré, rehefa nandalo ny antontan-taratasy ary nahita singa marim-pototra hamatotra ny ClickHouse eo ambanin'ny Graphite, dia nanapa-kevitra ny handray andraikitra izahay!

Te-hahazo ireto manaraka ireto aho:

  • mampihena ny fampiasana subsystem kapila amin'ny 30% ka hatramin'ny 5%;
  • mampihena ny habetsaky ny habaka mipetraka amin'ny 1TB ka hatramin'ny 100GB;
  • afaka mahazo metrika 100 tapitrisa isa-minitra ao amin'ny server;
  • famerenan'ny angon-drakitra sy fandeferana diso ivelan'ny boaty;
  • aza mipetraka amin'ity tetikasa ity mandritra ny herintaona ary manao ny tetezamita ao anatin'ny fe-potoana mety;
  • mifamadika tsy misy fiatoana.

Tena fatra-paniry laza, sa tsy izany?

Graphite+ClickHouse. singa

Mba hahazoana angon-drakitra amin'ny alàlan'ny protocol Graphite ary handrakitra izany ao amin'ny ClickHouse, dia nisafidy aho carbon-clickhouse (golang).

Ny famoahana farany an'ny ClickHouse, kinova stable 1.1.54253, dia nofidina ho tahiry ho an'ny fitehirizana andiam-potoana. Nisy olana rehefa niasa tamin'izany: nisy hadisoana be dia be nirotsaka tao amin'ny hazo, ary tsy fantatra mazava izay tokony hatao amin'izy ireo. Eo amin'ny fifanakalozan-kevitra amin'ny Roman Lomonosov (mpanoratra ny carbon-clickhouse, graphite-clickhouse sy ny maro hafa) nofidina ilay zokiny famoahana 1.1.54236. Nanjavona ny fahadisoana - nanomboka niasa tamin'ny banga ny zava-drehetra.

Voafantina hamaky angona avy amin'ny ClickHouse graphite-сlickhouse (golang). Amin'ny maha API ho an'ny Graphite − carbonapi (golang). ClickHouse dia nampiasaina handaminana replication eo anelanelan'ny latabatra mpiandry biby. Ho an'ny metrika zotra dia nandao ny malalanay izahay carbon-c-relay (C) (jereo ny lahatsoratra teo aloha).

Graphite+ClickHouse. Firafitry ny latabatra

Ny "graphite" dia angon-drakitra noforoninay ho an'ny tabilao fanaraha-maso.

"graphite.metrics" - latabatra misy motera ReplicatedReplacingMergeTree (replicated ReplacingMergeTree). Ity tabilao ity dia mitahiry ny anaran'ny metrika sy ny lalana mankany aminy.

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" - latabatra misy motera ReplicatedGraphiteMergeTree (replicated GraphiteMergeTree). Ity latabatra ity dia mitahiry sanda metrika.

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

"graphite.date_metrics" dia latabatra feno fepetra miaraka amin'ny motera ReplicatedReplacingMergeTree. Ity tabilao ity dia mirakitra ny anaran'ny metrika rehetra hita nandritra ny andro. Ny antony namoronana azy dia voalaza ao amin'ny fizarana "olana" amin'ny faran'ity lahatsoratra ity.

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" - latabatra feno araka ny fepetra, miaraka amin'ny motera ReplicatedAggregatingMergeTree (replika AggregatingMergeTree). Ity tabilao ity dia mirakitra ny isan'ny metrika miditra, voazarazara ho ambaratonga 4 fanatobiana.

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. Diagram fifandraisan'ny singa

Fitehirizana metrika: ny fomba nifindranay tamin'ny Graphite+Whisper ho Graphite+ClickHouse

Graphite+ClickHouse. Data fifindra-monina

Araka ny tsaroanay avy amin'ny andrasana amin'ity tetikasa ity, ny fifindrana mankany amin'ny ClickHouse dia tokony ho tsy misy fiatoana; araka izany, dia tsy maintsy nanova ny rafitra fanaraha-maso manontolo ho amin'ny fitahirizana vaovao araka izay azo atao ho an'ny mpampiasa anay izahay.
Toy izao no nanaovanay izany.

  • Nisy fitsipika nampiana tao amin'ny carbon-c-relay mba handefasana mari-pamantarana fanampiny ho an'ny carbon-clickhouse an'ny iray amin'ireo lohamilina mandray anjara amin'ny famerenana ny tabilao ClickHouse.

  • Nanoratra script kely amin'ny python izahay, izay, amin'ny fampiasana ny bitsika-dump tranomboky, mamaky ny rakitra .wsp rehetra avy amin'ny fitahirizanay ary nandefa ity angona ity ho any amin'ny carbon-clickhouse voalaza etsy ambony amin'ny kofehy 24. Nahatratra 125 tapitrisa/min ny isan'ny soatoavina metrika nekena tao amin'ny carbon-clickhouse, ary tsy nahavaky hatsembohana akory ny ClickHouse.

  • Namorona DataSource misaraka amin'ny Grafana izahay mba hanaisotra ny fiasa ampiasaina amin'ny dashboard efa misy. Nahita lisitr'ireo fiasa nampiasainay izahay, saingy tsy nampiharina tamin'ny carbonapi izy ireo. Nampianay ireo asa ireo ary nandefa PR ho an'ireo mpanoratra ny carbonapi (misaotra manokana ho azy ireo).

  • Mba hamadihana ny enta-mamaky ao amin'ny fikandrana balancer, dia novanay ho carbonapi ny teboka farany avy amin'ny graphite-api (interface API ho an'ny Graphite+Whisper).

Graphite+ClickHouse. VOKATRA

  • mampihena ny fampiasana subsystem kapila avy amin'ny 30% ka hatramin'ny 1%;

    Fitehirizana metrika: ny fomba nifindranay tamin'ny Graphite+Whisper ho Graphite+ClickHouse

  • nampihena ny habaka nipetrahana avy amin'ny 1 TB ho 300 GB;
  • manana ny fahafahana mandray metrika 125 tapitrisa isa-minitra ao amin'ny lohamilina izahay (ny tampony amin'ny fotoana fifindra-monina);
  • namindra ny metrika rehetra ho any amin'ny elanelam-potoana fitahirizana roa amby telopolo;
  • nahazo replication angon-drakitra sy fandeferana fahadisoana;
  • mifamadika tsy misy fiatoana;
  • Naharitra 7 herinandro teo ho eo vao vita ny zava-drehetra.

Graphite+ClickHouse. OLANA

Teo aminay dia nisy ny fandrika sasany. Io no sendra anay taorian’ny tetezamita.

  1. ClickHouse dia tsy mamerina mamaky ny configs amin'ny lalitra; indraindray mila averina averina. Ohatra, raha ny momba ny famaritana ny kluster zookeeper ao amin'ny config ClickHouse, dia tsy nampiasaina izany raha tsy naverina naverina indray ny serivisy clickhouse.
  2. Tsy nandalo ny fangatahana ClickHouse lehibe, ka ao amin'ny graphite-clickhouse dia toy izao ny tady fifandraisana ClickHouse:
    url = "http://localhost:8123/?max_query_size=268435456&max_ast_elements=1000000"
  3. Ny ClickHouse dia matetika mamoaka dikan-teny vaovao amin'ny famoahana stable; mety misy tsy ampoizina izy ireo: mitandrema.
  4. Ny kaontenera noforonina dynamique ao amin'ny kubernetes dia mandefa metrika marobe miaraka amin'ny androm-piainany fohy sy kisendrasendra. Tsy misy teboka maro ho an'ny metrika toy izany, ary tsy misy olana amin'ny habaka. Fa rehefa manangana fanontaniana, ClickHouse dia maka betsaka amin'ireo metrika ireo avy amin'ny latabatra 'metrika'. Amin'ny 90% amin'ny tranga, tsy misy angon-drakitra momba azy ireo any ivelan'ny varavarankely (24 ora). Saingy ny fotoana dia lany amin'ny fitadiavana an'io data io ao amin'ny tabilao 'data', ary amin'ny farany dia mandeha amin'ny fe-potoana. Mba hamahana ity olana ity dia nanomboka nitazona fomba fijery misaraka izahay miaraka amin'ny fampahalalana momba ny metrika izay sendra nandritra ny andro. Noho izany, rehefa manangana tatitra (sary) ho an'ny kaontenera noforonina mavitrika, dia ireo metrika hita ao anatin'ny varavarankely iray ihany no anontanianay, fa tsy nandritra ny fotoana rehetra, izay nanafaingana ny fanamboarana ny tatitra momba azy ireo. Ho an'ny vahaolana voalaza etsy ambony dia nanangona aho graphite-clickhouse (fork), izay ahitana ny fampiharana ny fiasana amin'ny tabilao date_metrics.

Graphite+ClickHouse. Tags

Miaraka amin'ny version 1.1.0 dia lasa ofisialy ny Graphite fanohanana tags. Ary mieritreritra am-pahavitrihana momba ny zavatra sy ny fomba atao izahay hanohanana ity hetsika ity ao amin'ny stack graphite+clickhouse.

Graphite+ClickHouse. Anomaly detector

Mifototra amin'ny fotodrafitrasa voalaza etsy ambony, nametraka prototype de detector anomaly izahay, ary miasa izany! Fa bebe kokoa momba azy ao amin'ny lahatsoratra manaraka.

Misoratra anarana, tsindrio ny zana-tsipìka ambony ary faly!

Source: www.habr.com

Add a comment