Reports - Grafische Darstellung
Hallo Zusammen,
ich habe mir via Powershell eine CSV-Datei erstellt, die aus unseren Reports den Gesamtbedarf an Speicherplatz unserer Server errechnet. Diese Daten werden + Datum in eine txt-Datei geschrieben.
Damit diese Daten übersichtlicher gestaltet werden, hatte ich vor, sie in ein Liniendiagramm (z.B. auch als Bild-Datei) einzubauen und danach als Monats-Übersicht per Mail zu verschicken.
Die Frage: Wie erstelle ich mir am Besten dieses Diagramm?
P.S. Da Excel auf dem Server nicht installiert ist, kann ich vermutlich mit Powershell nichts in diese Richtung machen.
Grüße,
Tiberius
ich habe mir via Powershell eine CSV-Datei erstellt, die aus unseren Reports den Gesamtbedarf an Speicherplatz unserer Server errechnet. Diese Daten werden + Datum in eine txt-Datei geschrieben.
11.8;1483
12.8;1469
...
Damit diese Daten übersichtlicher gestaltet werden, hatte ich vor, sie in ein Liniendiagramm (z.B. auch als Bild-Datei) einzubauen und danach als Monats-Übersicht per Mail zu verschicken.
Die Frage: Wie erstelle ich mir am Besten dieses Diagramm?
P.S. Da Excel auf dem Server nicht installiert ist, kann ich vermutlich mit Powershell nichts in diese Richtung machen.
Grüße,
Tiberius
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 279872
Url: https://administrator.de/contentid/279872
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Ggf. hilft das: http://www.gnuplot.info
Oder den Klassiker RRD Tool:
http://www.heise.de/make/artikel/Kurvenzeichner-2714517.html
Mit einem kleinen Raspberry Pi bekommst du das dann wunderbar über ein GUI angezeigt. Statt Speicherdaten hier mal das Wetter:
http://raspberry.tips/hausautomatisierung/wetteraufzeichnung-mit-raspbe ...
Per SNMP kannst du dir den Speicherstatus auslesen und alles automatisiert darstellen ohne den Umweg CSV.
Oder den Klassiker RRD Tool:
http://www.heise.de/make/artikel/Kurvenzeichner-2714517.html
Mit einem kleinen Raspberry Pi bekommst du das dann wunderbar über ein GUI angezeigt. Statt Speicherdaten hier mal das Wetter:
http://raspberry.tips/hausautomatisierung/wetteraufzeichnung-mit-raspbe ...
Per SNMP kannst du dir den Speicherstatus auslesen und alles automatisiert darstellen ohne den Umweg CSV.
Hallo Tiberius,
kann man z.B. über das Google-Charts-API machen, damit kann man sich Charts generieren lassen. Das generierte Bild lädt dann das Powershell-Skript aus dem Web.
Hier ein Beipspiel:
für eine CSV-Datei die so formatiert ist:
In Zeile 1 gibst du den Pfad für das Bild an das erstellt wird, und in Zeile 2 den Pfad zur CSV-Datei
(Erfordert durch Verwendung von Invoke-Webrequest mind. PS Version 3.0)
Das Ergebnis sieht dann so aus:
Klar ist jetzt noch keine Schönheit, aber das lässt sich mit den vielfälltigen Optionen noch verschönern.
Die weiteren Optionen zur Formatierung für die Charts findest du hier:
https://developers.google.com/chart/image/docs/making_charts
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
kann man z.B. über das Google-Charts-API machen, damit kann man sich Charts generieren lassen. Das generierte Bild lädt dann das Powershell-Skript aus dem Web.
Hier ein Beipspiel:
für eine CSV-Datei die so formatiert ist:
Tag;Wert
12.8;4200
13.8;700
14.8;3200
15.8;1500
16.8;1500
17.8;1400
18.8;1320
19.8;100
(Erfordert durch Verwendung von Invoke-Webrequest mind. PS Version 3.0)
$imagepath = 'C:\chart.png'
$csv = 'C:\data.csv'
Add-Type -AssemblyName System.Drawing
$data = Import-csv $csv -Delimiter ';'
# Werte in Zahlen formatieren
$data | %{$_.Wert = [double]$_.Wert}
# Maximum für die Skalierung ermitteln
$max = $data.Wert | sort -Descending | select -First 1
# Werte an Skalierung anpassen
$data | %{$_.Wert = ($_.Wert / $max)*100 -replace ',','.'}
# Daten in das Google-Format für die POST-Parameter bringen
$tage = $data.Tag -join '|'
$werte = $data.Wert -join ','
# Parameter für den Google-Chart setzen
$body = @{
cht='lc' # Charttyp: Linien-Chart
chtt='Mein Chart' # Titel
chs='500x400' # Größe
chxt='x,y' # sichtbare Achsen
chxl="0:|$tage" # Werte der X-Achse
chd="t:$werte" # Werte der Y-Achse
chxr="1,0,$max,200" # Skalierung
chg="$(100/($data.length-1)),$(100/($max/200))" # Gitternetz anpassen
}
# Google Chart-API Abfrage via POST senden
$net = Invoke-WebRequest -Uri 'https://chart.googleapis.com/chart' -Method Post -Body $body
# PNG-Bild aus den zurückgelieferten Daten erzeugen
$img = [System.Drawing.Image]::FromStream($net.RawContentStream)
# Bild speichern
$img.Save($imagepath)
# Bild anzeigen
start-process $imagepath
Klar ist jetzt noch keine Schönheit, aber das lässt sich mit den vielfälltigen Optionen noch verschönern.
Die weiteren Optionen zur Formatierung für die Charts findest du hier:
https://developers.google.com/chart/image/docs/making_charts
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate