Monday, 11 December 2017

Rrdtool graf glidande medelvärde


Skift data framåt med en vecka 604800 sekunder. Om den specialiserade funktionen RRA finns för avvikande beteende detektering, kan de användas för att generera grafen för en tidsserie med konfidensband och fel. Detta exempel genererar ett diagram av dataserien i blått LINE2 med scaledobs virtuella datakälla, konfidensgränser i virtuella datakällor med scaledlower och scaledlower virtuella datakällor, samt potentiella fel, dvs potentiellt avvikande avvikande beteende som markeras med vertikala gule linjer, misslyckat datakälla. Rådata kommer från en AVERAGE RRA den finaste upplösningen av Observerade tidsserier en konsoliderad datapunkt per primär datapunkt De förutspådda eller släta värdena lagras i HWPREDICT RRA. De förutspådda avvikelserna tror att standardavvikelser från standardvärden lagras i DEVPREDICT RRA. Slutligen innehåller FAILURES RRA indikatorer, där 1 betecknar ett potentiellt fel. Alla data omkalkas till bitar istället för okteter genom att multiplicera med 8 Förtroendegränserna beräknas av En förskjutning av 2 avvikelser, både ovanför och under de förutsagda värdena, CDEFs övre och nedre vertikala linjer indikerade potentiella fel grafas via TICK-grafelementet, vilket omvandlar icke-nollvärden i ett RRA till kryssmarkeringar. Här är ett axelfraktionsargument av 1 0 betyder att kryssmarkeringarna spänner över hela y-axeln och därigenom blir vertikala linjer i diagrammet. Valet av 2 avvikelser en skaleringsfaktor matchar den standard som används internt av felet RRA Om det interna värdet ändras se rrdtune, Bör ändras för att vara konsekvent. Rrdtool-grafkommandot är utformat för att plotta data vid en bestämd tidsmässig upplösning, oavsett den faktiska upplösningen av data i RRD-filen. Detta kan uppvisa ett problem för de specialiserade konsolideringsfunktionerna som upprätthåller en en-till - An kartläggning mellan primära datapunkter och konsoliderade datapunkter Om ett diagram insisterar på att innehållet i dessa RRA ska ses på en grov temporär skala, försöker grafkommandot att göra Något intelligent men förtroendeband och misslyckanden har inte längre samma betydelse och kan vara vilseledande. Rrdgraph ger en översikt över hur rrdtoolgraf fungerar rrdgraphdata beskriver DEF, CDEF och VDEF i detalj rrdgraphrpn beskriver RPN-språket som används i xDEF-satsen rrdgraphgraph-sidan Beskriver alla graf - och utskriftsfunktioner. Program av Tobias Oetiker. Den här handboken av Alex van den Bogaerdt med korrigeringar och tillägg av flera personer. RRDtool skapar handledning och exempel. Rrdtool skapar en databas Det läser inte ditt sinne. Innan du Kan berätta för RRDtool vad man ska skapa, måste du först bestämma vad du behöver och när du behöver det. Det här exemplet handlar inte så mycket om att klippa och klistra, det är att lära dig hur du kan översätta din idé till en fungerande inställning. Håll en nära Titta på de siffror du ska ge till RRDtool senare Vad representerar dessa nummer Hur förändras de. Ett vanligt exempel är en räknare som hålls av en nätverksenhet och visar nummen Av oktetsbyte in eller ut enheten Denna räknare startas vid någon tidpunkt och fortsätter att öka I detta fall är du intresserad av skillnaden, deltaet, mellan två ögonblick i tiden Skillnaden är den mängd oktetter som transporteras därmed Tidsintervall. Ett liknande men mindre ofta sett exempel skulle vara räknaren på en elmätare. Detta är också en ständigt ökande räknare. Det resulterar i mängden kWh som används i ett tidsintervall. Men i det här fallet bör du inser att kWh är bara ett annat sätt att räkna Joules, något som du verkligen vill veta senare i processen. En helt annan typ av input skulle vara en hastighetsmätare, enheten i en bil som visar hur snabbt du rör dig. Det nummer du får är redan en takt Även om du får det i mph eller i km h, är det bara ett antal meter per sekund, om än givet i en annan enhet, som liknar kWh vs Joules. I stället kommer RRDtool att omvandla ingången som den får i en takt och kommer att normalisera Dessa satser så att Y passar in i väldefinierade tidsintervaller Det finns inget du kan göra med det här, det är hur det fungerar Se priser, normalisera och konsolidera för en mer detaljerad förklaring av detta. Det är inget problem om du missbrukar RRDtool för att arbeta med data som inte är en takt som temperaturen Kom ihåg att RRDtool kommer att tro att det är en takt och ge den till RRDtool som om den redan är en takt Det betyder mottyp GAUGE. Det finns många olika exempel att tänka på om du har ett exempel som kommer att Vara av allmänt intresse, eller om du är villig att betala för min tid, vidarebefordra det till mig och jag kommer att arbeta ut här. Inmatningen är en hastighet, t. ex. eller bör behandlas som en takt, t. ex. temperaturen. Inmatningen är ett ständigt ökande antal, t ex en oktetträknare i en router RRDtool bör beräkna skillnaden mellan den senaste uppdateringen och den nuvarande och dela den med tiden borttagen. Detta liknar COUNTER, förutom att ingången kan minska detta Är till exempel användbart i en kWh-mätare när du producerar E mer solkraft än du använder I det fallet får du faktiskt en negativ hastighet. Detta ska användas när räknaren återställs varje gång den läses, när folk börjar räkna från noll osv. Huvudskillnaden mellan ABSOLUTE och GAUGE är att ingången ännu inte är en hastighet. Den ska först delas upp för tiden för att få en hastighet. Huvudskillnaden mellan ABSOLUTE och COUNTER är att RRDtool inte ska använda det föregående inmatningsvärdet för att beräkna sitt delta. När du har räknat ut hur för att bearbeta ingången måste du räkna ut hur du vill lagra de beräknade räntorna. Det finns flera saker att titta på. Först och främst behöver du veta hur mycket tid du vill kunna titta på. Också mycket viktigt är hur du vill För att kunna se på det här. Så du vill kunna se tillbaka ett år, behöver du fortfarande veta om du vill kunna zooma in eller om du bara vill titta på den stora bilden Med andra ord om nu är 1 mars 2009, vill du titta på 2007-03-01 till 2009-03-01 eller vill du ha det För att kunna titta på 2007-03-01 midnatt till nästa midnatt. Vad du behöver förstå här är konsolidering Säg att du kommer att titta på två års värde av information och att tillgängliga data är i en upplösning på 300 sekunder per Hink Detta innebär att du har mer än 200 000 hinkar Om du ska visa detta på en bild med 400 pixlar bred måste 500 sådana hinkar passa in på pixelkolumnen Att hålla de 200 000 hinkarna är inte bara slöseri med utrymme Om RRDtool behöver För att göra alla dessa hinkar passande på grafen måste den fungera Beroende på processorns bearbetningsförmåga kan detta innebära en försenad visning av dina grafer. Du kan instruera RRDtool för att hålla historiska data på ett konsoliderat sätt, lämpligt för visning Utan fördröjning som just nämnts Detta kräver viss planering, jag kommer att fördjupa mig vidare Men vad om du vill kunna zooma in Inget problem kan du berätta för RRDtool att även hålla data i sin ursprungliga hink storlek t. ex. de 300 sekunder Eller om Du ch Oj så kan du berätta för RRDtool att behålla uppgifterna endast i den ursprungliga hinkens storlek Det är upp till dig Vet bara att det är svårt att ändra dig när du har byggt din databas I många fall måste du börja om du Do. RRDtool använder RRAs RRDtool Arkiv för att lagra data Var och en av dessa RRAs är oberoende av de andra. Du kan ha en som lagrar data i en 300 sekunders upplösning och en annan som lagrar data i en 86400 sekunders upplösning. Om du vill kan var och en av dessa exempel innehålla samma tid, inget problem Det handlar bara om hur många rader du genererar i varje RRA. Så du kommer att generera bilder där det inre grafområdet är 360 pixlar brett Det är generellt bäst om du Konfigurera din RRD så att en av dess RRA matchar upplösningen på skärmen Du kan göra detta i designfasen genom att justera storleken på varje hink eller du kan noggrant planera start - och sluttider Om du har en RRA som lagrar data i en 86400 - second upplösning, och du visar 360 da Det är en bra passform Visa 180 dagar och varje dag kommer att vara 2 kolumner breda, inte mycket av ett problem. Visa 720 dagar och RRDtool behöver fortfarande göra 2 hinkar i en pixel. Tänk på nätverksstatistik så att Du kan veta hur mycket data som transporteras, vilket hjälper dig att bestämma om det är dags att expandera nätverkskapacitetsarbetet kommer antagligen att bli allt större antal tills en kassettlindning uppstår så att den är lätt att använda TELARE Även ganska ofta kommer de Parvis inkommande och utgående sett från enheten Du kommer att fråga enheten ungefär var 5: e minut, men du ger dig själv och din schemaläggning lite slak. Det finns dock en gräns för hur mycket du är beredd att ge om uppdateringarna är längre än varandra. 10 minuter gick något fel och du kan inte förlita dig på nätverksräknarnas noggrannhet. Ett fel kan ha uppstått, vilket resulterar i en omstart av enheten. Du vet att enheten som vann t någonsin transporterar mer än 100 Mbps Högre än det är resultatet av något okänt fel någonstans på ett okänt ställe. Du vet inte varför det skulle hända om du inte vill att den ska dyka upp. Det är precis som ett säkerhetsnät. En av diskarna. Den andra Disken är bara densamma, förutom sitt namn Ge följande till rrdtool create. Say du vill kunna visa de senaste 2 åren, de senaste 2 månaderna, de senaste 2 veckorna och de senaste 2 dagarna Databasen använder standardsteget storleken på 300 sekunder per intervall. Första sak som jag märker varje gång senast nämns Det betyder att inga extra rader måste vara närvarande för att tillåta inzoomning tidigare. Till exempel behöver du inte behålla data i en 300-sekunders upplösning för hela två år. Jag märker också omedelbart användningen av år, månad, vecka och dag. Dessa är inte fasta tidsintervaller Ett år kan vara 365 eller 366 dagar En månad kan vara 28 dagar, 29 dagar, 30 dagar, 31 dagar, det kan till och med vara en timme mindre eller en timme mer, eller 30 minuter mindre, beroende på hur dagslyset fungerar f Eller du På samma sätt i veckan är det inte alltid 7 dagar och en dag är inte alltid 24 timmar Det här är oanvändbart, och för det här exemplet är det också onödigt. Det betyder att jag kan, borde och kommer att ändra begäran om att visa de senaste 720 dagarna , de senaste 60 dagarna, de senaste 14 dagarna och de senaste 2 dagarna, alla baserade på UTC-tid utan sommarbesparingar att överväga. Nu är det dags att bestämma bredden på varje graf. Första sak att göra är att titta på hur mycket tid med En stegstorlek på 300 sekunder, en dag motsvarar 288 steg. 720 288 207360 steg. Det verkar inte alltid vara så bra passform Bestäm själv vad du tycker om mer, se mer eller mindre tid än vad som ursprungligen planerades eller ha olika Bildbredder Oavsett vad du gör, se till att siffrorna är heltal Inte för att RRDtool behöver det det gör det, men för att det gör livet enklare. Antalet 360, 30, 7 och 1 är hur många steg som ska fyllas i när du skapar varje RRA The nummer 576 är mängden rader att fylla i. Detta lämnar två andra parametrar CF och xff som jag förklarar snarare Ge det här till RRDtool. RRA MIN 0 360 576 RRA MIN 0 30 576 RRA MIN 0 7 576 RRA AVERAGE 0 360 576 RRA AVERAGE 0 30 576 RRA AVERAGE 0 7 576 RRA AVERAGE 0 1 576 RRA MAX 0 360 576 RRA MAX 0 30 576 RRA MAX 0 7 576.MIN, AVERAGE och MAX bestämmer hur RRDtool ska konsolidera flera räntor i en Mer om detta i Priser, normalisera och konsolidera om du är intresserad Ser du att jag har 3 MIN och MAX RRA och 4 AVERAGE Det här beror på att minsta, genomsnittliga och maximala bara en hastighet alltid kommer att vara densamma. Jag behöver bara en av dem, inte alla tre. XFF, X-Files Factor, fick sitt namn eftersom det är okunnigt om du har det ställs in på något annat tal än noll Det har att göra med okända data och hur det behandlas Vad är medelvärdet av Det enda svaret är okänt Fortfarande vill många svar 1 XFF bestämmer hur mycket av de ursprungliga data som kan vara okänd och producerar fortfarande 1 eller någon annan ränta Ett gemensamt värde är 0 5 vilket betyder att 1 men gör det Es inte För det här exemplet skulle 0 5 vara lämpligt men om du använder data för faktureringsändamål skulle det inte övervägas medelvärde Med XFF satt till 0 5 skulle det vara 100 i genomsnitt Chanserna är att de okända är resultatet av en anslutning problem, i vilket fall det skulle vara orättvist att fakturera din kund för en hastighet på 100 under de okända intervallen. För kapacitetsplanering å andra sidan skulle du troligtvis ha sett en kurs om 100 när inget avbrott skulle ha uppstått. Kanske vill veta att det var ett avbrott även om man tittar på diagrammet som visar 2 år. Rrdtool create kommer också att acceptera en starttid Detta är bara viktigt om du har historiska data som du kommer att importera om du inte gör det, bara Hoppa över parametern och RRDtool kommer att göra det rätta Om du ska importera historiska data ställer du in detta till något innan de äldsta data du kommer att importera. Övriga parametrar är standardstorlek 300 sekunder och namnet på filen för att skapa. Hela exemplet är n ow färdig Detta är kommandot att ge till RRDtool för det här exemplet case. rrdtool skapa DS ds0 COUNTER 600 0 12500000 DS ds1 COUNTER 600 0 12500000 RRA MIN 0 360 576 RRA MIN 0 30 576 RRA MIN 0 7 576 RRA AVERAGE 0 360 576 RRA AVERAGE 0 30 576 RRA AVERAGE 0 7 576 RRA AVERAGE 0 1 576 RRA MAX 0 360 576 RRA MAX 0 30 576 RRA MAX 0 7 576.Jag gillar att skriva mina skript lite annorlunda Jag använder ett unix-skal och skriver mitt skript Gillar det. Det gör ingen skillnad, när skalet brinner upp rrdtool, blir det att se samma kommando kanske med lite mer vithastighet, jag vet inte ens. Gillar du denna information Berätta för andra Don t du Berätta för mig. Den här sidan var skapad av Alex van den Bogaerdt, en oberoende IT-konsult Om du vill ge feedback eller om du vill anställa mig, vänligen se. Skapa RRD-grafer i PHP. Upplagt av Joshua Thijssen den 23 februari 2011. Du kanske inte är bekant med termen RRD-graf, men om jag visar dig en du känner igen dem säkert omedelbart De är vana vid att plotta alla typ av data mot tid på ett mycket enkelt sätt, varför de används mycket i alla typer av applikationer Trots att många anser RRD som ett bibliotek för att skapa diagram, är det faktiskt mer än att det är ett komplett system för att lagra aggregerad data i ett mycket effektivt sätt. RRD står för Round Robin Database Det är en databas för att samla alla typer av data mot tiden. Round robin står för det faktum att endast en viss mängd datapunkter kan lagras När vi når slutet av databasen, det kommer att hoppa tillbaka till början igen Det betyder att RRD-databasfiler aldrig kommer att växa i storlek. Varje RRD arbetar med en steghastighet som berättar hur långt datapunkterna är placerade från varandra Normalt är det 300 sekunder 5 minuter så alla data lagras i ett 5-minutersintervall Det betyder inte att du bara kan lägga till data var 5: e minut men du kan lägga till så mycket data i RRD och när som helst du gillar RRD kommer att kombinera denna data till en datapunkt Om du har en standard steghastighet på 5 minuter S men du lägger till några data varje minut till din RRD, det kommer att genomsnittsa dessa 5 värden i 1 datapunkt. Eftersom du kan bild, är RRD s inte riktigt för att lagra faktiska data, utan bara för grafiska och statistiska användningar. vi kan göra något användbart med RRD, vi behöver installera RRD-förlängningen Om du kör på CentOS har du lycka RPMForge-förvaret tillhandahåller ett php5-rrdtool-paket som du kan installera med yum installera php5-rrdtool I ett Debian - eller Ubuntu-system Det finns inget standardpaket men det är väldigt enkelt att bygga från källan. Om du inte kan bygga förlängningen eller du inte hittar något som fungerar, ingen rädsla. Du kan fortfarande använda kommandoradsversionen av RRDTool för att prova alla exempel. Vårt RRD-exempel. Det bästa sättet att lära känna RRD är att faktiskt skapa en Antag att du vill visa statistik över användare som har loggat in i vår webbapplikation och vi vill se antalet misslyckanden som har inträffat, till exempel när en användare har skrivit in en wr Ong lösenord Vi vill se dessa data i ett dagligt diagram, en veckovis graf, en månadsgraf och kanske en årlig graf också. Skapa vår databasfil. Som sagt är RRDtool mer eller mindre en databas så att vi definierar mycket någon form av Schema För att göra det kan vi använda rrdcreate-funktionen eller rrdtool create-kommandoradsversionen Det finns två olika saker vi behöver konfigurera datakällorna och round robin-arkiven Datakällorna berättar vad du ska lagra medan Round Robin-arkiven berättar hur man lagrar den. Uppställning av datakällor. Datakällorna beskriver de faktiska data som vi vill lagra. I vårt fall vill vi lagra 2 slags datapunkter antalet lyckade inloggningar och antalet misslyckade loggar Ins Vi kallar dem framgångar och misslyckades. Dessa datakällor är ABSOLUTA typer, vilket innebär att data återställs efter varje poängsamling. Det finns andra typer beroende på vilken typ av data du vill lagra. Dessutom måste vi ange ett hjärtslag betyder att när ingen datakälla registreras under denna tid kommer RRD att betrakta datapunkten som okänd vilket är något annat än 0. De sista 2 objekt som vi måste ange är den nedre och övre gränsen för datakällan Om vi ​​skulle ha data Källa som anges i procent, till exempel, din server s använde diskutrymme i procent, vi kunde ange en lägre gräns på 0 och en övre gräns på 100 Eftersom vi hanterar inloggningsförsök kan vi bara ange nedre gränserna Vi Ställa in övre gränsen till U okänd. Uppställning av RRA. Nå vet vi vad som ska lagras, måste vi berätta för RRD hur man lagrar data Som sagt lagras data på ett cykliskt round robin sätt så vi måste definiera mängden rum Vi vill använda Vi vill ha 4 olika grafer dagligen, veckovis, månadsvis och årligt Det betyder emellertid inte att vi behöver ha 4 RRA s RRD kan bestämma vilken RRA s den ska använda för att gradera data. Varje RRA definieras i följande Formatet. Cf står för konsolideringsfunktionen och kan vara antingen AVERAGE, LAST, MIN, MAX Det definierar hur datapunkterna blir aggregerade AVERAGE kommer att genomsnittliga punkterna, LAST kommer att lagra sista punkten, MIN kommer att lagra den lägsta punkten som hittats och MAX den högsta. Den xff bör ställas in till 0 5, och steg bestämmer hur många poäng blir konsoliderade, rader är hur mycket poäng det kommer att lagra så småningom. Jag har bestämt mig för att skapa 3 RRA s en butiker de enda 5 minutersproverna för en period av 1 dag 12 poäng per timme gånger 24 timmar 288 poäng, en butik 1 timme prov 12 poäng för 1 vecka 24 7 poäng och en lagrar 1 dag 288 poäng prov för ett år 365 poäng. Naturligtvis kunde vi ha lagrat varje 5-minuters punkt i en period av 1 år, men vi skulle behöva lagra 12 24 365 105120 poäng Genom att lagra på ett konsoliderat sätt har vi ett effektivt sätt att lagra data medan vi fortfarande behåller tillräckligt med information för att rita våra diagram. Uppdatera dina data. RRD måste samla in data med fasta intervall Vi borde ha ett separat system som en cronjob som samlar in mängden data och du Pdates RRD i enlighet därmed Om vi ​​inte uppdaterar i tid som specificeras av hjärtslaget, får vi okända punkter som orsakar tomma fläckar i våra grafer senare. Nästa kod kommer att simulera inloggningssucces och misslyckanden som sträcker sig tillbaka från 180 dagar sedan till nu. Nu Har kommit fram till den coolaste delen av RRD grafen av de data som jag skapar 4 grundläggande diagram Varje graf visar de framgångsrika försöken i grönt och ovanför har jag angivit de misslyckade försöken Det finns många olika sätt att gradera data som linjer, olika nyanser , Ytor mm och nästan alla aspekter av grafen är anpassningsbara. Vårt resultat borde vara något som detta. RRDtool är ett bra ställe att generera grafer på ett enkelt sätt, men du får inte luras av det s tydlig enkelhet Det kan skapa mycket komplexa grafer om det behövs Vi skrapade precis grunderna som är mer än tillräckligt för att komma igång med egna grafer. Tyvärr är PHP-bindningen av RRDTool inte riktigt väl underhållen, men eftersom de bara är ett skal runt kommandoradsversionen, fungerar de tillräckligt bra för att skapa coola grafer. Mer information om RRD och RRDTool finns på huvudsidan för RRD. Om författaren Joshua Thijssen är en senior programvaruingenjör vid Enrise och ägare till det privatägda företaget NoxLogic Hans programmeringsfärdigheter inkluderar men är inte begränsade till montering, C, C, Java, Perl, Python och PHP och har erfarenhet av att administrera ett brett spektrum av operativsystem. En av hans specialiteter är finjustering av MySQL-databaser och frågor. Hans personliga blogg kan vara hittades.

No comments:

Post a Comment