Question [Résolu] Problème sonde compteur Windows
- laurent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 11 ans 1 mois #18943
par laurent
[Résolu] Problème sonde compteur Windows a été créé par laurent
Bonjour,
J'ai réalisé un script pour me remonter 4 compteurs Windows et envoyer des valeurs à mon système de monitoring.
J'utilise les Job pour lancer les 4 tests en parallèles pour que le script s’exécute plus rapidement
Fonctionne très bien sur Powershell 3 ou supérieur
mais pas sur Powershell 2 (je ne peux pas le mettre a jour), j'ai du faire une boucle FOR pour avoir le même résultat que :
[code:1]$ecriture= {[math]::round(((((Get-Counter \"\Disque physique(*)\Écritures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average),1)}
$lecture= {[math]::round(((((Get-Counter \"\Disque physique(*)\Lectures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average),1)}
$ecritureO= {[math]::round((((((Get-Counter \"\Disque physique(*)\Écritures disque, octets/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average)/1024),1)}
$lectureO= {[math]::round((((((Get-Counter \"\Disque physique(*)\Lectures disque, octets/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average)/1024),1)}
$job1=Start-Job $ecriture
$job2=Start-Job $lecture
$job3=Start-Job $ecritureO
$job4=Start-Job $lectureO
Get-Job | Wait-Job
Receive-Job $job1 -OutVariable moyenne_ecriture
Receive-Job $job2 -OutVariable moyenne_lecture
Receive-Job $job3 -OutVariable moyenne_ecritureO
Receive-Job $job4 -OutVariable moyenne_lectureO
Write-Host \"OK | Lectures_disque/s=\"$moyenne_lecture\"R/s,Ecritures_disque/s=\"$moyenne_ecriture\"W/s,Lecture KOctets/s=\"$moyenne_lectureO\"KO/s,Ecriture KOctets/s=\"$moyenne_ecritureO\"KO/s\"[/code:1]
J'ai deux problème :
Ce code ne fonctionne pas, je récupère 5 valeurs espacé de 1 seconde et je prends la moyenne de ces valeus en arrondissant a 1 chiffre après la virgule:
[code:1]$ecriture= {[math]::round(((((Get-Counter \"\Disque physique(*)\Écritures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average),1)}[/code:1]
Second problème, je n'ai aucun envoi dans la variable :
[code:1]Receive-Job $job1 -OutVariable moyenne_ecriture[/code:1]
Merci d'avance si quelqu'un a une idée, je suis preneur<br><br>Message édité par: Arnaud, à: 3/03/15 17:11
J'ai réalisé un script pour me remonter 4 compteurs Windows et envoyer des valeurs à mon système de monitoring.
J'utilise les Job pour lancer les 4 tests en parallèles pour que le script s’exécute plus rapidement
Fonctionne très bien sur Powershell 3 ou supérieur
mais pas sur Powershell 2 (je ne peux pas le mettre a jour), j'ai du faire une boucle FOR pour avoir le même résultat que :
[code:1]$ecriture= {[math]::round(((((Get-Counter \"\Disque physique(*)\Écritures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average),1)}
$lecture= {[math]::round(((((Get-Counter \"\Disque physique(*)\Lectures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average),1)}
$ecritureO= {[math]::round((((((Get-Counter \"\Disque physique(*)\Écritures disque, octets/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average)/1024),1)}
$lectureO= {[math]::round((((((Get-Counter \"\Disque physique(*)\Lectures disque, octets/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average)/1024),1)}
$job1=Start-Job $ecriture
$job2=Start-Job $lecture
$job3=Start-Job $ecritureO
$job4=Start-Job $lectureO
Get-Job | Wait-Job
Receive-Job $job1 -OutVariable moyenne_ecriture
Receive-Job $job2 -OutVariable moyenne_lecture
Receive-Job $job3 -OutVariable moyenne_ecritureO
Receive-Job $job4 -OutVariable moyenne_lectureO
Write-Host \"OK | Lectures_disque/s=\"$moyenne_lecture\"R/s,Ecritures_disque/s=\"$moyenne_ecriture\"W/s,Lecture KOctets/s=\"$moyenne_lectureO\"KO/s,Ecriture KOctets/s=\"$moyenne_ecritureO\"KO/s\"[/code:1]
J'ai deux problème :
Ce code ne fonctionne pas, je récupère 5 valeurs espacé de 1 seconde et je prends la moyenne de ces valeus en arrondissant a 1 chiffre après la virgule:
[code:1]$ecriture= {[math]::round(((((Get-Counter \"\Disque physique(*)\Écritures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue) | Measure-Object -Average).Average),1)}[/code:1]
Second problème, je n'ai aucun envoi dans la variable :
[code:1]Receive-Job $job1 -OutVariable moyenne_ecriture[/code:1]
Merci d'avance si quelqu'un a une idée, je suis preneur<br><br>Message édité par: Arnaud, à: 3/03/15 17:11
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 1 mois #18945
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Problème sonde compteur windows en powershell
Ce code fonctionne en V3 et >, mais pas en v2:
[code:1](Get-Counter \"\Disque physique(*)\Écritures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue)[/code:1]
Car il y a une itération automatique en V3, en v2 il faut coder différemment ( en + étapes) .
Si tu as + versions dont la 2 le mieux est de coder avec la v2 puis de tester avec les versions supérieures.
Avec la v2 tu peux modifier ceci :
[code:1]set-strictmode -Version Latest[/code:1]
Ce qui ne posera pas de pb avec la v3 et >.
Ici, teste déjà ton code en dehors d'un job.
[code:1](Get-Counter \"\Disque physique(*)\Écritures disque/s\" -SampleInterval 1 -MaxSamples 5).CounterSamples.CookedValue)[/code:1]
Car il y a une itération automatique en V3, en v2 il faut coder différemment ( en + étapes) .
Si tu as + versions dont la 2 le mieux est de coder avec la v2 puis de tester avec les versions supérieures.
Avec la v2 tu peux modifier ceci :
[code:1]set-strictmode -Version Latest[/code:1]
Ce qui ne posera pas de pb avec la v3 et >.
Ici, teste déjà ton code en dehors d'un job.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- laurent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 11 ans 1 mois #18947
par laurent
Réponse de laurent sur le sujet Re:Problème sonde compteur windows en powershell
merci pour tes réponses
voici le code que j'ai fait pour la V2 pour un compteur
[code:1]$ecriture= {
$array= @()
for ($i = 0; $i -lt 5; $i++)
{
$array += ((Get-Counter \"\Disque physique(1 C:«»)\Écritures disque/s\"«»).CounterSamples[0].CookedValue)
}
write-host ([math]::round((($array | Measure-Object -Average).Average),1))
}
$job1=Start-Job $ecriture
Get-Job | Wait-Job
Receive-Job $job1 -OutVariable moyenne_ecriture
write-host (\"Lecture Ecriture/s={0}\" -f $moyenne_ecriture)
[/code:1]
c'est le job qui ne marche toujours pas
j'ai bien entendu testé le code sans le job.
Message édité par: laurentv, à: 5/02/15 16:46<br><br>Message édité par: laurentv, à: 5/02/15 16:47
voici le code que j'ai fait pour la V2 pour un compteur
[code:1]$ecriture= {
$array= @()
for ($i = 0; $i -lt 5; $i++)
{
$array += ((Get-Counter \"\Disque physique(1 C:«»)\Écritures disque/s\"«»).CounterSamples[0].CookedValue)
}
write-host ([math]::round((($array | Measure-Object -Average).Average),1))
}
$job1=Start-Job $ecriture
Get-Job | Wait-Job
Receive-Job $job1 -OutVariable moyenne_ecriture
write-host (\"Lecture Ecriture/s={0}\" -f $moyenne_ecriture)
[/code:1]
c'est le job qui ne marche toujours pas
j'ai bien entendu testé le code sans le job.
Message édité par: laurentv, à: 5/02/15 16:46<br><br>Message édité par: laurentv, à: 5/02/15 16:47
Connexion ou Créer un compte pour participer à la conversation.
- laurent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 11 ans 1 mois #18948
par laurent
Réponse de laurent sur le sujet Re:Problème sonde compteur windows en powershell
[code:1]for ($i = 0; $i -lt 5; $i++)
{
$array += ((Get-Counter \"\Disque physique(1 C:«»)\Écritures disque, octets/s\"«»).CounterSamples[0].CookedValue)
}
write-host ([math]::round((($array | Measure-Object -Average).Average),1))[/code:1]
17916,4
j'ai bien le résultat hors JOB.
{
$array += ((Get-Counter \"\Disque physique(1 C:«»)\Écritures disque, octets/s\"«»).CounterSamples[0].CookedValue)
}
write-host ([math]::round((($array | Measure-Object -Average).Average),1))[/code:1]
17916,4
j'ai bien le résultat hors JOB.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 1 mois #18951
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Problème sonde compteur windows en powershell
laurentv écrit:
Essaie avec Write-Output.c'est le job qui ne marche toujours pas
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- laurent
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 11 ans 1 mois #18963
par laurent
Réponse de laurent sur le sujet Re:Problème sonde compteur windows en powershell
Laurent Dardenne écrit:
Je te remercie tout fonctionne correctement grâce a ton commande : Write-Output
laurentv écrit:
Essaie avec Write-Output.c'est le job qui ne marche toujours pas
Je te remercie tout fonctionne correctement grâce a ton commande : Write-Output
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.099 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- [Résolu] Problème sonde compteur Windows