Seite wählen

NETWAYS Blog

Brackets – Open Source Editor

Brackets(Quelle: brackets.io)

Brackets ist ein Open Source Editor von Adobe und ist – haltet euch jetzt gaaaanz fest: Open Source!!
Der Editor wurde speziell für Web Designer und Front-End Developer entworfen, kann aber durch Zusatzmodule auch beispielsweise Perl handeln. Ich finde das Brackets zwar im Vergleich zu anderen Editoren beim Tippen eher etwas „langsam“ bzw. „träge“ reagiert, dafür ist die GUI aber schön aufgeräumt, wodurch für den Code viel Platz zur Verfügung steht.
Eines meiner persönlichen Highlights ist das „Live HTML Development“. Ja, richtig gelesen! Änderungen am HTML werden direkt an den Browser übermittelt ohne zwischendurch speichern zu müssen. Die Entwickler von Brackets haben hierzu ein sehr schönes Video-Beispiel veröffentlicht, in dem auch das modifizieren von Stylesheets gezeigt wird.
Die Stylesheet Funktion ist eine weitere, wirklich sehr coole Geschichte. Die Stylesheets werden (egal in welcher extern eingebundenen Datei sie stecken) direkt an Ort und Stelle angezeigt. Das hin und her springen zwischen mehren Dateien entfällt.
Wenn ihr mehr über Brackets wissen oder es einfach mal ausprobieren wollt: http://brackets.io  🙂

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker und renoviert, baut und bastelt als Heimwerker an allem was er finden kann.

Weekly Snap: Puppet Camp Munich, Perl Profiling & Cyanogenmod

weekly snap25 – 29 November ended the month with Puppet Camp Munich and a few guides on Perl profiling, internal Bash variables and Cyanogenmod.
Eva started the week by counting 134 days to the OSDC 2014 with Nicholas Mailer’s presentation on Deconstructing the Cloud”.
She then headed off to Puppet Camp Munich, to report live from the event alongside Dirk and his top Puppet presentation picks.
Tobias followed by introducing a few lesser-known, internal Bash variables as Michael showed how to profile Perl scripts using NYTProf.
Finally, Marcus put the case forward for Cyanogenmod as a better alternative to original smartphone firmware.

Perl Profiling mit NYTProf

Nachdem sich meine Kollegen bereits eingehend mit PHP Profiling mit KCacheGrind und XDebug sowie GPerfTools am Beispiel von Icinga 2 beschäftigt haben, möchte ich mich heute dem Perl Profiler NYTProf widmen. Profiling von Perl Scripts ist vor allem dann interessant, wenn man eigene Funktionsaufrufe gekapselt hat, und natürlich, um zu erkennen, womit man aktuell am meisten Zeit verbrät, um daraus Optimierungsstrategien zu entwickeln. Vielleicht gibt es ja auch eine besser Library, um Objekte von der Platte in einen Hash einzulesen, oder schnellere Stringoperationen? Oder auch nur das Übliche – alles ist zu langsam, und man möchte gezielt wissen, wer oder was schuld daran ist 😉
Die Installation ist trivial, wahlweise aus Paketen (EL6 benötigt das Repoforge Repository), oder direkt aus CPAN.

# apt-get install libdevel-nytprof-perl
# yum install perl-Devel-NYTProf
# zypper in perl-Devel-NYTProf
# perl -MCPAN -e 'install Devel::NYTProf'

Den Profiler bindet man wie folgt ein

# perl -d:NYTProf my_perl_script.pl

Standardmässig legt NYTProf im aktuellen Verzeichnis eine Datei namens nytprof.out an (falls Prozesse geforkt werden, mit PID als Suffix. Mittels nytprofmerge können mehrere Dateien wieder zusammengefügt werden). Das kann bei längerer Laufzeit schonmal mehrere hundert Megabyte ausspucken, dementsprechend sollte mans auf einem schnellen Device mit viel Platz ausführen.
Nachdem das Perl Script erfolgreich beendet wurde, kann man das Ergebnis mit unterschiedlichen Exportmechanismen visualisieren.
Die schnellste Methode hierbei ist eine generierte HTML Übersicht inkl Flamegraph, Treemap und Übersichtstabellen mit den am meisten aufgerufensten/längsten dauernden Funktionen. nytprofhtml erwartet sich ohne Angabe von –file als Parameter im aktuellen Verzeichnis die vorher erstelle nytprof.out Datei.

$ nytprofhtml
$ chromium nytprof/index.html

NYTProf HTML Output
Alternativ dazu bietet NYTProf seit Version 3 an, die Profiling Datei in ein Callgrind-lesbares Format zu exportieren. Damit ist es möglich, in gewohnter Umgebung mit KCacheGrind zu arbeiten.

$ nytprofcg
$ kcachegrind nytprof.callgrind

Nytprof Callgrind Kcachegrind
Sofern wider Erwarten mal Performanceprobleme auftreten – wir wissen Bescheid, wie man die Ergebnisse interpretiert und die Performance optimiert, fragt uns einfach 🙂

OSMC 2013: Der Countdown läuft – nur noch 1 Tag

Morgen Kinder wird’s was geben!
Was genau, das erfahrt Ihr hier.
Heute gibt’s erstmal aber noch Christian Schneemann.

OSMC? Was soll das denn sein und wer sind die netten Menschen in diesen Videos?Die Open Source Monitoring Conference (kurz: OSMC) ist die internationale Plattform für alle an Open Source Monitoring Lösungen Interessierten, speziell Nagios und Icinga. Jedes Jahr gibt es hier die Möglichkeit sein Wissen über freie Monitoringsysteme zu erweitern und sich mit anderen Anwendern auszutauschen. Die Konferenz richtet sich besonders an IT-Verantwortliche aus den Bereichen System- und Netzwerkadministration, Entwicklung und IT-Management. Und die netten Menschen, die Ihr in unseren Videos zur OSMC seht, gehören dazu. 2013 wird die OSMC zum 8. Mal in Nürnberg stattfinden.

Monitor WMI mit perl unter windows

Es gibt 1000 und einen Weg Windows zu überwachen. Heute möchte ich euch zeigen wie es möglich ist mit WMI und Perl an ein Fülle von Daten zu kommen.
Zuerst einmal muss perl unter Windows installiert werden. Auf perl.org bekommt man eine Übersicht welche Versionen es für Windows gibt. Ich bevorzuge Strawberry Perl für Windows, da es zu 100% OpenSource ist.
Wenn man nsclient benutzt kann man sich auch überlegen es in ein Unterverzeichnis zu installieren. Es reicht prinzipiell es dort hin zu kopieren und die richtigen Abhängigkeiten mit zu installieren. Vor allem Modul Win32::OLE ist hierbei wichtig. Im Beispiel-Command weiter unten liegt perl unterhalb von nsclient im verzeichnis „extra“
Wenn perl installiert ist braucht man noch das plugin. Ich habe eins geschrieben, dass check_wmi_range.pl heißt und diverse Werte nach bestimmten Regeln abruft,auswertet und ausgibt. Es lässt sich auf hier von netways.org herunterladen
Da das Plugin aufgerufen werden möchte sollte man ein paar commands in die nsclient.ini eintragen.
Ein allgemeines Command zum aufruf von perl scripten sieht so aus:
call_perl=extra\Perl\bin\perl.exe -I extra\perl\lib -I extra\perl\site\lib $ARG1$
Der Aufruf von check_wmi_range.pl sieht dann folgendermaßen aus:
define command {
command_line $USER1$/check_nrpe -u -t 40 -H $HOSTADDRESS$ -c call_perl -a 'scripts/check_wmi_range.pl -w "$ARG1$" -c "$ARG2$" -C "$ARG3$" -o "$ARG4$" $ARG5$'
command_name win-wmi-range
}

Die Hilfe zum plugin lässt mit ./check_wmi_range.pl –help aufrufen oder hier nachlesen.

HELP
check_wmi_range.pl 0.55 - checks one wmi object per instance against a threshold
Options are:
  -c, --critical                  Enter the critical threshold
  -w, --warning                   Enter the warning threshold
  -C  --class                     Enter the WMI class
  -o  --object                    Enter the WMI object
  -e  --exclude                   Enter a regex to exclude instances
        to exclude more than one instance write -e "(instance1|instance2)"
  -i  -- include                  Enter a regex to include instances
        other Instances will be skipped
  -t  --no_Total                  hide the _Total instance
  -z  --zero                      hide zero values
  -s  --sleep                     run twice and sleep between the iterations <time to sleep>
  -I  --idle-contra-indicator     designed for proc_process. Check's if there's enough idle time left <threshold>
        It becomes critical if the real idle time of the last free core falls below threshold
  -n, --no-perf-data              no performance data
  -v  --verbose                   verbose mode
  -h, --help                      display this help and exit
      --usage                     display a short usage instruction
  -V, --version                   output version information and exit
Requirements:
 A fully qualified wmi String consists of \Class\Instance\Object\Value
 This plugin uses perl and DBD::WMI to get values from multiple WMI Instances for each object.
 A working WMI counter is for example Win32_PerfFormattedData_Tcpip_NetworkInterface\<InstanceName>\BytesTotalPersec
 In most cases you want to exclude the "_Total" instance ( -t).
Examples:
 Physical disktime:
  Class = Win32_PerfFormattedData_PerfDisk_PhysicalDisk
  Object = percentdisktime
  cmd: perl -w check_wmi_range.pl -w 10 -c 20 -C Win32_PerfFormattedData_PerfDisk_PhysicalDisk -o percentdisktime -t
 Interface Traffic:
  Class = Win32_PerfFormattedData_Tcpip_NetworkInterface
  Object = BytesTotalPersec
  cmd: perl -w check_wmi_range.pl -w 1000000 -c 1500000 -C Win32_PerfFormattedData_Tcpip_NetworkInterface -o BytesTotalPersec
 Process CPU usage:
  Class = Win32_PerfFormattedData_Perfproc_Process
  Object = PercentProcessorTime
  cmd: perl -w check_wmi_range.pl -w 10 -c 20 -C Win32_PerfFormattedData_Perfproc_Process -o PercentProcessorTime -t -e Idle -z -I 60
Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.