82 Error(
"Compare",
"input is not a TPerfEvent object");
102 where =
"TPerfEvent: StandAlone ";
104 where =
"TPerfEvent: Master ";
142 Int_t nwrks = dyns->GetVal();
160 PDB(kMonitoring,1)
Info(
"TPerfStats",
"Statistics for %d slave(s)",
fSlaves);
167 Info(
"TPerfStats",
"master:%d hist:%d,trace:%d,rate:%d,wrktrace:%d",
171 Int_t perpacket = -1;
174 perpacket =
gEnv->GetValue(
"Proof.MonitorPerPacket", 0);
178 Info(
"TPerfStats",
"sending full information after each packet");
184 if (!strncmp(o->
ClassName(),
"TDSet", strlen(
"TDSet")))
break;
194 while (dss.
Tokenize(ds, fd,
"[,| ]")) {
195 if ((nq = ds.Index(
"?")) !=
kNPOS) ds.Remove(nq);
196 ds.ReplaceAll(grus,
"");
206 Info(
"TPerfStats",
"dataset string length truncated to %d chars",
fDataSetLen);
215 fTrace =
new TTree(
"PROOF_PerfStats",
"PROOF Statistics");
220 Info(
"TPerfStats",
"tree '%s' added to the output list",
fTrace->GetName());
227 Int_t ntime_bins = 1000;
230 fPacketsHist =
new TH1D(
"PROOF_PacketsHist",
"Packets processed per Worker",
237 Info(
"TPerfStats",
"histo '%s' added to the output list",
fPacketsHist->GetName());
240 fProcPcktHist =
new TH1I(
"PROOF_ProcPcktHist",
"Packets being processed per Worker",
247 Info(
"TPerfStats",
"histo '%s' added to the output list",
fProcPcktHist->GetName());
250 fEventsHist =
new TH1D(
"PROOF_EventsHist",
"Events processed per Worker",
257 Info(
"TPerfStats",
"histo '%s' added to the output list",
fEventsHist->GetName());
260 fNodeHist =
new TH1D(
"PROOF_NodeHist",
"Slaves per Fileserving Node",
267 Info(
"TPerfStats",
"histo '%s' added to the output list",
fNodeHist->GetName());
270 fLatencyHist =
new TH2D(
"PROOF_LatencyHist",
"GetPacket Latency per Worker",
272 ntime_bins, min_time, time_per_bin);
278 Info(
"TPerfStats",
"histo '%s' added to the output list",
fLatencyHist->GetName());
281 fProcTimeHist =
new TH2D(
"PROOF_ProcTimeHist",
"Packet Processing Time per Worker",
283 ntime_bins, min_time, time_per_bin);
289 Info(
"TPerfStats",
"histo '%s' added to the output list",
fProcTimeHist->GetName());
294 ntime_bins, min_time, time_per_bin);
300 Info(
"TPerfStats",
"histo '%s' added to the output list",
fCpuTimeHist->GetName());
302 nextslaveinfo.Reset();
306 fPacketsHist->GetXaxis()->SetBinLabel(slavebin, si->GetOrdinal());
307 fProcPcktHist->GetXaxis()->SetBinLabel(slavebin, si->GetOrdinal());
308 fEventsHist->GetXaxis()->SetBinLabel(slavebin, si->GetOrdinal());
309 fNodeHist->GetXaxis()->SetBinLabel(slavebin, si->GetOrdinal());
310 fLatencyHist->GetXaxis()->SetBinLabel(slavebin, si->GetOrdinal());
311 fProcTimeHist->GetXaxis()->SetBinLabel(slavebin, si->GetOrdinal());
312 fCpuTimeHist->GetXaxis()->SetBinLabel(slavebin, si->GetOrdinal());
318 if (deletel)
delete(
l);
329 TString mons =
gEnv->GetValue(
"ProofServ.Monitoring",
""), mon;
332 while (mons.
Tokenize(mon, fmon,
"[,|\\\\]")) {
339 while (mon.Tokenize(tok, from,
" ")) {
350 if ((
h =
gROOT->GetPluginManager()->FindHandler(
"TProofMonSender",
a[0]))) {
351 if (
h->LoadPlugin() != -1) {
354 a[4].Data(),
a[5].Data(),
a[6].Data(),
355 a[7].Data(),
a[8].Data(),
a[9].Data());
365 Info(
"TPerfStats",
"created monitoring object: %s - # of active monitors: %d",
437 Info(
"PacketEvent",
"%s: fDoHist: %d, fPacketsHist: %p, eventsprocessed: %lld",
459 Error(
"PacketEvent",
"some required object are undefined (%p %p %p %p)",
512 if (
m->SendSummary(&values, identifier) != 0)
513 Error(
"PacketEvent",
"sending of summary info failed (%s)",
m->GetName());
515 Warning(
"PacketEvent",
"undefined entry found in monitors array for id: %d",
i);
544 fNodeHist->Fill(nodename, isStart ? 1 : -1);
560 pe.
fIsOk = (file != 0);
657 Error(
"WriteQueryLog",
"some required object are undefined (%p %p %p %p)",
709 if (
m->SendSummary(&values, identifier) != 0)
710 Error(
"WriteQueryLog",
"sending of summary info failed (%s)",
m->GetName());
712 if (
m->SendDataSetInfo(
fDSet, mfls,
fTzero.AsString(
"s"), identifier) != 0)
713 Error(
"WriteQueryLog",
"sending of dataset info failed (%s)",
m->GetName());
715 if (
m->SendFileInfo(
fDSet, mfls,
fTzero.AsString(
"s"), identifier) != 0)
716 Error(
"WriteQueryLog",
"sending of files info failed (%s)",
m->GetName());
718 Warning(
"WriteQueryLog",
"undefined entry found in monitors array for id: %d",
i);
730 const char *tags[ntags] = {
"StatsHist",
"StatsTrace",
"SlaveStatsTrace"};
734 varname.
Form(
"Proof.%s", tags[
i]);
735 parname.
Form(
"PROOF_%s", tags[
i]);
736 if (!
input->FindObject(parname))
781 if (!
gSystem->GetProcInfo(&pi)){
if(isa< VarDecl >(D)||isa< FieldDecl >(D)||isa< EnumConstantDecl >(D))
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
R__EXTERN TProofServ * gProofServ
R__EXTERN TProof * gProof
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
R__EXTERN TSystem * gSystem
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
This class implements a data set to be used for PROOF processing.
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
1-D histogram with a double per channel (see TH1 documentation)
1-D histogram with an int per channel (see TH1 documentation)
2-D histogram with a double per channel (see TH1 documentation)
void Add(TObject *obj) override
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
TObject()
TObject constructor.
@ kInvalidObject
if object ctor succeeded but object should not be used
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Named parameter, streamable and storable.
Int_t Compare(const TObject *obj) const override
Compare method.
void Print(Option_t *option="") const override
Dump content of this instance.
TVirtualPerfStats::EEventType fType
TPerfEvent(TTimeStamp *offset=0)
Constructor.
Long64_t fEventsProcessed
Provides the interface for the PROOF internal performance measurement and event tracing.
void SetBytesRead(Long64_t num) override
Set number of bytes read.
TString fDataSet
Monitoring engines.
static Long_t fgResMemMax
Max virtual memory used by this process.
Int_t fDataSetLen
Dataset string.
TPerfEvent * fPerfEvent
start time of this run
Long64_t fBytesRead
histogram of cpu time spent processing packets
friend class TProofMonSender
~TPerfStats() override
Destructor.
TPerfStats(TList *input, TList *output)
Max resident memory used by this process.
static Long_t fgVirtMemMax
Saved pointer to the output list.
TH1D * fPacketsHist
TPerfEvent used to fill tree.
TList * fOutput
Saved pointer to the TDSet object.
Long64_t fNumEvents
total number of events processed
Int_t fDataSetSize
Maximum size of the dataset string fDataSet.
TH2D * fCpuTimeHist
histogram of real time spent processing packets
static void SetMemValues()
Record memory usage.
void RateEvent(Double_t proctime, Double_t deltatime, Long64_t eventsprocessed, Long64_t bytesRead) override
Rate event.
TH1D * fNodeHist
histogram of events processed per slave
void WriteQueryLog()
Send to the connected monitoring servers information related to this query.
static void Setup(TList *input)
Setup the PROOF input list with requested statistics and tracing options.
Bool_t fDoTraceRate
Trace details in master.
void SimpleEvent(EEventType type) override
Simple event.
TH2D * fProcTimeHist
histogram of latency due to packet requests
TH2D * fLatencyHist
histogram of slaves per file serving node
TH1I * fProcPcktHist
histogram of packets processed per slave
void FileEvent(const char *slave, const char *slavename, const char *nodename, const char *filename, Bool_t isStart) override
File event.
static void Stop()
Terminate the PROOF statistics run.
void PacketEvent(const char *slave, const char *slavename, const char *filename, Long64_t eventsprocessed, Double_t latency, Double_t proctime, Double_t cputime, Long64_t bytesRead) override
Packet event.
Bool_t fDoTrace
Fill histos.
Double_t fTotCpuTime
track bytes read of main file
TH1D * fEventsHist
histogram of packets being processed per slave
Bool_t fDoHist
number of active slaves
void UnzipEvent(TObject *tree, Long64_t pos, Double_t start, Int_t complen, Int_t objlen) override
Record TTree file unzip event.
static void GetMemValues(Long_t &vmax, Long_t &rmax)
Get memory usage.
Long64_t fTotEvents
total bytes read on all slaves
TTimeStamp fTzero
TTree with trace events.
Long64_t GetBytesRead() const override
Get number of bytes read.
static void Start(TList *input, TList *output)
Initialize PROOF statistics run.
void FileReadEvent(TFile *file, Int_t len, Double_t start) override
Read file event.
Bool_t fDoSlaveTrace
Trace processing rate in master.
Bool_t fMonitorPerPacket
Save stats on SQL server for quota management.
Long64_t fTotBytesRead
total cpu time of all slaves
TObjArray fMonSenders
Whether to send the full entry per each packet.
void FileOpenEvent(TFile *file, const char *filename, Double_t start) override
Open file event.
Int_t fSlaves
total number of events to be processed
Bool_t fDoQuota
Full tracing in workers.
Int_t SetSendOptions(const char *)
Parse send options from string 'sendopts'.
This class controls a Parallel ROOT Facility, PROOF, cluster.
TObject * GetParameter(const char *par) const
Get specified parameter.
TList * GetListOfSlaveInfos()
Returns list of TSlaveInfo's. In case of error return 0.
A container class for query results.
void SetStatus(ESlaveStatus stat)
This class holds the status of an ongoing operation and collects error messages.
Int_t GetExitStatus() const
Long_t GetResMemMax(Bool_t master=kFALSE) const
Long_t GetVirtMemMax(Bool_t master=kFALSE) const
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
The TTimeStamp encapsulates seconds and ns since EPOCH.
const char * AsString(const Option_t *option="") const
Return the date & time as a string.
A TTree represents a columnar dataset.
Provides the interface for the PROOF internal performance measurement and event tracing.
static const char * EventType(EEventType type)
Return the name of the event type.