Changeset f21a9bbe574ee86efd04eca84e06053eb4525e91
- Timestamp:
- 04/25/10 21:27:07
(3 years ago)
- Author:
- Jason Dixon <jdixon@omniti.com>
- git-committer:
- Jason Dixon <jdixon@omniti.com> 1272230827 +0000
- git-parent:
[2f1d5df84e5f5f86a5aa73c8c50310b72c1965c6]
- git-author:
- Jason Dixon <jdixon@omniti.com> 1272230827 +0000
- Message:
solaris support
git-svn-id: https://labs.omniti.com/resmon/branches/resmon2@327 8c0face9-b7db-6ec6-c4b3-d5f7145c7d55
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r2f1d5df |
rf21a9bb |
|
| 39 | 39 | for anything functional. |
|---|
| 40 | 40 | |
|---|
| | 41 | =head1 METRICS |
|---|
| | 42 | |
|---|
| | 43 | =over |
|---|
| | 44 | |
|---|
| 41 | 45 | =item actv_mem |
|---|
| 42 | 46 | |
|---|
| … | … | |
| 47 | 51 | Free real memory. |
|---|
| 48 | 52 | |
|---|
| 49 | | =back |
|---|
| | 53 | =head1 KSTAT METRICS |
|---|
| 50 | 54 | |
|---|
| 51 | | =head1 METRICS |
|---|
| 52 | | |
|---|
| 53 | | =over |
|---|
| 54 | | |
|---|
| 55 | | =item read_sec |
|---|
| 56 | | |
|---|
| 57 | | Reads per second. |
|---|
| 58 | | |
|---|
| 59 | | =item write_sec |
|---|
| 60 | | |
|---|
| 61 | | Writes per second. |
|---|
| | 55 | Solaris provides an interface to numerous kernel statistics. If the |
|---|
| | 56 | Perl Sun::Solaris::Kstat library is locally available, this module will |
|---|
| | 57 | prefer that method first, bypassing vmstat collection. Otherwise, this |
|---|
| | 58 | module falls back on the standard vmstat collection method. |
|---|
| 62 | 59 | |
|---|
| 63 | 60 | =back |
|---|
| … | … | |
| 72 | 69 | my $osname = $^O; |
|---|
| 73 | 70 | |
|---|
| 74 | | if ($osname eq 'openbsd') { |
|---|
| | 71 | if ($osname eq 'solaris') { |
|---|
| | 72 | my $usekstat = 0; |
|---|
| | 73 | my $pagesize = run_command('pagesize'); |
|---|
| | 74 | my $kstat; |
|---|
| | 75 | eval "use Sun::Solaris::Kstat"; |
|---|
| | 76 | unless ($@) { |
|---|
| | 77 | $usekstat = 1; |
|---|
| | 78 | $kstat = Sun::Solaris::Kstat->new(); |
|---|
| | 79 | } |
|---|
| | 80 | if ($usekstat && $pagesize) { |
|---|
| | 81 | my %metrics; |
|---|
| | 82 | my $syspages = $kstat->{'unix'}->{0}->{'system_pages'}; |
|---|
| | 83 | |
|---|
| | 84 | foreach (keys %$syspages) { |
|---|
| | 85 | $metrics{"kstat_${_}"} = [int($syspages->{$_} * $pagesize / 1024), 'i'] unless ($_ eq 'class'); |
|---|
| | 86 | } |
|---|
| | 87 | $metrics{'kstat_cache_mem'} = int($kstat->{'zfs'}->{0}->{'arcstats'}->{'size'} / 1024); |
|---|
| | 88 | return \%metrics; |
|---|
| | 89 | } else { |
|---|
| | 90 | my $output = run_command("$vmstat_path"); |
|---|
| | 91 | if ($output =~ /.*cs\s+us\s+sy\s+id\n\s+\d+\s+\d+\s+\d+\s+(\d+)\s+(\d+).*/) { |
|---|
| | 92 | return { |
|---|
| | 93 | 'actv_mem' => [$1, 'i'], |
|---|
| | 94 | 'free_mem' => [$2, 'i'] |
|---|
| | 95 | }; |
|---|
| | 96 | } else { |
|---|
| | 97 | die "Unable to extract statistics\n"; |
|---|
| | 98 | } |
|---|
| | 99 | } |
|---|
| | 100 | } elsif ($osname eq 'openbsd') { |
|---|
| 75 | 101 | my $output = run_command("$vmstat_path"); |
|---|
| 76 | 102 | if ($output =~ /.*cs\s+us\s+sy\s+id\n\s+\d+\s+\d+\s+\d+\s+(\d+)\s+(\d+).*/) { |
|---|