Send "initialized" message on startup.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.IO;
|
||||
using System.Net.Sockets;
|
||||
using System.Reflection;
|
||||
using NLog;
|
||||
using NLog.Config;
|
||||
using NLog.Targets;
|
||||
@@ -10,6 +11,7 @@ using System.Text;
|
||||
using TimberWinR.Inputs;
|
||||
using TimberWinR.Outputs;
|
||||
using System.Threading;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace TimberWinR
|
||||
{
|
||||
@@ -190,9 +192,38 @@ namespace TimberWinR
|
||||
foreach (var output in Outputs)
|
||||
output.Connect(elistner);
|
||||
}
|
||||
|
||||
var computerName = System.Environment.MachineName + "." +
|
||||
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
|
||||
@"SYSTEM\CurrentControlSet\services\Tcpip\Parameters")
|
||||
.GetValue("Domain", "")
|
||||
.ToString();
|
||||
|
||||
foreach (var output in Outputs)
|
||||
{
|
||||
var name = Assembly.GetExecutingAssembly().GetName();
|
||||
JObject json = new JObject(
|
||||
new JProperty("TimberWinR",
|
||||
new JObject(
|
||||
new JProperty("version", GetAssemblyByName("TimberWinR.ServiceHost").GetName().Version.ToString()),
|
||||
new JProperty("host", computerName),
|
||||
new JProperty("output", output.Name),
|
||||
new JProperty("initialized", DateTime.UtcNow)
|
||||
)));
|
||||
output.Startup(json);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private Assembly GetAssemblyByName(string name)
|
||||
{
|
||||
return AppDomain.CurrentDomain.GetAssemblies().
|
||||
SingleOrDefault(assembly => assembly.GetName().Name == name);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Creates the default <see cref="FileTarget"/>.
|
||||
/// </summary>
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace TimberWinR.Outputs
|
||||
private long _errorCount;
|
||||
|
||||
public ElasticsearchOutput(TimberWinR.Manager manager, Parser.ElasticsearchOutput eo, CancellationToken cancelToken)
|
||||
: base(cancelToken)
|
||||
: base(cancelToken, "Elasticsearch")
|
||||
{
|
||||
_sentMessages = 0;
|
||||
_errorCount = 0;
|
||||
|
||||
@@ -12,10 +12,12 @@ namespace TimberWinR.Outputs
|
||||
{
|
||||
public CancellationToken CancelToken { get; private set; }
|
||||
private List<InputListener> _inputs;
|
||||
|
||||
public OutputSender(CancellationToken cancelToken)
|
||||
public string Name { get; set; }
|
||||
|
||||
public OutputSender(CancellationToken cancelToken, string name)
|
||||
{
|
||||
CancelToken = cancelToken;
|
||||
Name = name;
|
||||
_inputs = new List<InputListener>();
|
||||
}
|
||||
|
||||
@@ -24,6 +26,11 @@ namespace TimberWinR.Outputs
|
||||
listener.OnMessageRecieved += MessageReceivedHandler;
|
||||
}
|
||||
|
||||
public void Startup(JObject json)
|
||||
{
|
||||
MessageReceivedHandler(json);
|
||||
}
|
||||
|
||||
public abstract JObject ToJson();
|
||||
protected abstract void MessageReceivedHandler(JObject jsonMessage);
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ namespace TimberWinR.Outputs
|
||||
}
|
||||
|
||||
public RedisOutput(TimberWinR.Manager manager, Parser.RedisOutput ro, CancellationToken cancelToken)
|
||||
: base(cancelToken)
|
||||
: base(cancelToken, "Redis")
|
||||
{
|
||||
_redisDepth = 0;
|
||||
_batchCount = ro.BatchCount;
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace TimberWinR.Outputs
|
||||
private long _sentMessages;
|
||||
|
||||
public StdoutOutput(TimberWinR.Manager manager, Parser.StdoutOutput eo, CancellationToken cancelToken)
|
||||
: base(cancelToken)
|
||||
: base(cancelToken, "Stdout")
|
||||
{
|
||||
_sentMessages = 0;
|
||||
_manager = manager;
|
||||
|
||||
Reference in New Issue
Block a user