Seite 1 von 1

Überwachung von Logdateien - Beispiel Subsonic

Verfasst: 5. Feb 2012, 20:35
von JoachimL
Hallo Martin,
ich hab seit kurzem Subsonic auf meinem Server, und mir gefällt vor allem der Jukebox Modus bei dem der WHS von einem Client (bei mir Android) ferngesteuert wird und den Ton an am WHS angeschlossene Lautsprecher abgibt. In dieser Betriebsart entsteht aber kaum CPU Last, kaum bis gar kein Netzwerkverkehr, sprich Lightsout schaltet mitten in der Musik immer wieder den WHS ab. Also hab ich nach Abhilfe gesucht..

Was einigermaßen funktioniert ist ins Protokoll von Subsonic zu sehen und zu prüfen ob es da einen aktuellen Eintrag dazu gibt. Im Moment verwende ich dazu eine regelmäßig eingeplante Aufgabe, die alle 5 Minuten läuft und das folgende macht:

Code: Alles auswählen

find "INFO JukeboxService" C:\subsonic\subsonic.log >ns.out
:no.txt enthält ein N gefolgt von CRLF
comp ns.out ns.last <no.txt
if errorlevel 1 goto err1
echo no change
del keepalive
goto :end
:err1
echo changed
copy /Y ns.out ns.last
copy /Y ns.out keepalive
:end
D.h. es wird nur geprüft - und das sehr lax - ob sich im Protokoll ein neuer Eintrag mit dem Muster "INFO JukeboxService" findet. Die Mängel der Lösung sind offensichtlich: längere Stücke werden nicht richtig erkannt, völlig unabhängig davon wie lange LO vor Standby wartet, entscheidend ist nur die Abtastfrequenz der Logdatei. Und wenn zwischen der letzten Änderung und dem Abtasten LO ausschaltet - Pech. Eine deutlich bessere Lösung wäre die Einträge viel häufiger zu parsen und direkt zu bestimmen wann das letzte Stück gestartet wurde. Aber auch dann hat man zwei Einstellungen - die Abtastfrequenz und LO. Richtig schick wäre wenn LO direkt Logfiles überwachen könnte, indem es selbst erkennt das das Logfiles geändert wurde, und das der hinzugefügte Text auf ein Muster passt. Das wäre dann so zu behandeln wie ein Netzwerkspike und der entsprechende Timer neu zu starten.
Ich kann mir gut vorstellen das diese Form der Überwachung auch für ganz andere Dienste prima passen würde.
Gruß Joachim

P.S. Für alle die keinen Sound auf dem WHS haben: die Lösung zu RDP vs. lokalem Sound findet sich in http://social.technet.microsoft.com/For ... f=required bzw. viewtopic.php?f=74&t=14959 - jedenfalls für mich passt das.

Re: Überwachung von Logdateien - Beispiel Subsonic

Verfasst: 6. Feb 2012, 15:26
von Martin
Danke für den Vorschlag, ist auf der Wunschliste.
Kannst du mir mal so ein Logfile schicken?

Gruß
Martin

Re: Überwachung von Logdateien - Beispiel Subsonic

Verfasst: 6. Feb 2012, 18:27
von JoachimL
Martin hat geschrieben:Danke für den Vorschlag, ist auf der Wunschliste.
Kannst du mir mal so ein Logfile schicken?

Gruß
Martin
Aber klar. Hier ein Beispiel:

Code: Alles auswählen

[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) libswscale 2. 0. 0 / 2. 0. 0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) libpostproc 51. 2. 0 / 51. 2. 0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) [mp3 @ 02039F20] max_analyze_duration 5000000 reached at 5015510 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Input #0, mp3, from 'E:\ServerFolders\Musik\Chris deBurgh\The Getaway\Chris de Burgh - Borderline.mp3': 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Metadata: 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album_artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album : The Getaway 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) title : Borderline 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) track : 08 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) genre : Pop 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) publisher : Universal International 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) TLEN : 281613 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) composer : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) date : 1982 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Duration: 00:04:41.67, start: 0.000000, bitrate: 192 kb/s 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 192 kb/s 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Output #0, au, to 'pipe:': 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Metadata: 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album_artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album : The Getaway 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) title : Borderline 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) track : 08 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) genre : Pop 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) publisher : Universal International 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) TLEN : 281613 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) composer : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) date : 1982 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) encoder : Lavf53.6.0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream #0.0: Audio: pcm_s16be, 44100 Hz, stereo, s16, 1411 kb/s 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream mapping: 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream #0.0 -> #0.0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Press [q] to stop, [?] for help 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) size= 48524kB time=00:04:41.67 bitrate=1411.2kbits/s  
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg)  
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) video:0kB audio:48524kB global headers:0kB muxing overhead 0.000048% 
[2/4/12 12:02:06 PM CET] DEBUG JukeboxService Closed line com.sun.media.sound.DirectAudioDevice$DirectSDL@2130c2 
[2/4/12 12:02:06 PM CET] INFO JukeboxService Joachim stopping jukebox for "The Getaway\Chris de Burgh - Borderline.mp3" 
[2/4/12 12:02:06 PM CET] DEBUG TranscodeInputStream Starting transcoder: [c:\subsonic\transcode\ffmpeg] [-ss] [0] [-i] [E:\ServerFolders\Musik\Chris deBurgh\The Getaway\Chris de Burgh - Where Peaceful Waters Flow.mp3] [-v] [0] [-f] [au] [-]  
[2/4/12 12:02:07 PM CET] DEBUG JukeboxService Opened line com.sun.media.sound.DirectAudioDevice$DirectSDL@a1fdd8 
[2/4/12 12:02:07 PM CET] INFO JukeboxService Joachim starting jukebox for "The Getaway\Chris de Burgh - Where Peaceful Waters Flow.mp3" 
[2/4/12 12:10:46 PM CET] DEBUG JukeboxService Closed line com.sun.media.sound.DirectAudioDevice$DirectSDL@a1fdd8 
[2/4/12 12:10:46 PM CET] INFO JukeboxService Joachim stopping jukebox for "The Getaway\Chris de Burgh - Where Peaceful Waters Flow.mp3" 
[2/4/12 12:10:46 PM CET] DEBUG TranscodeInputStream Starting transcoder: [c:\subsonic\transcode\ffmpeg] [-ss] [0] [-i] [E:\ServerFolders\Musik\Compilations\NRJ Music Awards 2012\Angelina Jolie & Brad Pitt RC Moments 2009.mp3] [-v] [0] [-f] [au] [-]  
[2/4/12 12:10:46 PM CET] DEBUG JukeboxService Opened line com.sun.media.sound.DirectAudioDevice$DirectSDL@1af78ce 
[2/4/12 12:10:46 PM CET] INFO JukeboxService Joachim starting jukebox for "NRJ Music Awards 2012\Angelina Jolie & Brad Pitt RC Moments 2009.mp3" 
[2/4/12 12:13:10 PM CET] INFO VersionService Resolved local Subsonic version to: 4.6 
[2/4/12 12:13:11 PM CET] INFO VersionService Resolved latest Subsonic final version to: 4.6 
[2/4/12 12:13:11 PM CET] INFO VersionService Resolved latest Subsonic beta version to: 4.6.beta2 
Da steht natürlich auch alles mögliche drin was in keinem Zusammenhang mit dem Jukeboxservice steht, z.B. dass der Index neu aufgebaut wird/wurde. Also sind nur bestimmte Einträge interessant. Die stopping jukebox Meldung kommt leider oft erst viel viel später, ist also nicht wirklich geeignet.
Ideal wäre vermutlich wenn man einen regulären Ausdruck für die Dateinamen (bei Subsonic "c:\\subsonic\\subsonic\.log") und einen für relevante Einträge ("INFO JukeboxService*starting jukebox") hätte. Vielleicht können wir hier im Thread Beispiele sammeln?
Danke & Gruß Joachim