Plug-in to any provider of lines
RolandPheasant opened this issue · comments
There have been some very interesting requests for enabling Tail Blazer to be the visualisation of external data sources. So far there have been requests for:
#47 Tx Support
#44 Open pipe instead of file
#20 SSH/SFTP Support for Tailing Remote Files
Also but not raised, plug-ins for the following has been asked for:
- Local instance of Elastic Search
- Windows event viewer logs
- TCP and UDP (Log4net, NLog, log4j enable this)
To account for these requests I have completed some major re-architecting and provided some very simple plug-in interfaces which if implemented can be used as a source of lines.
The plug in observable is:
IObservable<ILineProvider>
And ILineProvider
is:
public interface ILineProvider
{
bool IsEmpty { get; }
int Count { get; }
IEnumerable<Line> ReadLines(ScrollRequest scroll);
}
With a little tweaking of my code I will be able to drop IsEmpty
and Count
as these can be derived from the results.
If the connectivity to each of these can be driven from within Tail Blazer then I see no reason why I couldn't allow external plug-ins for any of these providers + more
Has anyone got any more ideas, or would anyone like to help?
@thoemmi I have updated the list in the original comment
Many of our logs get pushed to Append Blobs in Azure Storage. It would be ideal having "appendages" updated straight to Tail Blazer.
I use powershell to tail logs across many servers with a command like this:
icm -comp $servers -cred $me -script { gc some.log -last 1 -wait }
It would be great to pipe this to TailBlazer - ideally it would create tabs for each distinct $_.PSComputerName
@gfody great suggestion
Thank you, TailBlazer
is great tool!
So I've created EtwStream
https://github.com/neuecc/EtwStream as logging Event Tracing for Windows.
It is similar to Tx
but it features more in Realtime.
If supports plug-in, I'll add EtwStram for TailBlazer.
By the way, ETW has structured log events.
Currently I'm using LINQPad for dump ETW structured events.
If TailBlazer supports keeping structure, more good.
If do it, interface will be changed, IEnumerable<Column[]>
?
@neuecc etw looks excellent and I see no reason it could not be plugged in.
I will take a more detailed look and get back to you.
This would be a very useful feature for streaming logs from cloudfoundry as well. 👍
I'm not sure if this is the appropriate place for this, but I'd like to vote for #20. Currently, I have to mount a remote file system via Dokan SSHFS, and then tail files through that mount, so a more direct path would be appreciated.
+1 for #20
How can I help make this happen?
@Roritharr are you willing to contribute? I would love some help. If you can contact me here https://github.com/RolandPheasant/TailBlazer