Win32::PerfLib - accéder aux compteurs de Performance de Windows NT


NOM

Win32::PerfLib - accéder aux compteurs de Performance de Windows NT

Retour en haut de la page


SYNOPSIS

  use Win32::PerfLib;
  my $server = "";    # machine locale
  Win32::PerfLib::GetCounterNames($server, \%counter);
  %r_counter = map { $counter{$_} => $_ } keys %counter;
  # Trouver l'id de l'objet processus
  $process_obj = $r_counter{Process};
  # Trouver l'id du compteur 'ID process '
  $process_id = $r_counter{'ID Process'};
  # Création d'un connexion au serveur $server
  $perflib = new Win32::PerfLib($server);
  $proc_ref = {};
  # Obtient les données de performance pour l'objet processus
  $perflib->GetObjectList($process_obj, $proc_ref);
  $perflib->Close();
  $instance_ref = $proc_ref->{Objects}->{$process_obj}->{Instances};
  foreach $p (sort keys %{$instance_ref})
  {
      $counter_ref = $instance_ref->{$p}->{Counters};
      foreach $i (keys %{$counter_ref})
      {
          if($counter_ref->{$i}->{CounterNameTitleIndex} == $process_id)
          {
              printf( "% 6d %s\n", $counter_ref->{$i}->{Counter},
                      $instance_ref->{$p}->{Name}
                    );
          }
      }
  }

Retour en haut de la page


DESCRIPTION

Ce module permet d'extraire les compteurs de performance de n'importe quel ordinateur du réseau tournant sous Windows NT.

Retour en haut de la page


FONCTIONS

NOTE

Sauf indication contraire, toutes les fonctions retournent faux si elles échouent. Si l'argument $server est undef, la machine locale est sélectionnée.

Win32::PerfLib::GetCounterNames($server,$hashref)
Extrait du Registre les noms des compteurs et leurs index et les entrepose dans le hachage donné par sa référence.

Win32::PerfLib::GetCounterHelp($server,$hashref)
Extrait du Registre les chaînes d'aide des compteurs et leurs index et les entrepose dans le hachage donné par sa référence.

$perflib = Win32::PerfLib->new ($server)
Crée une connexion aux compteurs de performance du serveur donné.

$perflib->GetObjectList($objectid,$hashref)
Extrait la liste des compteurs et objets de l'objet performance donné.

$perflib->Close($hashref)
Ferme la connexion aux compteurs de performance.

Win32::PerfLib::GetCounterType(countertype)
convertit le type de compteur en une chaîne lisible comme référencé dans calc.html afin qu'il soit plus facile de trouver la formule appropriée pour convertir la donnée brute du compteur.

Retour en haut de la page


Structures de données

Les données de performance sont retournées dans la structure de données suivante :

Niveau 1
  $hashref = {
      'NumObjectTypes'   => VALUE
      'Objects'          => HASHREF
      'PerfFreq'         => VALUE
      'PerfTime'         => VALUE
      'PerfTime100nSec'  => VALUE
      'SystemName'       => STRING
      'SystemTime'       => VALUE
  }
Niveau 2
Le hachage référencé par $hashref->{Objects} a comme clefs les ID(s) de l'objet retourné et comme valeur une référence de hachage à la donnée du compteur de l'objet. Même s'il n'y a qu'un objet demandé dans l'appel à GetObjectList il peut y avoir plusieurs objets dans le résultat.
  $hashref->{Objects} = {
      <object1>  => HASHREF
      <object2>  => HASHREF
      ...
  }

Niveau 3
Chaque ID d'objet retourné a des informations de performance qui lui sont spécifiques. Si un objet a des instances, comme par exemple l'objet process, il y a aussi une référence à l'information de l'instance.
  $hashref->{Objects}->{<object1>} = {
      'DetailLevel'           => VALUE
      'Instances'             => HASHREF
      'Counters'              => HASHREF
      'NumCounters'           => VALUE
      'NumInstances'          => VALUE
      'ObjectHelpTitleIndex'  => VALUE
      'ObjectNameTitleIndex'  => VALUE
      'PerfFreq'              => VALUE
      'PerfTime'              => VALUE
  }

Niveau 4
S'il y a des informations d'instance pour l'objet disponible, elles sont conservées dans la référence de hachage 'Instances'. Si l'objet n'a pas d'instances, il y a une clef 'Counters' à la place. Les instances et les compteurs sont numérotés.
  $hashref->{Objects}->{<object1>}->{Instances} = {
      <1>     => HASHREF
      <2>     => HASHREF
      ...
      <n>     => HASHREF
  }
  ou
  $hashref->{Objects}->{<object1>}->{Counters} = {
      <1>     => HASHREF
      <2>     => HASHREF
      ...
      <n>     => HASHREF
  }

Niveau 5
  $hashref->{Objects}->{<object1>}->{Instances}->{<1>} = {
      Counters               => HASHREF
      Name                   => STRING
      ParentObjectInstance   => VALUE
      ParentObjectTitleIndex => VALUE
  }
  ou
  $hashref->{Objects}->{<object1>}->{Counters}->{<1>} = {
      Counter               => VALUE
      CounterHelpTitleIndex => VALUE
      CounterNameTitleIndex => VALUE
      CounterSize           => VALUE
      CounterType           => VALUE
      DefaultScale          => VALUE
      DetailLevel           => VALUE
      Display               => STRING
  }
Niveau 6
  $hashref->{Objects}->{<object1>}->{Instances}->{<1>}->{Counters} = {
      <1>     => HASHREF
      <2>     => HASHREF
      ...
      <n>     => HASHREF
  }
Niveau 7
  $hashref->{Objects}->{<object1>}->{Instances}->{<1>}->{Counters}->{<1>} = {
      Counter               => VALUE
      CounterHelpTitleIndex => VALUE
      CounterNameTitleIndex => VALUE
      CounterSize           => VALUE
      CounterType           => VALUE
      DefaultScale          => VALUE
      DetailLevel           => VALUE
      Display               => STRING
  }

Selon le type du compteur CounterType il y a des calculs à faire (voyez calc.html).

Retour en haut de la page


AUTEUR

Jutta M. Klebe, jmk@bybyte.de

[Pour des informations complémentaires (en anglais) et des exemples, voir le site de l'auteur:

   http://www.bybyte.de/jmk/docs/Perl5/PerfLib/PerfLib.html

NdT]

Retour en haut de la page


VOIR AUSSI

perl(1).

Retour en haut de la page


VERSION FRANÇAISE

Cette traduction française correspond à la version anglaise distribuée avec perl 5.8.0. Pour en savoir plus concernant ces traductions, consultez http://www.enstimac.fr/Perl/ .

Retour en haut de la page


TRADUCTION EN FRANÇAIS

Jean-Louis Morel <jl_morel@bribes.org>

Retour en haut de la page

 Win32::PerfLib - accéder aux compteurs de Performance de Windows NT