Thursday, 9 November 2017

Rrdtool Graf Moving Average


Skift dataene fremover med en uke på 604800 sekunder. Hvis de spesialiserte funksjonene RRAer eksisterer for avvikende oppførsel, kan de brukes til å generere grafen til en tidsserie med konfidensbånd og feil. Dette eksemplet genererer en graf av dataserien i blått LINE2 med scaledobs virtuelle datakilde, konfidensgrenser i røde scaledupper og scaledlower virtuelle datakilder og potensielle feil, dvs. potensiell avvikende avvikende oppførsel markert med vertikale gule linjer, mislykkes datakilden. Rådataene kommer fra en GENEREL RRA, den fineste oppløsningen til observerte tidsserier ett konsolidert datapunkt per primært datapunkt De forutsagte eller jevnte verdiene er lagret i HWPREDICT RRA. De forutsagte avvikene tror at standardavviksverdier er lagret i DEVPREDICT RRA. Til slutt inneholder FAILURES RRA indikatorer, hvor 1 angir en potensiell feil. Alle dataene blir rescaled til biter i stedet for oktetter ved å multiplisere med 8 Selvtillitgrensene beregnes av en forskyvning av 2 avvik både over og under de anslåtte verdiene. CDEFs øvre og nedre vertikale linjer indikerer potensielle feil grafes via TICK-grafelementet, som konverterer ikke-nullverdier i et RRA til tikmerkene. Her er et aksefraksjonargument på 1 0 betyr at merketeknikken spenner over hele y-aksen og dermed blir vertikale linjer på grafen. Valget av 2 avviker en skaleringsfaktor samsvarer med standarden som brukes internt av feilene RRA Hvis den interne verdien endres, se rrdtune, denne grafikkkommandoen bør endres for å være konsekvent. Rrdtool-graf-kommandoen er utformet for å plotte data ved en angitt tidsoppløsning, uavhengig av faktisk oppløsning av dataene i RRD-filen. Dette kan presentere et problem for de spesialiserte konsolideringsfunksjonene som opprettholder en til - En kartlegging mellom primære datapunkter og konsoliderte datapunkter Hvis en graf insisterer på å se innholdet i disse RRAene på en grovere temporal skala, prøver grafkommandoen å gjøre noe intelligent, men konfidensbånd og feil har ikke lenger samme betydning og kan være misvisende. rrdgraph gir en oversikt over hvordan rrdtool-grafen fungerer rrdgraphdata beskriver DEF, CDEF og VDEF i detalj rrdgraphrpn beskriver RPN-språket som brukes i xDEF-setningene rrdgraphgraph-siden beskriver alle graf - og utskriftsfunksjoner. Program av Tobias Oetiker. Denne manuelle siden av Alex van den Bogaerdt med korrigeringer og tillegg av flere personer. RRDtool lage opplæring og eksempler. rrdtool lage oppbygger en database Det leser ikke tankene dine. Før du kan fortelle RRDtool hva du skal skape, må du først bestemme hva du trenger og når du trenger det. Dette eksempelet er ikke så mye om kutt og lim, det er å lære deg hvordan du kan oversette ideen til en arbeidsoppsett. se på tallene du skal gi til RRDtool senere. Hva representerer disse tallene. Hvordan endrer de. Et vanlig eksempel er en teller som holdes av en nettverksenhet, og viser nummen er av oktetsbyte inn eller ut enheten Denne telleren er startet på et tidspunkt, og fortsetter å øke. I dette tilfellet er du interessert i forskjellen, deltaet, mellom to øyeblikk i tiden. Forskjellen er mengden av oktetter som transporteres i det tidsintervall. Et lignende, men sjeldnere sett eksempel ville være telleren på en elmåler. Dette er også en stadig økende teller. Det resulterer i mengden kWh som brukes i et tidsintervall. I dette tilfellet bør du innse at kWh er bare en annen måte å telle Joules på, noe du virkelig vil vite senere i prosessen. En helt annen type innspill ville være et hastighetsmålere, enheten i en bil som viser hvor fort du beveger deg. Tallet du får, er allerede en hastighet Selv om du får det i mph eller i km h, er det bare noen få meter per sekund, om enn gitt i en annen enhet, ligner kWh mot Joules. I tillegg vil RRDtool omforme inngangen den kommer til en hastighet og vil normalisere disse prisene, slik at y passer inn i veldefinerte tidsintervaller Det er ingenting du kan gjøre med dette, det er hvordan det fungerer. Se priser, normalisere og konsolidere for en mer grundig forklaring på dette. Det er ikke noe problem hvis du misbruker RRDtool for å jobbe med data som ikke er en hastighet, for eksempel temperatur Bare husk at RRDtool vil tro at det er en hastighet, og gi det til RRDtool som om det allerede er en hastighet Det betyr counter type GAUGE. Det er mange forskjellige eksempler å tenke på Hvis du har et eksempel som vil være av generell interesse, eller hvis du er villig til å betale for min tid, send det til meg og jeg vil jobbe det her. Innspillet er en hastighet, egmer, eller skal behandles som en hastighet, for eksempel temperatur. er et stadig større antall, for eksempel en okteteller i en ruter RRDtool skal beregne forskjellen mellom den siste oppdateringen og den nåværende, og dele den med tiden som er gått. Dette ligner på COUNTER, bortsett fra at inngangen kan redusere dette er nyttig for eksempel i en kWh meter når du produserer e mer solkraft enn du bruker I det tilfellet får du faktisk en negativ hastighet. Dette skal brukes når telleren tilbakestilles hver gang den leses, når folk begynner å telle fra null osv. Hovedforskjellen mellom ABSOLUTE og GAUGE er at inngangen ennå ikke er en hastighet. Det skal først deles opp etter tid for å få en hastighet. Hovedforskjellen mellom ABSOLUTE og COUNTER er at RRDtool ikke burde bruke den forrige inngangsverdien til å beregne sitt delta. Når du har funnet ut hvordan å behandle innspillet må du finne ut hvordan du vil lagre de beregnede prisene. Det er flere ting å se på. Først og fremst må du vite hvor mye tid du vil kunne se. Også veldig viktig er hvordan du vil for å se på dette. Så du vil kunne se tilbake et år, trenger du fortsatt å vite om du vil kunne zoome inn, eller hvis du bare vil se på det store bildet. Med andre ord, hvis nå er 1. mars 2009, vil du se 2007-03-01 til 2009-03-01 eller vil du ha for å kunne se på 2007-03-01 midnatt til neste midnatt. Hva du trenger å forstå her er konsolidering Si at du vil se på to års verdifull informasjon, og at tilgjengelige data er i en oppløsning på 300 sekunder per bøtte Dette betyr at du har mer enn 200 000 bøtter Hvis du skal vise dette på et bilde på 400 piksler bredt, trenger 500 slike bøtter å passe inn på pikselkolonnen. Å holde de 200 000 bøssene er ikke bare sløsing med plass. Hvis RRDtool trenger For å få alle e-bøylene til å passe på grafen, må det gjøres i arbeid. Avhengig av serverens bearbeidingskapasiteter kan dette bety en forsinkelse i visning av grafene. Du kan instruere RRDtool for å holde historiske data på en konsolidert måte, egnet for visning uten forsinkelse bare nevnt Dette krever litt planlegging, jeg vil videreutvikle Men hva om du vil kunne zoome inn Det er ikke noe problem, du kan fortelle at RRDtool også beholder dataene i den opprinnelige bøtteformatet, f. eks. de 300 sekunder eller, hvis du ch Uansett, du kan fortelle RRDtool å beholde dataene bare i den originale bøttestørrelsen. Det er opp til deg. Bare vet at det er vanskelig å skifte seg når du har bygget databasen. I mange tilfeller må du begynne hele om du do. RRDtool bruker RRAs RRDtool Arkiver for lagring av data Hver av disse RRA er uavhengig av de andre, du kan ha en som lagrer data i en 300 sekunders oppløsning og en annen som lagrer data i en 86400 sekunders oppløsning Hvis du vil, kan hver av disse eksemplene inneholde samme tid, ikke noe problem. Det handler bare om hvor mange rader du genererer i hver RRA. Så du vil generere bilder der det indre grafområdet er 360 piksler bredt. Det er generelt best hvis du sett opp din RRD slik at en av sine RRAs samsvarer med oppløsningen på skjermen. Du kan gjøre dette i designstadiet ved å justere størrelsen på hver bøtte, eller du kan nøye planlegge start og sluttider. Hvis du har en RRA som lagrer data i en 86400 - resond oppløsning, og du viser 360 da Dette er en fin passform Vis 180 dager og hver dag vil være 2 kolonner bred, ikke mye av et problem. Vis 720 dager, og RRDtool trenger fortsatt å lage 2 bøtter som passer inn i en piksel. Se på nettverksstatistikk, slik at du kan vite hvor mye data blir transportert, noe som hjelper deg med å avgjøre om det er på tide å utvide nettverkskapasitetsarbeidet ditt, vil de sannsynligvis bli stadig flere tall inntil en motvikling oppstår slik at delen er enkel å bruke TELLER Også ganske ofte kommer de parvis innkommende og utgående som sett fra enheten. Du skal spørre enheten omtrent hvert 5. minutt, men du gir deg selv og din planmessige noe slakk. Det er imidlertid en grense for hvor mye slakk du er forberedt på å gi. Hvis oppdateringer er lenger fra hverandre enn 10 minutter har noe gått galt, og du kan ikke stole på nøyaktigheten til nettverkstellerne. En feil kan ha oppstått, noe som resulterer i en omstart av enheten. Du vet at enheten som vant, aldri transporterer mer enn 100 Mbps, slik at noen hastighet høyere enn det er resultatet av en eller annen ukjent feil et sted på et ukjent sted. Du vet ikke hvorfor det ville skje hvis det i det hele tatt, vil du aldri ha det til å dukke opp. Det er akkurat som et sikkerhetsnett. En av tellerne. Den andre telleren er bare den samme, bortsett fra navnet sitt Gi følgende til rrdtool create. Say du vil kunne vise de siste 2 årene, de siste 2 månedene, de siste 2 ukene og de siste 2 dagene Databasen bruker standardtrinnet størrelse på 300 sekunder per intervall. Første ting jeg legger merke til hver gang sist er nevnt Dette betyr at ingen ekstra rader må være tilstede for å tillate innzooming i det siste. Det er for eksempel ikke nødvendig å beholde data i en 300 sekunders oppløsning for hele to år. Jeg legger også merke til bruken av år, måned, uke og dag. Disse er ikke faste tidsintervaller Et år kan være 365 eller 366 dager En måned kan være 28 dager, 29 dager, 30 dager, 31 dager, det kan til og med være en time mindre eller en time mer, eller 30 minutter mindre, avhengig av hvordan sommertid fungerer eller du Likeledes en uke er ikke alltid 7 dager og en dag er ikke alltid 24 timer Dette er ubøyelig, og for dette eksemplet er det også unødvendig Dette betyr at jeg kan, bør og vil endre forespørselen om å vise de siste 720 dagene , de siste 60 dagene, de siste 14 dagene og de siste 2 dagene alle basert på UTC-tid uten sommertid å vurdere. Nå er det på tide å bestemme bredden på hver graf. Det første du må gjøre er å se på hvor mye tid med en trinnstørrelse på 300 sekunder, en dag tilsvarer 288 trinn. 720 288 207360 trinn. Det ser ikke alltid ut til å være så fin passform Bestem deg selv hva du liker mer, se på mer eller mindre tid enn det som var planlagt, eller ha forskjellig bildebredder Uansett hva du gjør, sørg for at tallene er hele tall Ikke fordi RRDtool trenger det, det gjør det ikke, men fordi det gjør livet enklere. Tallene 360, 30, 7 og 1 er mengden trinn som skal fylles ut når du lager hver RRA The nummer 576 er mengden rader som skal fylles inn. Dette etterlater to andre parametere CF og xff som jeg forklarer kort Gi dette til 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 og MAX fastslå hvordan RRDtool bør konsolidere flere satser i en Mer om dette i priser, normalisere og konsolidere hvis du er interessert Merker du at jeg har 3 MIN og MAX RRA og 4 AVERAGE Dette skyldes at minimum, gjennomsnitt og maksimum på bare én rate alltid vil være det samme. Jeg trenger bare en av dem, ikke alle tre. XFF, X-Files Factor, fikk navnet fordi det er uvitenskapelig hvis du har det er satt til noe annet tall enn null Det har å gjøre med ukjente data og hvordan dette behandles Hva er gjennomsnittet av Det eneste og eneste sanne svaret er ukjent Likevel, mange vil ha svar 1 XFF bestemmer hvor mye av de opprinnelige dataene som helst ukjent og fremdeles produsere 1 eller en hvilken som helst annen sats En felles verdi er 0 5, noe som betyr at 1 resulterer i, men gjør es ikke For dette eksempelet vil 0 5 være egnet, men hvis du bruker dataene for faktureringsformål, ville det ikke bli vurdert. Med XFF satt til 0 5, ville dette være 100 i gjennomsnitt. Sjansene er at de ukjente er resultatet av en forbindelse problem. I så fall ville det være urettferdig å fakturere kunden for en hastighet på 100 i løpet av de ukjente intervaller. For kapasitetsplanlegging derimot, ville du sannsynligvis ha sett en hastighet på 100 da det ikke hadde oppstått noe utbrudd. Så igjen kanskje vil vite at det var en feil, selv når du ser på grafen som viser 2 år. rrdtool create vil også akseptere en starttid Dette er bare viktig hvis du har historiske data som du skal importere Hvis du ikke gjør dette, bare hopp over parameteren og RRDtool vil gjøre det riktige Hvis du skal importere historiske data, må du sette dette til litt før de eldste dataene du skal importere. Andre parametere er standardstørrelse 300 sekunder som standard og navnet på filen for å opprette. Hele eksemplet er n ow ferdig Dette er kommandoen å gi til RRDtool for dette spesielle eksempelet case. rrdtool opprette 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.Jeg liker å skrive mine skript litt annerledes, jeg bruker et unix-skall, og skriver skriptet mitt som det gjør. Det gjør ingen forskjell, når skallet brenner opp rrdtool, blir det å se den samme kommandoen kanskje med litt mer hvite plass, jeg vet ikke engang. Du liker denne informasjonen. Fortell andre Don t du Fortell meg. Denne siden var opprettet av Alex van den Bogaerdt, en uavhengig IT-konsulent Hvis du vil gi tilbakemelding eller hvis du vil ansette meg, vennligst se. Opprett RRD-grafer i PHP. Skriv ut av Joshua Thijssen 23. februar 2011. Du kan ikke være kjent med Term RRD-graf, men hvis jeg viser deg en, kjenner du sikkert dem øyeblikkelig. De er vant til å plotte alt slags data mot tid på en veldig enkel måte, og derfor bruker de mye i alle typer applikasjoner Selv om mange anser RRD som et bibliotek for å lage grafer, er det faktisk mer enn at det er et komplett system for å lagre aggregerte data i en svært effektiv måte. RRD står for Round Robin Database Det er en database for å samle alle typer data mot tid. Round robin står for det faktum at bare en viss mengde datapunkter kan lagres Når vi når slutten av databasen, det vil vikle tilbake til begynnelsen igjen Dette betyr at RRD-databasefiler aldri vil vokse i størrelse. Hver RRD fungerer med en trinnhastighet som forteller oss hvor langt datapunktene er plassert fra hverandre. Normalt er dette 300 sekunder 5 minutter, så alle data lagres i et 5-minutters intervall Dette betyr ikke at du bare kan legge til data hvert 5. minutt, men du kan legge til så mye data i RRD og når som helst vil du. RRD vil kombinere disse dataene til et datapunkt. Hvis du har en standard trinnhastighet på 5 minutter s, men du legger til noen data hvert minutt til din RRD, det vil gjennomsnitts disse 5 verdiene i 1 datapunkt. Som du kan bildet, er RRD s egentlig ikke for lagring av faktiske data, men bare for grafiske og statistiske bruksområder. vi kan gjøre noe nyttig med RRD, vi må installere RRD-utvidelsen Hvis du kjører på CentOS, har du lykke. RPMForge-depotet inneholder en php5-rrdtool-pakke som du kan installere med yum installere php5-rrdtool På et Debian - eller Ubuntu-system Det er ingen standardpakke, men det er veldig enkelt å bygge fra kilden. Hvis du ikke kan bygge utvidelsen eller du ikke finner noe som fungerer, ikke frykt. Du kan fortsatt bruke kommandolinjeversjonen til RRDTool for å prøve alle eksempler. Vårt RRD-eksempel. Den beste måten å bli kjent med RRD er å faktisk opprette en. Antag at du vil vise noen statistikk over brukere som har logget inn i vårt webprogram, og vi vil se antall feil som har oppstått, for eksempel når en bruker har gikk inn i en wr ong passord Vi ønsker å se disse dataene i en daglig graf, en ukentlig graf, en månedlig graf og kanskje en årlig graf også. Å lage vår databasefil. Som sagt er RRDtool mer eller mindre en database, så vi definerer mye en slags skjema For å gjøre dette kan vi bruke rrdcreate-funksjonen eller rrdtool create kommandolinjeversjonen. Det er to forskjellige ting vi trenger for å konfigurere datakilder og round robin-arkivene. Datakilder forteller deg hva du skal lagre mens Round Robin-arkivene forteller deg hvordan du lagrer den. Sette opp datakilder. Datakildene beskriver de faktiske dataene vi vil lagre. I vårt tilfelle ønsker vi å lagre 2 slags datapunkter, antall vellykkede pålogginger, og antall mislykkede logg - ins Vi kaller dem suksess og mislyktes. Disse datakildene er ABSOLUTE typer, som betyr at dataene tilbakestilles etter hvert punktsamling. Det finnes andre typer, avhengig av hvilken type data du vil lagre. Dessuten må vi spesifisere et hjerteslag. Dette betyr at når ingen datakilde er registrert i denne tidsperioden, vil RRD vurdere datapunktet som ukjent, noe som er noe annet enn 0. De siste 2 elementene vi må spesifisere er den nedre og øvre grensen til datakilden Hvis vi ville ha data kilde som er oppgitt i prosent, for eksempel, serverens s brukte diskplass i prosent, vi kunne spesifisere en nedre grense på 0 og en øvre grense på 100. Siden vi håndterer påloggingsforsøk, kan vi kun angi nedre grenser Vi sett den øvre grensen til U ukjent. Sette opp RRA. Nå det vi vet, hva som skal lagres, må vi fortelle RRD hvordan man lagrer dataene Som sagt blir data lagret i en syklisk runde robin måte, så vi må definere hvor mye rom Vi ønsker å bruke Vi ønsker å ha 4 forskjellige grafer daglig, ukentlig, månedlig og årlig Dette betyr imidlertid ikke at vi må ha 4 RRA s RRD kan bestemme hvilke RRA s det vil bruke til å grafer data. Hver RRA er definert i følgende format. Cf står for konsolideringsfunksjon og kan enten være AVERAGE, LAST, MIN, MAX Det definerer hvordan datapunktene blir aggregerte AVERAGE vil gjennomsnittlig poengene, LAST lagrer det siste punktet, MIN vil lagre det laveste punktet som er funnet og MAX det høyeste. Den xff skal settes til 0 5, og trinnene bestemmer hvordan mange poeng blir konsolidert, rader er mengden poeng det vil lagre til slutt. Jeg har bestemt meg for å opprette 3 RRA s en butikk de enkle 5-minutters prøvene i en periode på 1 dag 12 poeng pr. time ganger 24 timer 288 poeng, en butikk 1 time prøver 12 poeng for 1 uke 24 7 poeng og en lagrer 1 dag 288 poengprøver for et år 365 poeng. Selvfølgelig kunne vi ha lagret hvert 5-minutters poeng i en periode på 1 år, men vi måtte lagre 12 24 365 105120 poeng Ved å lagre på en konsolidert måte, har vi en effektiv måte å lagre dataene på, mens vi fortsatt opprettholder nok informasjon til å plotte våre grafer. Oppdatere dataene dine. RRD må samle inn data med faste intervaller. Vi bør ha et eget system som en cronjob som samler mengden data og deg oppdaterer RRD tilsvarende Hvis vi ikke oppdaterer i tide som angitt av hjerteslag, får vi ukjente poeng som forårsaker tomme flekker i våre grafer senere. Neste kutt vil simulere innloggingssuksesser og feil som spenner tilbake fra 180 dager siden til nå. Nå har vi har kommet til den kuleste delen av RRD grafen av dataene jeg lager 4 grunnleggende grafer. Hver graf viser de vellykkede forsøkene i grønt. Og jeg har oppgitt de mislykkede forsøkene på mange måter. Det er mange forskjellige måter å grafisere dataene som linjer, forskjellige nyanser , overflater etc og nesten alle aspekter av grafen kan tilpasses. Vårt resultat bør være noe som dette. RRDtool er veldig flott å generere grafer på en enkel måte, men ikke bli lurt av det s åpenbar enkelhet Det er i stand til å skape veldig komplekse grafer hvis nødvendig Vi har bare skrapt grunnleggende som er mer enn nok til å komme i gang i dine egne grafer. Dessverre er PHP-bindingen av RRDTool ikke veldig godt vedlikeholdt, men siden de bare er et skall rundt kommandolinjeversjonen fungerer de riktig nok til å lage kule grafer. Mer informasjon om RRD og RRDTool finnes på hoved RRD-nettsiden. Om forfatteren Joshua Thijssen er en senior programvareingeniør hos Enrise og eier av det privateide selskapet NoxLogic Hans programmeringsferdigheter inkluderer, men er ikke begrenset til, montering, C, C, Java, Perl, Python og PHP, og har erfaring med å administrere et bredt spekter av operativsystemer. En av hans spesialiteter er finjustering av MySQL-databaser og spørringer. Hans personlige blogg kan være funnet på. Relaterte innlegg.

No comments:

Post a Comment