[Orca-checkins] rev 179 - in trunk/orca: . docs
blair at orcaware.com
blair at orcaware.com
Fri Jan 3 15:08:23 PST 2003
Author: blair
Date: 2003-01-03 15:08:10 -0800 (Fri, 03 Jan 2003)
New Revision: 179
Modified:
trunk/orca/HACKING
trunk/orca/INSTALL
trunk/orca/TODO
trunk/orca/configure
trunk/orca/configure.in
trunk/orca/docs/ARCHITECTURE
trunk/orca/docs/REQUIREMENTS
Log:
* HACKING,
* INSTALL,
* TODO,
* configure.in,
* configure,
* docs/ARCHITECTURE,
* docs/REQUIREMENTS:
Replace all tabs with spaces.
Modified: trunk/orca/configure
==============================================================================
--- trunk/orca/configure (original)
+++ trunk/orca/configure 2003-01-03 15:08:21.000000000 -0800
@@ -2937,8 +2937,8 @@
MKDIR="$config_dir/mkinstalldirs"
#--------------------------------------------------------------------
-# Generate the Makefiles and shell scripts with the
-# variable substitutions.
+# Generate the Makefiles and shell scripts with the
+# variable substitutions.
#--------------------------------------------------------------------
if test "$BUILD_ORCALLATOR" = yes; then
ORCALLATOR_OUTPUT="orcallator/orcallator.cfg
Modified: trunk/orca/configure.in
==============================================================================
--- trunk/orca/configure.in (original)
+++ trunk/orca/configure.in 2003-01-03 15:08:22.000000000 -0800
@@ -425,8 +425,8 @@
AC_SUBST(MKDIR)
#--------------------------------------------------------------------
-# Generate the Makefiles and shell scripts with the
-# variable substitutions.
+# Generate the Makefiles and shell scripts with the
+# variable substitutions.
#--------------------------------------------------------------------
if test "$BUILD_ORCALLATOR" = yes; then
ORCALLATOR_OUTPUT="orcallator/orcallator.cfg
@@ -439,25 +439,25 @@
fi
AC_OUTPUT(Makefile
- config/PerlHead1
- config/PerlHead2
- lib/Makefile
- packages/Makefile
- src/Makefile
- src/orca.pl
- $ORCALLATOR_OUTPUT
- docs/Makefile
- contrib/Makefile
- contrib/rotate_orca_graphs/Makefile
- contrib/rotate_orca_graphs/rotate_orca_graphs.sh
- contrib/orca_services/Makefile
- contrib/orca_services/orca_services.cfg
- contrib/orca_services/orca_services.pl
- contrib/orca_services/orca_services_running.pl
- contrib/orca_services/restart_orca_services.sh
- contrib/orca_services/start_orca_services.sh
- contrib/orca_services/stop_orca_services.sh
- contrib/orca_services/S99orca_services.sh)
+ config/PerlHead1
+ config/PerlHead2
+ lib/Makefile
+ packages/Makefile
+ src/Makefile
+ src/orca.pl
+ $ORCALLATOR_OUTPUT
+ docs/Makefile
+ contrib/Makefile
+ contrib/rotate_orca_graphs/Makefile
+ contrib/rotate_orca_graphs/rotate_orca_graphs.sh
+ contrib/orca_services/Makefile
+ contrib/orca_services/orca_services.cfg
+ contrib/orca_services/orca_services.pl
+ contrib/orca_services/orca_services_running.pl
+ contrib/orca_services/restart_orca_services.sh
+ contrib/orca_services/start_orca_services.sh
+ contrib/orca_services/stop_orca_services.sh
+ contrib/orca_services/S99orca_services.sh)
echo
echo "----------------------------------------------------------------"
Modified: trunk/orca/docs/ARCHITECTURE
==============================================================================
--- trunk/orca/docs/ARCHITECTURE (original)
+++ trunk/orca/docs/ARCHITECTURE 2003-01-03 15:08:22.000000000 -0800
@@ -7,116 +7,116 @@
Orca makes use of several internal classes (objects). They are:
- Orca::OpenFileHash
- Orca::HTMLFile
- Orca::DataFile
- Orca::SourceDataFile is a subclass of Orca::DataFile
- Orca::RRDFile is a subclass of Orca::DataFile
- Orca::GIFFile
+ Orca::OpenFileHash
+ Orca::HTMLFile
+ Orca::DataFile
+ Orca::SourceDataFile is a subclass of Orca::DataFile
+ Orca::RRDFile is a subclass of Orca::DataFile
+ Orca::GIFFile
Orca::OpenFileHash
- This class provides a cache of open file descriptors to the
- user of the class. Upon creation, Orca::OpenFileHash is
- told how many open file descriptors to cache. When a file
- descriptor is needed for a file, the filename is passed to
- a method and if the descriptor is already open, then it
- is given back to the caller, otherwise the file is opened
- and the newly opened descritor is passed back. If there are
- already a maximum number of file descriptors open, then the
- class closes the least recently used one.
-
- This class is used by the Orca::SourceDataFile to keep
- files open as Orca waits for file updates.
-
- constructor new
- method open
- method add
- method close
- method change_weight
- method list
- method select
- method get_fd
- method sysread_readline
- method is_open
- hidden method _close_extra
+ This class provides a cache of open file descriptors to the
+ user of the class. Upon creation, Orca::OpenFileHash is
+ told how many open file descriptors to cache. When a file
+ descriptor is needed for a file, the filename is passed to
+ a method and if the descriptor is already open, then it
+ is given back to the caller, otherwise the file is opened
+ and the newly opened descritor is passed back. If there are
+ already a maximum number of file descriptors open, then the
+ class closes the least recently used one.
+
+ This class is used by the Orca::SourceDataFile to keep
+ files open as Orca waits for file updates.
+
+ constructor new
+ method open
+ method add
+ method close
+ method change_weight
+ method list
+ method select
+ method get_fd
+ method sysread_readline
+ method is_open
+ hidden method _close_extra
Orca::HTMLFile
- This class is basically a object file descriptor that can be
- printed to. This class does not provide the same level of
- abstraction that IO::File does. It only supports the print
- method.
-
- What this class does is upon creation of an HTML file prints a
- standard amount of HTNL to the beginning of the file. This
- includes the standard <html> and other tags. Then, when the
- object is destroyed, the DESTORY method writes some trailing
- HTML to the file.
-
- constructor new
- method print
- hidden method DESTROY
+ This class is basically a object file descriptor that can be
+ printed to. This class does not provide the same level of
+ abstraction that IO::File does. It only supports the print
+ method.
+
+ What this class does is upon creation of an HTML file prints a
+ standard amount of HTNL to the beginning of the file. This
+ includes the standard <html> and other tags. Then, when the
+ object is destroyed, the DESTORY method writes some trailing
+ HTML to the file.
+
+ constructor new
+ method print
+ hidden method DESTROY
Orca::DataFile
- Orca::DataFile is a class meant to be subclassed by other
- classes. What is does is cache file information, such as the
- inode number, the device number of the mount point, the
- files modification time (mtime). The class can be instructed
- to update the cache upon demand and to return the time when
- the file was last stated.
-
- The file information is cached to save file access and system
- call overhead that can be prevented.
-
- constructor new
- method filename
- method file_dev
- method file_ino
- method file_mtime
- method last_stat_time
- method update_stat
- method status
+ Orca::DataFile is a class meant to be subclassed by other
+ classes. What is does is cache file information, such as the
+ inode number, the device number of the mount point, the
+ files modification time (mtime). The class can be instructed
+ to update the cache upon demand and to return the time when
+ the file was last stated.
+
+ The file information is cached to save file access and system
+ call overhead that can be prevented.
+
+ constructor new
+ method filename
+ method file_dev
+ method file_ino
+ method file_mtime
+ method last_stat_time
+ method update_stat
+ method status
Orca::SourceDataFile
- Orca::SourceDataFile subclasses itself from Orca::DataFile.
- This classes primary mission is to load and parse data from
- source text files and hand it off.
-
- constructor new
- method is_current
- method next_load_time
- method get_column_names
- method get_date_column
- method add_plots
- method load_new_data
- method rrds
+ Orca::SourceDataFile subclasses itself from Orca::DataFile.
+ This classes primary mission is to load and parse data from
+ source text files and hand it off.
+
+ constructor new
+ method is_current
+ method next_load_time
+ method get_column_names
+ method get_date_column
+ method add_plots
+ method load_new_data
+ method rrds
Orca::RRDFile
- constructor new
- method name
- method rrd_update_time
- method add_gif
- method created_gifs
- method queue_data
- method flush_data
+ constructor new
+ method name
+ method rrd_update_time
+ method add_gif
+ method created_gifs
+ method queue_data
+ method flush_data
Orca::GIFFile
- constructor new
- method add_rrds
- method rrds
- method plot_ref
- method group
- method files_key
- method name
- method no_group_name
- method plot_end_time
- method plot
- hidden method _plot
- hidden sub _expire_string
+ constructor new
+ method add_rrds
+ method rrds
+ method plot_ref
+ method group
+ method files_key
+ method name
+ method no_group_name
+ method plot_end_time
+ method plot
+ hidden method _plot
+ hidden sub _expire_string
Modified: trunk/orca/docs/REQUIREMENTS
==============================================================================
--- trunk/orca/docs/REQUIREMENTS (original)
+++ trunk/orca/docs/REQUIREMENTS 2003-01-03 15:08:22.000000000 -0800
@@ -1,30 +1,30 @@
Orca::SourceDataFile
- Requirements
- Manages one source data file
- Knows when the data file will be updated
- Only class to know the internal format of the file
- Can have brand new data fields at any point in time
+ Requirements
+ Manages one source data file
+ Knows when the data file will be updated
+ Only class to know the internal format of the file
+ Can have brand new data fields at any point in time
- Internal Storage
+ Internal Storage
- Methods
+ Methods
Orca::RRDFile
- Requirements
- Manages on RRD file
- RRD file can contain data resulting from arbitrary math
- expressions.
+ Requirements
+ Manages on RRD file
+ RRD file can contain data resulting from arbitrary math
+ expressions.
- Internal Storage
+ Internal Storage
- Methods
+ Methods
Orca::GIFFile
- Requirements
+ Requirements
- Internal Storage
+ Internal Storage
- Methods
+ Methods
Modified: trunk/orca/HACKING
==============================================================================
--- trunk/orca/HACKING (original)
+++ trunk/orca/HACKING 2003-01-03 15:08:22.000000000 -0800
@@ -1,4 +1,4 @@
- -*-text-*-
+ -*-text-*-
If you are contributing code to the Orca project, please read this
first.
Modified: trunk/orca/TODO
==============================================================================
--- trunk/orca/TODO (original)
+++ trunk/orca/TODO 2003-01-03 15:08:22.000000000 -0800
@@ -12,8 +12,8 @@
using 7.3 gigabytes of storage. I have 9 different orcallator.cfg for
different classes of machines.
-* Orca: Fix the "did exist and is now gone" email messages for source
- files that are fine.
+* Orca: Fix the "did exist and is now gone" email messages for source
+ files that are fine.
* Orca: Have an install option just for orcallator.se and not the
Orca whole pacckage.
@@ -22,268 +22,268 @@
* Orca: bug fix:
- Fix the bug where if a legend is listed in a plot {} then the
- number of colored boxes in the generated plot are more than
- the data that appears there.
+ Fix the bug where if a legend is listed in a plot {} then the
+ number of colored boxes in the generated plot are more than
+ the data that appears there.
* Orca: Load arbitrarily formatted source text files.
- (If this is implemented, then the problems of source text files
- not containing fields that orcallator.cfg is looking for and
- Orca complaining will disappear).
-
- Orca can only handle source text files that have data from one
- source, such as a host, in a single file. It cannot currently
- handle source data like this:
-
- # Web_server time hits/s bytes/s
- www1 933189273 1304 10324
- www2 933189273 2545 40322
-
- I plan on having Orca allow something like this in the configuration
- file for each group. To read the data above, something like this
- would be defined. Here the ChangeSubGroup and StoreMeasurement
- would be macros or subroutines defined elsewhere for Orca users
- to use.
-
- group web_servers {
- upon_open
- # Do nothing special.
-
- upon_new_data
- while (<$fh>) {
- next if /^#/;
- my @line = split;
- next unless (@line == 4);
- my ($www, $time, $hits_s, $bytes_s) = @line;
- ChangeSubGroup($www);
- StoreMeasurement('Hits Per Second', $time, $hits_s);
- StoreMeasurement('Bytes Per Second', $time, $bytes_s);
- }
-
- upon_close
- # Do nothing special.
- }
-
- For the standard orcallator.se output, something like this would
- be used:
-
- group orcallator {
- find_files /usr/local/var/orca/orcallator/(.*)/orcallator-\d+-\d+\d+
-
- upon_open
- # Look for the first # line describing the data.
- while (<$fh>)) {
- last if /^#/;
- }
- @ColumnsNames = split;
- # Do some searching for the column with the Unix time in it.
- my $time_column = ....;
- splice(@ColumnNames, $time_column, 1);
-
- upon_new_data
- # Load the new data.
- while (my $line = <$fh>) {
- my @line = split;
- next unless @line == @ColumnNames + 1;
- my ($time) = splice(@line, $time_column, 1);
- #
- StoreMeasurements($time, \@ColumnNames, \@line);
- }
-
- }
-
- The code for each upon_* would be Perl code designed explicitly
- for the type of source text. This would allow the arbitrary
- reading of text files, leaving the specifics to the user of
- Orca.
-
- This work would also include caching away the type of measurements
- that each source data file provides. Currently Orca reads the
- header of each source text file for the names of the columns.
- With the number of source text files I have, this takes a long
- time.
+ (If this is implemented, then the problems of source text files
+ not containing fields that orcallator.cfg is looking for and
+ Orca complaining will disappear).
+
+ Orca can only handle source text files that have data from one
+ source, such as a host, in a single file. It cannot currently
+ handle source data like this:
+
+ # Web_server time hits/s bytes/s
+ www1 933189273 1304 10324
+ www2 933189273 2545 40322
+
+ I plan on having Orca allow something like this in the configuration
+ file for each group. To read the data above, something like this
+ would be defined. Here the ChangeSubGroup and StoreMeasurement
+ would be macros or subroutines defined elsewhere for Orca users
+ to use.
+
+ group web_servers {
+ upon_open
+ # Do nothing special.
+
+ upon_new_data
+ while (<$fh>) {
+ next if /^#/;
+ my @line = split;
+ next unless (@line == 4);
+ my ($www, $time, $hits_s, $bytes_s) = @line;
+ ChangeSubGroup($www);
+ StoreMeasurement('Hits Per Second', $time, $hits_s);
+ StoreMeasurement('Bytes Per Second', $time, $bytes_s);
+ }
+
+ upon_close
+ # Do nothing special.
+ }
+
+ For the standard orcallator.se output, something like this would
+ be used:
+
+ group orcallator {
+ find_files /usr/local/var/orca/orcallator/(.*)/orcallator-\d+-\d+\d+
+
+ upon_open
+ # Look for the first # line describing the data.
+ while (<$fh>)) {
+ last if /^#/;
+ }
+ @ColumnsNames = split;
+ # Do some searching for the column with the Unix time in it.
+ my $time_column = ....;
+ splice(@ColumnNames, $time_column, 1);
+
+ upon_new_data
+ # Load the new data.
+ while (my $line = <$fh>) {
+ my @line = split;
+ next unless @line == @ColumnNames + 1;
+ my ($time) = splice(@line, $time_column, 1);
+ #
+ StoreMeasurements($time, \@ColumnNames, \@line);
+ }
+
+ }
+
+ The code for each upon_* would be Perl code designed explicitly
+ for the type of source text. This would allow the arbitrary
+ reading of text files, leaving the specifics to the user of
+ Orca.
+
+ This work would also include caching away the type of measurements
+ that each source data file provides. Currently Orca reads the
+ header of each source text file for the names of the columns.
+ With the number of source text files I have, this takes a long
+ time.
* OS independent data gathering tools:
- Many people have been asking for Orca for operating systems other
- than Solaris, since orcallator.se only runs on Solaris hosts.
+ Many people have been asking for Orca for operating systems other
+ than Solaris, since orcallator.se only runs on Solaris hosts.
- I've given this a little thought and one good solution to this is
- use other publically available tools that gather host information.
- The one that came to mind is top (ftp://ftp.groupsys.com/pub/top).
- Looking at the configure script for top, it runs on the following
- OSes:
-
- 386bsd For a 386BSD system
- aix32 POWER and POWER2 running AIX 3.2.5.0
- aix41 PowerPC running AIX 4.1.2.0
- aux3 a Mac running A/UX version 3.x
- bsd386 For a BSD/386 system
- bsd43 any generic 4.3BSD system
- bsd44 For a 4.4BSD system
- bsd44a For a pre-release 4.4BSD system
- bsdos2 For a BSD/OS 2.X system (based on the 4.4BSD Lite system)
- convex any C2XX running Convex OS 11.X.
- dcosx For Pyramid DC/OSX
- decosf1 DEC Alpha AXP running OSF/1 or Digital Unix 4.0.
- dgux for DG AViiON with DG/UX 5.4+
- dynix any Sequent Running Dynix 3.0.x
- dynix32 any Sequent Running Dynix 3.2.x
- freebsd20 For a FreeBSD-2.0 (4.4BSD) system
- ftx For FTX based System V Release 4
- hpux10 any hp9000 running hpux version 10.x
- hpux7 any hp9000 running hpux version 7 or earlier
- hpux8 any hp9000 running hpux version 8 (may work with 9)
- hpux9 any hp9000 running hpux version 9
- irix5 any uniprocessor, 32 bit SGI machine running IRIX 5.3
- irix62 any uniprocessor, SGI machine running IRIX 6.2
- linux Linux 1.2.x, 1.3.x, using the /proc filesystem
- mtxinu any VAX Running Mt. Xinu MORE/bsd
- ncr3000 For NCR 3000 series systems Release 2.00.02 and above -
- netbsd08 For a NetBSD system
- netbsd10 For a NetBSD-1.0 (4.4BSD) system
- netbsd132 For a NetBSD-1.3.2 (4.4BSD) system
- next32 any m68k or intel NEXTSTEP v3.x system
- next40 any hppa or sparc NEXTSTEP v3.3 system
- osmp41a any Solbourne running OS/MP 4.1A
- sco SCO UNIX
- sco5 SCO UNIX OpenServer5
- sunos4 any Sun running SunOS version 4.x
- sunos4mp any multi-processor Sun running SunOS versions 4.1.2 or later
- sunos5 Any Sun running SunOS 5.x (Solaris 2.x)
- svr4 Intel based System V Release 4
- svr42 For Intel based System V Release 4.2 (DESTINY)
- ultrix4 any DEC running ULTRIX V4.2 or later
- umax Encore Multimax running any release of UMAX 4.3
- utek Tektronix 43xx running UTek 4.1
-
- If somebody were to write a tie into top's source code that would
- generate output every X minutes to a text file or even RRD files,
- then Orca could put it together into a nice package.
-
- In line with this di
- (ftp://ftp.pz.pirmasens.de/pub/unix/utilities/), a freely
- available disk usage program that could be used to generate disk
- usage plots loaded by Orca.
+ I've given this a little thought and one good solution to this is
+ use other publically available tools that gather host information.
+ The one that came to mind is top (ftp://ftp.groupsys.com/pub/top).
+ Looking at the configure script for top, it runs on the following
+ OSes:
+
+ 386bsd For a 386BSD system
+ aix32 POWER and POWER2 running AIX 3.2.5.0
+ aix41 PowerPC running AIX 4.1.2.0
+ aux3 a Mac running A/UX version 3.x
+ bsd386 For a BSD/386 system
+ bsd43 any generic 4.3BSD system
+ bsd44 For a 4.4BSD system
+ bsd44a For a pre-release 4.4BSD system
+ bsdos2 For a BSD/OS 2.X system (based on the 4.4BSD Lite system)
+ convex any C2XX running Convex OS 11.X.
+ dcosx For Pyramid DC/OSX
+ decosf1 DEC Alpha AXP running OSF/1 or Digital Unix 4.0.
+ dgux for DG AViiON with DG/UX 5.4+
+ dynix any Sequent Running Dynix 3.0.x
+ dynix32 any Sequent Running Dynix 3.2.x
+ freebsd20 For a FreeBSD-2.0 (4.4BSD) system
+ ftx For FTX based System V Release 4
+ hpux10 any hp9000 running hpux version 10.x
+ hpux7 any hp9000 running hpux version 7 or earlier
+ hpux8 any hp9000 running hpux version 8 (may work with 9)
+ hpux9 any hp9000 running hpux version 9
+ irix5 any uniprocessor, 32 bit SGI machine running IRIX 5.3
+ irix62 any uniprocessor, SGI machine running IRIX 6.2
+ linux Linux 1.2.x, 1.3.x, using the /proc filesystem
+ mtxinu any VAX Running Mt. Xinu MORE/bsd
+ ncr3000 For NCR 3000 series systems Release 2.00.02 and above -
+ netbsd08 For a NetBSD system
+ netbsd10 For a NetBSD-1.0 (4.4BSD) system
+ netbsd132 For a NetBSD-1.3.2 (4.4BSD) system
+ next32 any m68k or intel NEXTSTEP v3.x system
+ next40 any hppa or sparc NEXTSTEP v3.3 system
+ osmp41a any Solbourne running OS/MP 4.1A
+ sco SCO UNIX
+ sco5 SCO UNIX OpenServer5
+ sunos4 any Sun running SunOS version 4.x
+ sunos4mp any multi-processor Sun running SunOS versions 4.1.2 or later
+ sunos5 Any Sun running SunOS 5.x (Solaris 2.x)
+ svr4 Intel based System V Release 4
+ svr42 For Intel based System V Release 4.2 (DESTINY)
+ ultrix4 any DEC running ULTRIX V4.2 or later
+ umax Encore Multimax running any release of UMAX 4.3
+ utek Tektronix 43xx running UTek 4.1
+
+ If somebody were to write a tie into top's source code that would
+ generate output every X minutes to a text file or even RRD files,
+ then Orca could put it together into a nice package.
+
+ In line with this di
+ (ftp://ftp.pz.pirmasens.de/pub/unix/utilities/), a freely
+ available disk usage program that could be used to generate disk
+ usage plots loaded by Orca.
* orcallator.se: Dump directly to RRD files.
- A separate RRD file would be created for each measurement.
- I do not want all the data stored in a single RRD, since people
- commonly add or remove hardware from the system, which will cause
- more or less data to be stored. Also, this currently would not
- work with RRDtool, since you cannot dynamically add more RRAs
- to a RRD file. Saving each measurement in a separate RRD file
- removes this issue.
-
- Pros:
- 1) Disk space savings. For an old host using over 70
- megabytes of storage for text output, the RRD files
- consume 3.5 megabytes of storage.
- 2) Orca processing time. Orca spends a large amount of
- kernel and CPU time in finding files and getting
- the column headers from these files. By storing
- the data in RRD files, this is no longer a problem.
- Also, Orca itself would not need to move the data
- from text to RRD form, speeding up the process of
- generating the final plots.
-
- Cons:
- 1) Potential slowdown in updating the data files.
- It is easier to write a single text line using fprintf
- than using rrd_update. What is the impact on a single
- orcallator.se process?
- 2) RRDtool format changes and upgrading the data files.
- Text files do not change, but if RRDtool does change,
- then the data files will need to be upgraded somehow.
- 3) Loss of data over time. Due to the consolidation
- function of RRD, older data will not be as precise
- in case it needs to be examined.
- 4) You cannot grep or simply parse the text files for
- particular data for ad-hoc studies.
- 5) The RRD creation parameters would be set by
- orcallator.se and not by Orca, making modifications
- harder.
-
- Question: Do the pros outweigh the cons?
-
- Work to do: Get RRDtool to build a librrd.so that orcallator.se
- would attach to. The RRDs.so that gets built in the perl-shared
- directory has RRDs.o included in it with references to Perl
- variables, so this shared library cannot be loaded by anybody
- else. Two things can be done. One is to modify the perl-shared
- Makefile.PL to build a librrd.so without RRDs.so. The other is
- to somehow make librrd.so with libtool. Either libtool can be
- integrated into RRDtool as a whole, or probably simpler would
- be to add another directory to RRDtool and use libtool in there
- to make the shared library. The first libtool solution would
- allow RRDtool to make shared libraries on almost any host without
- requiring that gcc be installed, since currently the Makefile's
- look for gcc to use the -fPIC flags.
+ A separate RRD file would be created for each measurement.
+ I do not want all the data stored in a single RRD, since people
+ commonly add or remove hardware from the system, which will cause
+ more or less data to be stored. Also, this currently would not
+ work with RRDtool, since you cannot dynamically add more RRAs
+ to a RRD file. Saving each measurement in a separate RRD file
+ removes this issue.
+
+ Pros:
+ 1) Disk space savings. For an old host using over 70
+ megabytes of storage for text output, the RRD files
+ consume 3.5 megabytes of storage.
+ 2) Orca processing time. Orca spends a large amount of
+ kernel and CPU time in finding files and getting
+ the column headers from these files. By storing
+ the data in RRD files, this is no longer a problem.
+ Also, Orca itself would not need to move the data
+ from text to RRD form, speeding up the process of
+ generating the final plots.
+
+ Cons:
+ 1) Potential slowdown in updating the data files.
+ It is easier to write a single text line using fprintf
+ than using rrd_update. What is the impact on a single
+ orcallator.se process?
+ 2) RRDtool format changes and upgrading the data files.
+ Text files do not change, but if RRDtool does change,
+ then the data files will need to be upgraded somehow.
+ 3) Loss of data over time. Due to the consolidation
+ function of RRD, older data will not be as precise
+ in case it needs to be examined.
+ 4) You cannot grep or simply parse the text files for
+ particular data for ad-hoc studies.
+ 5) The RRD creation parameters would be set by
+ orcallator.se and not by Orca, making modifications
+ harder.
+
+ Question: Do the pros outweigh the cons?
+
+ Work to do: Get RRDtool to build a librrd.so that orcallator.se
+ would attach to. The RRDs.so that gets built in the perl-shared
+ directory has RRDs.o included in it with references to Perl
+ variables, so this shared library cannot be loaded by anybody
+ else. Two things can be done. One is to modify the perl-shared
+ Makefile.PL to build a librrd.so without RRDs.so. The other is
+ to somehow make librrd.so with libtool. Either libtool can be
+ integrated into RRDtool as a whole, or probably simpler would
+ be to add another directory to RRDtool and use libtool in there
+ to make the shared library. The first libtool solution would
+ allow RRDtool to make shared libraries on almost any host without
+ requiring that gcc be installed, since currently the Makefile's
+ look for gcc to use the -fPIC flags.
* Orca: Potentially use Cricket's configuration ConfigTree Module.
- Given more complex Orca installations where many different Orca
- configuration files are used, maintaining them will start to be
- complicated. For example, in Yahoo!/GeoCities I have 9 different
- configurations to split up the hosts for our site I found that
- for the number of hosts and the number of data files require this
- for reasonable generating of the resulting HTML and PNG files.
-
- It looks like using ConfigTree would allow Orca to use the same
- inheritance that Cricket uses. I don't know enough about the
- Cricket config tree setup to know if it would work well with Orca.
+ Given more complex Orca installations where many different Orca
+ configuration files are used, maintaining them will start to be
+ complicated. For example, in Yahoo!/GeoCities I have 9 different
+ configurations to split up the hosts for our site I found that
+ for the number of hosts and the number of data files require this
+ for reasonable generating of the resulting HTML and PNG files.
+
+ It looks like using ConfigTree would allow Orca to use the same
+ inheritance that Cricket uses. I don't know enough about the
+ Cricket config tree setup to know if it would work well with Orca.
- Work to do: Review the ConfigTree code.
+ Work to do: Review the ConfigTree code.
* Orca: Allow different group sources in the same plot.
- Currently Orca only allows data sources from one group. Expand
- the code to list the group in each data line. Initially, however
- only data from one group would be allowed in one data statement.
+ Currently Orca only allows data sources from one group. Expand
+ the code to list the group in each data line. Initially, however
+ only data from one group would be allowed in one data statement.
* Orca: Put the last update time for each host in an HTML file somewhere.
- This could be done simply up updating a file that gets included
- by the real HTML file. This way the main HTML files do not
- have to get rewritten all the time. On large installations,
- writing the HTML files is lengthy.
+ This could be done simply up updating a file that gets included
+ by the real HTML file. This way the main HTML files do not
+ have to get rewritten all the time. On large installations,
+ writing the HTML files is lengthy.
* Orca: Turn off HTML creation via command line option.
- Add a command line option to turn off HTML file creation.
+ Add a command line option to turn off HTML file creation.
* Orca: Update the HTML files is new data is found.
- Currently Orca will only update the HTML files if new source
- files are found, but not if new data in existing files is found.
- Change this.
+ Currently Orca will only update the HTML files if new source
+ files are found, but not if new data in existing files is found.
+ Change this.
* orcallator.se: Put HTTP proxy and caching statistics into orcallator.cfg.
- Since orcallator.se measures HTTP proxy and caching statistics,
- update orcallator.cfg.in to display these data sets.
+ Since orcallator.se measures HTTP proxy and caching statistics,
+ update orcallator.cfg.in to display these data sets.
* orcallator.se: Temperature measurements
- Since /usr/platform/sun4u/sbin/prtdiag -v measures the ambient
- and CPU temperature, get orcallator.se to measure this data.
+ Since /usr/platform/sun4u/sbin/prtdiag -v measures the ambient
+ and CPU temperature, get orcallator.se to measure this data.
* Orca:
- Do what it takes to remove the same Ethernet port listings in
- orcallator.cfg.in. They seem redundant, but are not totally,
- since different interfaces have different maximum data transfer
- rates.
+ Do what it takes to remove the same Ethernet port listings in
+ orcallator.cfg.in. They seem redundant, but are not totally,
+ since different interfaces have different maximum data transfer
+ rates.
* Orca:
- Add some error checking code for the maximum number of available
- colors so undefined errors do not arise.
+ Add some error checking code for the maximum number of available
+ colors so undefined errors do not arise.
* Other:
- Mention the AIX tool nmon.
+ Mention the AIX tool nmon.
Modified: trunk/orca/INSTALL
==============================================================================
--- trunk/orca/INSTALL (original)
+++ trunk/orca/INSTALL 2003-01-03 15:08:22.000000000 -0800
@@ -139,13 +139,13 @@
Orca requires the following Perl modules at the specified
versions:
- Name Required Version Included With Orca
+ Name Required Version Included With Orca
----------------------------------------------------------------------
- Data::Dumper 2.101 or greater 2.101
- Digest::MD5 2.21 or greater 2.21
- Math::IntervalSearch 1.05 or greater 1.05
- RRDs 1.0.33 or greater 1.0.33
- Storable 2.06 or greater 2.06
+ Data::Dumper 2.101 or greater 2.101
+ Digest::MD5 2.21 or greater 2.21
+ Math::IntervalSearch 1.05 or greater 1.05
+ RRDs 1.0.33 or greater 1.0.33
+ Storable 2.06 or greater 2.06
All five of these modules are included with the Orca distribution
in the packages directory. When you configure Orca in step 3),
@@ -226,7 +226,7 @@
To make Orca and these Perl modules run the following command:
- % make [ To optimize: make CFLAGS=-O or CFLAGS=-O3 ]
+ % make [ To optimize: make CFLAGS=-O or CFLAGS=-O3 ]
6) Test if the Perl modules properly compiled.
More information about the Orca-checkins
mailing list