Aceasta este comanda pmlogrewrite care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
pmlogrewrite - rescrie arhivele Performance Co-Pilot
REZUMAT
$PCP_BINADM_DIR/pmlogrewrite [-Cdiqsvw ] [-c config] inlog [outlog]
DESCRIERE
pmlogrewrite citește un jurnal de arhivă Performance Co-Pilot (PCP) identificat de inlog și
creează un log în arhiva PCP outlog. În condiții normale de utilizare, -c opțiunea va fi folosită pentru
nominalizați un fișier de configurare sau fișiere care conțin specificații (vezi RESCRIERE
REGULI SINTAXĂ secțiunea de mai jos) care descriu cum provin datele și metadatele inlog ar trebui să fie
transformat pentru a produce outlog.
Utilizările tipice pentru pmlogrewrite ar fi să găzduiască evoluția Performanței
Metric Domain Agents (PMDA) unde numele, metadatele și semantica valorilor și a acestora
domeniile de instanță asociate se pot schimba în timp, de exemplu promovând tipul unei valori de la
un număr întreg de 32 de biți la un număr întreg de 64 de biți sau redenumirea unui grup de valori. Consultați EXEMPLE
secțiune pentru unele cazuri de utilizare suplimentare.
pmlogrewrite este cel mai util în cazul în care PMDA se modifică sau erori în mediul de producție,
rezultă arhive cu care nu pot fi combinate pmlogextract(1). Prin preprocesare a
arhive cu pmlogrewrite arhivele rezultate pot fi îmbinate cu
pmlogextract(1).
Intrarea inlog trebuie să fie un jurnal de arhivă PCP creat de pmlogger(1), sau eventual unul dintre
instrumente care citesc și creează arhive PCP, de ex pmlogextract(1) și pmlogreduce(1).
Daca nu -c este specificată opțiunea, apoi pur și simplu se creează comportamentul implicit outlog ca o copie a
inlog. Acest lucru este puțin mai complicat decât pisică(1), întrucât fiecare arhivă PCP este alcătuită din
mai multe fișiere fizice.
In timp ce pmlogrewrite poate fi folosit pentru a repara unele probleme de consistență a datelor din arhivele PCP,
există, de asemenea, o clasă de sarcini de reparații care nu pot fi gestionate de pmlogrewrite și
pmloglabel(1) poate fi un instrument util în aceste cazuri.
COMMAND LINE OPŢIUNI
Opțiunile liniei de comandă pentru pmlogrewrite sunt după cum urmează:
-C Analizați regulile de rescriere și renunțați. outlog nu este creat. Cand -C este specificat,
se stabileste si asta -v și -w astfel încât toate avertismentele și mesajele detaliate să fie afișate ca
config este analizat.
-c config
If config este un fișier sau o legătură simbolică, citiți și analizați regulile de rescriere de acolo.
If config este un director, apoi toate fișierele sau legăturile simbolice din acel director
(excluzând cele care încep cu un punct ``.'') vor fi folosite pentru a furniza
reguli de rescriere. Multiplu -c sunt permise optiunile.
-d Modul disperat. În mod normal, dacă apare o eroare fatală, orice urmă de parțial
arhiva PCP scrisă outlog este eliminat. Cu -d opțiunea, cea parțial creată
outlog Jurnalul de arhivă nu este eliminat.
-i Mai degrabă decât a crea outlog, inlog este rescris în loc atunci când -i opțiunea este
folosit. O arhivă nouă este creată folosind nume de fișiere temporare și apoi redenumită în
inlog în așa fel încât dacă se întâlnesc erori (nu avertismente), inlog
rămâne nealterată.
-q Modul rapid, în care, dacă nu există acțiuni de rescriere de efectuat (niciuna dintre cele
date globale, domenii ale instanțelor sau valori de la inlog va fi schimbat), atunci
pmlogrewrite va ieși (cu starea 0, deci succes) imediat după analizarea
fișier(e) de configurare și outlog nu este creat.
-s Când „unitățile” unei metrici sunt modificate, dacă dimensiunea în termeni de spațiu,
timpul și numărul sunt nemodificate, apoi factorul de scalare este modificat, de exemplu BYTE la
KBYTE, sau MSEC-1 la USEC-1, sau compusul MBYTE.SEC-1 la KBYTE.USEC-1. The
motivația poate fi (a) faptul că metadatele originale au fost greșite, dar valorile în inlog
sunt corecte sau (b) metadatele se modifică, astfel încât și valorile trebuie modificate.
Valoarea implicită pmlogrewrite comportamentul se potrivește cu cazul (a). Dacă se aplică cazul (b), atunci utilizați
il -s opțiunea și valorile tuturor valorilor cu un factor de scară se modifică în fiecare
rezultatul va fi redimensionat. Pentru un control mai fin asupra redimensionării valorii, consultați
RESCALARE opțiunea pentru UNITĂȚI clauza regulii de rescriere a metricii descrisă mai jos.
-v Creșteți gradul de nivel al ieșirii de diagnosticare.
-w Emite avertismente. În mod normal pmlogrewrite rămâne tăcut pentru orice avertisment care nu este
fatal și este de așteptat ca pentru o anumită arhivă, unele (sau într-adevăr, toate) din
este posibil ca specificațiile de rescriere să nu se aplice. De exemplu, modificările aduse unui PMDA pot fi
capturate într-un set de reguli de rescriere, dar este posibil ca o singură arhivă să nu conțină toate
valorile modificate și nici toate domeniile și/sau instanțele modificate.
Pentru că aceste cazuri sunt așteptate, ele nu previn pmlogrewrite executând, și
reguli care nu se aplică inlog sunt ignorate în mod implicit. La fel, unii
regulile de rescriere nu pot implica nicio modificare deoarece metadatele sunt introduse inlog se potriveste deja
intenția regulii de rescriere de a corecta datele dintr-o versiune anterioară a unui PMDA.
-w steag forțează să fie emise avertismente pentru toate aceste cazuri.
Argumentul outlog este necesar în toate cazurile, cu excepția cazului în care -i este specificat.
RESCRIERE REGULI SINTAXĂ
Un fișier de configurare conține zero sau mai multe reguli de rescriere, așa cum este definit mai jos.
Cuvintele cheie și caracterele speciale de punctuație sunt afișate mai jos în bolditalic font și sunt
insensibil la majuscule, deci METRIC, metric și metric toate sunt echivalente în regulile de rescriere.
Caracterul ``#'' introduce un comentariu, iar restul liniei este ignorat.
În caz contrar, intrarea este în format relativ liber, cu spațiu alb opțional (spații, file sau
linii noi) între elementele lexicale din reguli.
A global regula de rescriere are forma:
GLOBAL { globalspec ... }
Unde globalspec este zero sau mai multe dintre următoarele clauze:
NOMUL DE GĂȘTARE -> nume de gazdă
Modifică înregistrările etichetei în outlog Arhiva PCP, astfel încât valorile să fie
par să fi fost colectat de la gazdă nume de gazdă.
TIMP -> deltă
Ambele valori ale metricii și metadatele domeniului instanței într-o arhivă PCP sunt transportate
marcajele de timp. Această clauză obligă toate marcajele de timp să fie ajustate de deltă, În cazul în care
deltă este un semn opțional ``+'' (implicit) sau ``-'', un număr opțional de
ore urmate de două puncte ``:'', un număr opțional de minute urmate de două puncte
``:'', un număr de secunde, o fracțiune opțională de secunde după o perioadă
``.''. Cel mai simplu exemplu ar fi „30” pentru a mări marcajele de timp cu 30
secunde. Un exemplu mai complex ar fi ``-23:59:59.999'' pentru a muta marcajele de timp
înapoi cu o milisecundă mai puțin de o zi.
TZ -> "Zona de fus orar"
Modifică înregistrările etichetei în outlog Arhiva PCP, astfel încât valorile să fie
par să fi fost colectat de la o gazdă cu un fus orar local de Zona de fus orar.
Zona de fus orar trebuie să fie cuprinse între ghilimele și să respecte fusul orar valid
reguli de sintaxă pentru platforma locală.
An indom regula de rescriere modifică un domeniu de instanță și are forma:
INDOM domeniu.de serie { indomspec ... }
Unde domeniu și de serie identificați unul sau mai multe domenii de instanță existente din inlog -
tipic domeniu ar fi un număr întreg în intervalul de la 1 la 510 și de serie ar fi un număr întreg
în intervalul de la 0 la 4194304.
Ca caz special de serie ar putea fi un asterisc ``*'', ceea ce înseamnă că regula se aplică tuturor
domeniu de instanță cu un număr de domeniu de domeniu.
Dacă un domeniu de instanță desemnat nu se află în inlog regula nu are efect.
indomspec este zero sau mai multe dintre următoarele clauze:
INAME "vechi nume" -> "nume nou"
Instanța identificată prin numele instanței externe vechi nume este redenumit în
nume nou. Amândoi vechi nume și nume nou trebuie să fie cuprinse între ghilimele.
Ca caz special, noul nume poate fi cuvântul cheie DELETE (fără ghilimele) și
apoi instanța vechi nume va fi șters din outlog care îl îndepărtează din
metadatele domeniului instanței și elimină toate valorile acestei instanțe pentru toate
metrici asociate.
Dacă numele instanțelor conțin spații încorporate, atunci trebuie să aveți grijă deosebită
luate în ceea ce privește regula de numire a instanței PCP care tratează non-spațiul principal
parte a numelui instanței ca porțiune unică a numelui în sensul
potrivirea și asigurarea unicității în cadrul unui domeniu de instanță, consultați
pmdaInstance(3) pentru o discuție a acestei probleme.
Ca o ilustrare, luați în considerare domeniul de instanță ipotetic pentru o metrică care
conține 2 cazuri cu următoarele nume:
roșu
eek urk
Apoi unele posibile INAME clauzele ar putea fi:
„eek” -> „galben ca o floare”
Acceptabil, vechi nume „eek” se potrivește cu instanța „eek urk”.
„roșu” -> „eek”
Eroare, nume nou „eek” se potrivește cu instanța existentă „eek urk”.
„eek urk” -> „roșu de altă nuanță”
Eroare, nume nou „roșu de altă nuanță” se potrivește cu instanța „roșu” existentă.
INDOM -> domeniu nou.serial de știri
Modifică metadatele pentru domeniul instanței și fiecare valoare asociată cu
domeniul instanței. Ca caz special, serial de știri ar putea fi un asterisc ``*'' care
înseamnă folosire de serie de la indom regulă de rescriere, deși aceasta este cea mai utilă când
de serie este, de asemenea, un asterisc. Deci de exemplu:
indom 29.* { indom -> 109.* }
va muta toate domeniile instanțelor din domeniul 29 în domeniul 109.
INDOM -> DUPLICAT domeniu nou.serial de știri
Un caz special al precedentului INDOM clauză în care domeniul instanței este a
copie duplicat a domeniu.de serie domeniul instanței de la indom regula de rescriere,
și apoi orice reguli de mapare sunt aplicate celor copiate domeniu nou.serial de știri instanță
domeniu. Acest lucru este util atunci când un PMDA este divizat și același domeniu de instanță trebuie să o facă
fi replicat pentru domeniu domeniu si domeniul domeniu nou. Deci, de exemplu, dacă
metrics foo.one și foo.doi sunt ambele definite pe domeniul de instanță 12.34 și
foo.doi este mutat într-un alt PMDA folosind domeniul 27, apoi următoarea rescrie
pot fi folosite reguli:
indom 12.34 { indom -> duplicat 27.34 }
metric foo.two { indom -> 27.34 pmid -> 27.*.* }
INST oldid -> nouid
Instanța identificată prin identificatorul de instanță intern oldid este renumerotat la
nouid. Amândoi oldid și nouid sunt numere întregi în intervalul de la 0 la 231-1.
Ca caz special, nouid poate fi cuvântul cheie DELETE și apoi instanța oldid
va fi șters din outlog care îl elimină din metadatele domeniului instanței
și elimină toate valorile acestei instanțe pentru toate valorile asociate.
A metric regula de rescriere are forma:
METRIC metricid { metricspec ... }
Unde metricid identifică una sau mai multe valori existente din inlog folosind fie o metrică
numele sau codificarea internă pentru PMID-ul unei valori ca domeniu.grup.articol. În cea din urmă
caz, de obicei domeniu ar fi un număr întreg în intervalul de la 1 la 510, grup ar fi un
întreg în intervalul de la 0 la 4095 și articol ar fi un număr întreg în intervalul de la 0 la 1023.
Ca cazuri speciale articol ar putea fi un asterisc ``*'', ceea ce înseamnă că regula se aplică tuturor
metrica cu un număr de domeniu de domeniu și un număr de grup de grup, grup Ar putea fi
un asterisc, ceea ce înseamnă că regula se aplică fiecărei valori cu un număr de domeniu de domeniu
și un număr de articol de articol, sau amândouă grup și articol pot fi asteriscuri, iar regula se aplică
la fiecare valoare cu un număr de domeniu de domeniu.
Dacă o valoare desemnată nu este în inlog regula nu are efect.
metricspec este zero sau mai multe dintre următoarele clauze:
DELETE
Valoarea este complet eliminată din outlog, atât metadatele, cât și toate valorile din
rezultatele sunt eliminate.
INDOM -> domeniu nou.serial de știri [ alege ]
Modifică metadatele pentru a schimba domeniul instanței pentru această valoare. Noul
domeniul instanței trebuie să existe în outlog.
Opțional alege clauza poate fi folosită pentru a selecta o valoare de intrare sau pentru a calcula o
valoare agregată din instanțele dintr-un rezultat de intrare sau atribuiți un rezultat intern
identificatorul de instanță la o singură valoare de ieșire. Daca nu alege este specificată clauza, the
comportamentul implicit este de a copia toate valorile de intrare de la fiecare rezultat de intrare într-o ieșire
rezultat, totuși, dacă domeniul instanței de intrare este singular (indom PM_INDOM_NULL)
atunci unei valori de ieșire trebuie să i se atribuie un identificator intern de instanță, care
este 0 în mod implicit, cu excepția cazului în care este suprascris de a INST or INAME clauză așa cum este definită mai jos.
Alegerile pentru alege sunt după cum urmează:
REZULTATE PRIMUL
alegeți valoarea primei instanțe din fiecare rezultat de intrare
REZULTATE ULTIMUL alegeți valoarea ultimei instanțe din fiecare rezultat de intrare
REZULTATE INST instid
alegeți valoarea instanței cu identificatorul de instanță intern
instid din fiecare rezultat; succesiunea regulilor de rescriere asigură că
REZULTATE procesarea are loc înainte de renumerotarea identificatorului de instanță de la
orice asociat indom regula, deci instid ar trebui să fie una dintre cele interne
identificatorii de instanță care apar în inlog
REZULTATE INAME "nume"
alege valoarea instanței cu nume pentru instanța sa externă
nume din fiecare rezultat; succesiunea regulilor de rescriere asigură că
REZULTATE procesarea are loc înainte de redenumirea instanței de la orice asociat
indom regula, deci nume ar trebui să fie unul dintre numele instanțelor externe care
apare în inlog
REZULTATE MIN alegeți cea mai mică valoare din fiecare rezultat (tipul de metrică trebuie să fie numeric
iar instanța de ieșire va fi 0 pentru un domeniu de instanță non-singular)
REZULTATE MAX alegeți cea mai mare valoare din fiecare rezultat (tipul de metrică trebuie să fie numeric
iar instanța de ieșire va fi 0 pentru un domeniu de instanță non-singular)
REZULTATE USM alegeți suma tuturor valorilor din fiecare rezultat (tipul de metrică trebuie să fie
instanța numerică și de ieșire va fi 0 pentru o instanță non-singulară
domeniu)
REZULTATE AVG alegeți media tuturor valorilor din fiecare rezultat (tipul de metrică trebuie să fie
instanța numerică și de ieșire va fi 0 pentru o instanță non-singulară
domeniu)
Dacă domeniul instanței de intrare este singular (indom PM_INDOM_NULL) apoi independent de
Orice alege specificații, există cel mult o valoare în fiecare rezultat de intrare și așadar
PRIMUL, ULTIMUL, MIN, MAX, USM și AVG sunt toate echivalente și instanța de ieșire
identificatorul va fi 0.
În general, este o eroare să specificați o acțiune de rescriere pentru aceleași metadate sau
valorile rezultatelor de mai multe ori, de exemplu, mai multe INDOM clauza pentru aceeasi
domeniul instanței. Singura excepție este posibila interacțiune între INDOM
clauzele din indom și metric reguli. De exemplu metrica mostre.bină is
definit pe domeniul instanței de 29.2 in inlog iar următoarele sunt acceptabile
(deși redundant):
indom 29.* { indom -> 109.* }
metric sample.bin { indom -> 109.2 }
Cu toate acestea, următoarea este o eroare, deoarece domeniul instanței pentru mostre.bină are
două definiții contradictorii:
indom 29.* { indom -> 109.* }
metric sample.bin { indom -> 123.2 }
INDOM -> NULL[ alege ]
Valoarea (care trebuie să fi fost definită anterior pe un domeniu de instanță) este
fiind modificată pentru a fi o metrică singulară. Aceasta implică o modificare a metadatelor și
restrângerea tuturor rezultatelor pentru această valoare, astfel încât mai multe valori să devină o singură valoare.
Opțional alege o parte a clauzei definește modul în care o singură valoare pentru fiecare rezultat
ar trebui calculat și urmează aceleași reguli ca cele descrise pentru non-NULL
INDOM cazul de mai sus.
În lipsa alege, implicit este REZULTATE PRIMUL.
NUME -> nume nou
Redenumește valoarea din metadatele arhivei PCP care acceptă Performanța
Spațiu de nume pentru metrici (PMNS). nume nou nu trebuie să se potrivească cu niciun nume existent în
PMNS al arhivei și trebuie să respecte regulile sintactice pentru numele de metrici valide ca
conturat în pmns(5).
PMID -> domeniu nou.newcluster.articol nou
Modifică metadatele și rezultatele pentru a renumerota PMID-ul valorii. La fel de special
cazuri, newcluster ar putea fi un asterisc ``*'' care înseamnă utilizare grup de la
metric regulă de rescriere și/sau articol ar putea fi un asterisc care înseamnă utilizare articol din
il metric regula de rescriere. Acest lucru este cel mai util atunci când grup şi / sau articol De asemenea, este
un asterisc. Deci de exemplu:
metric 30.*.* { pmid -> 123.*.* }
va muta toate valorile din domeniul 30 în domeniul 123.
SEM -> știri
Schimbați semantica metricii. știri ar trebui să fie partea XXX a numelui
unul dintre PM_SEM_XXX macrocomenzi definite în sau pmLookupDesc(3), de ex
COUNTER pentru PM_TYPE_COUNTER.
Nu se realizează nicio rescriere a valorii datelor ca urmare a SEM clauza, deci
utilitatea este limitată la cazurile în care a fost o versiune a PMDA asociată
exportarea semanticii incorecte pentru metrica. pmlogreduce(1) poate prevedea o
alternativă în cazurile în care se dorește recalcularea valorilor rezultatelor.
TIP -> tip nou
Schimbați tipul valorii care modifică metadatele și poate modifica
codificarea valorilor în rezultate. tip nou ar trebui să fie partea XXX a numelui unuia
a PM_TYPE_XXX macrocomenzi definite în sau pmLookupDesc(3), de ex PLUTI
pentru PM_TYPE_FLOAT.
Conversia tipului este acceptată numai pentru cazurile în care este tipul de valori vechi și nou
numeric, deci PM_TYPE_STRING, PM_TYPE_AGGREGATE și PM_TYPE_EVENT nu sunt permise.
Chiar și pentru cazurile numerice, unele conversii pot produce erori de rulare, de ex
depășirea întregului sau încercarea de a rescrie o valoare negativă într-un tip nesemnat.
UNITĂȚI -> unitati noi [ RESCALARE ]
unitati noi este de șase valori separate prin virgule. Primele 3 valori descriu
dimensiunea metricii de-a lungul dimensiunilor spațiului, timpului și numărului; acestea sunt
valori întregi, de obicei 0, 1 sau -1. Restul de 3 valori descriu scara lui
valorile metricii în dimensiunile spațiu, timp și număr. Scara spațială
valorile ar trebui să fie 0 (dacă dimensiunea spațiului este 0), altfel partea XXX a numelui
unul dintre PM_SPACE_XXX macro-uri, de ex KBYTE pentru PM_TYPE_KBYTE. Valori de scară de timp
ar trebui să fie 0 (dacă dimensiunea de timp este 0), altfel partea XXX a numelui unuia dintre
il PM_TIME_XXX macro-uri, de ex SEC pentru PM_TIME_SEC. Valorile scalei de numărare ar trebui să fie 0
(dacă dimensiunea timp este 0), altfel ONE pentru PM_COUNT_ONE.
PM_SPACE_XXX, PM_TIME_XXX și PM_COUNT_XXX macrocomenzile sunt definite în
or pmLookupDesc(3).
Când scara este schimbată (dar dimensiunea este nemodificată), cuvântul cheie opțional
RESCALARE poate fi folosit pentru a alege redimensionarea valorii conform -s opțiunea liniei de comandă,
dar aplicat doar acestei valori.
Când schimbați numărul de domeniu pentru un domeniu de valoare sau de instanță, noul număr de domeniu
se va potrivi de obicei cu un număr de domeniu al PMDA existent. Dacă nu este cazul, atunci
noul număr de domeniu nu trebuie ales aleatoriu; consulta $PCP_VAR_DIR/pmns/stdpmid
pentru numerele de domeniu care sunt deja atribuite PMDA-urilor.
EXEMPLE
Pentru a promova valorile valorilor IOPS pe disc la 64 de biți pentru a permite agregarea pe un
perioadă lungă de timp pentru planificarea capacității sau pentru că PMDA s-a schimbat pentru a exporta pe 64 de biți
contoare și dorim să convertim arhivele vechi, astfel încât acestea să poată fi procesate alături de noi
arhive.
metric disk.dev.read { tip -> U64 }
metric disk.dev.write { tip -> U64 }
metric disk.dev.total { tip -> U64 }
Instanțele asociate cu valoarea medie a încărcării kernel.toate.încărcare ar putea fi redenumită și
renumerotate prin regulile de mai jos.
# pentru Linux PMDA, metrica kernel.all.load este definită
# peste domeniul de instanță 60.2
indom 60.2 {
inst 1 -> 60 inname "1 minut" -> "60 secunde"
inst 5 -> 300 inname "5 minut" -> "300 secunde"
inst 15 -> 900 inname "15 minut" -> "900 secunde"
}
Dacă decidem să împărțim valorile ``proc'' din Linux PMDA, acest lucru va implica
modificarea numărului de domeniu pentru PMID-ul acestor valori și instanța asociată
domenii. Regulile de mai jos ar rescrie o arhivă veche pentru a se potrivi cu modificările după PMDA
Despică.
# toate valorile proc Linux sunt în 7 clustere
metric 60.8.* { pmid -> 123.*.* }
metric 60.9.* { pmid -> 123.*.* }
metric 60.13.* { pmid -> 123.*.* }
metric 60.24.* { pmid -> 123.*.* }
metric 60.31.* { pmid -> 123.*.* }
metric 60.32.* { pmid -> 123.*.* }
metric 60.51.* { pmid -> 123.*.* }
# un singur domeniu de instanță pentru valorile proc Linux
indom 60.9 { indom -> 123.0 }
Utilizați pmlogrewrite online folosind serviciile onworks.net