public InfluxDbClientAutoVersion(InfluxDbClientConfiguration influxDbClientConfiguration) { _influxDbClient = new InfluxDbClientBase(influxDbClientConfiguration); var errorHandlers = new List <ApiResponseErrorHandlingDelegate>(); // TODO: needs testing - potentially bad if it's going to ping for every request var result = _influxDbClient.Ping(errorHandlers).Result; var databaseVersion = result.Body; if (databaseVersion.StartsWith("0.9")) { switch (databaseVersion) { case "0.9.2": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; case "0.9.5": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; case "0.9.6": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; } } else { throw new InvalidOperationException(String.Format("Version {0} is not supported by the Auto configuration.", databaseVersion)); } }
internal InfluxDb(InfluxDbClientConfiguration influxDbClientConfiguration) { switch (influxDbClientConfiguration.InfluxVersion) { case InfluxVersion.Auto: _influxDbClient = new InfluxDbClientAutoVersion(influxDbClientConfiguration); break; case InfluxVersion.v012x: _influxDbClient = new InfluxDbClientV012x(influxDbClientConfiguration); break; case InfluxVersion.v011x: _influxDbClient = new InfluxDbClientV011x(influxDbClientConfiguration); break; case InfluxVersion.v010x: _influxDbClient = new InfluxDbClientV010x(influxDbClientConfiguration); break; case InfluxVersion.v09x: _influxDbClient = new InfluxDbClientBase(influxDbClientConfiguration); break; case InfluxVersion.v096: _influxDbClient = new InfluxDbClientV096(influxDbClientConfiguration); break; case InfluxVersion.v095: _influxDbClient = new InfluxDbClientV095(influxDbClientConfiguration); break; case InfluxVersion.v092: _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; case InfluxVersion.v08x: throw new NotImplementedException(); default: throw new ArgumentOutOfRangeException("influxDbClientConfiguration", String.Format("Unknown version {0}.", influxDbClientConfiguration.InfluxVersion)); } }
protected override async void Append(LoggingEvent loggingEvent) { SyslogSeverity severity = Log4netSyslogSeverityConvertor.GetSyslogSeverity(loggingEvent.Level); InfluxDbClientConfiguration config = new InfluxDbClientConfiguration( new UriBuilder(Scheme, Host, RemotePort).Uri, string.Empty, string.Empty, InfluxData.Net.Common.Enums.InfluxDbVersion.Latest, InfluxData.Net.Common.Enums.QueryLocation.FormData, HttpClient); InfluxData.Net.InfluxDb.InfluxDbClient client = new InfluxData.Net.InfluxDb.InfluxDbClient(config); var fields = new Dictionary <string, object>(); fields.Add("facility_code", 16); fields.Add("message", loggingEvent.MessageObject); fields.Add("procid", "1234"); fields.Add("severity_code", severity.SeverityCode); fields.Add("timestamp", DateTimeOffset.Now.ToUnixTimeMilliseconds() * 1000000); fields.Add("version", 1); var tags = new Dictionary <string, object>(); AppName.FormatValue(loggingEvent); tags.Add("appname", AppName.Value); tags.Add("facility", Facility); tags.Add("host", Environment.MachineName); tags.Add("hostname", Environment.MachineName); tags.Add("severity", severity.Severity); try { var apiResp = await client.Client.WriteAsync(new InfluxData.Net.InfluxDb.Models.Point() { Name = "syslog", Fields = fields, Tags = tags, Timestamp = DateTimeOffset.Now.UtcDateTime }, "_internal" ); if (!apiResp.Success) { base.ErrorHandler.Error($"{nameof(InfluxAppender)} Write - {apiResp.Body}"); } } catch (Exception ex) { base.ErrorHandler.Error($"{nameof(InfluxAppender)} Emit - {ex.Message}"); } }
public InfluxDbClientAutoVersion(InfluxDbClientConfiguration influxDbClientConfiguration) { _influxDbClient = new InfluxDbClientBase(influxDbClientConfiguration); var errorHandlers = new List <ApiResponseErrorHandlingDelegate>(); //NOTE: Only performs ping when the client is connected. (Do not use multiple connections with the "Client Auto Version" setting.) var result = _influxDbClient.Ping(errorHandlers).Result; var databaseVersion = result.Body; if (databaseVersion.StartsWith("1.1.")) { _influxDbClient = new InfluxDbClientV013x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.13.")) { _influxDbClient = new InfluxDbClientV013x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.12.")) { _influxDbClient = new InfluxDbClientV012x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.11.")) { _influxDbClient = new InfluxDbClientV011x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.10.")) { _influxDbClient = new InfluxDbClientV010x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.9.")) { switch (databaseVersion) { case "0.9.2": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; case "0.9.5": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; case "0.9.6": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; } } else { _influxDbClient = new InfluxDbClientV0x(influxDbClientConfiguration); } }
protected override void SendBuffer(LoggingEvent[] events) { InfluxDbClientConfiguration config = new InfluxDbClientConfiguration( new UriBuilder(Scheme, Host, RemotePort).Uri, string.Empty, string.Empty, InfluxData.Net.Common.Enums.InfluxDbVersion.Latest, InfluxData.Net.Common.Enums.QueryLocation.FormData, HttpClient); InfluxData.Net.InfluxDb.InfluxDbClient client = new InfluxData.Net.InfluxDb.InfluxDbClient(config); foreach (var loggingEvent in events) { SyslogSeverity severity = Log4netSyslogSeverityConvertor.GetSyslogSeverity(loggingEvent.Level); var fields = new Dictionary <string, object>(); fields.Add("facility_code", 16); fields.Add("message", loggingEvent.MessageObject); fields.Add("procid", "1234"); fields.Add("severity_code", severity.SeverityCode); fields.Add("timestamp", UnixTimestampFromDateTime(loggingEvent.TimeStamp)); fields.Add("version", 1); var tags = new Dictionary <string, object>(); AppName.FormatValue(loggingEvent); tags.Add("appname", AppName.Value); tags.Add("facility", Facility); tags.Add("host", Environment.MachineName); tags.Add("hostname", Environment.MachineName); tags.Add("severity", severity.Severity); } List <InfluxData.Net.InfluxDb.Models.Point> points = new List <InfluxData.Net.InfluxDb.Models.Point>(); try { var apiResp = Task.Run(() => client.Client.WriteAsync(points, "_internal")).GetAwaiter().GetResult(); if (!apiResp.Success) { base.ErrorHandler.Error($"{nameof(InfluxAppender)} Write - {apiResp.Body}"); } } catch (Exception ex) { base.ErrorHandler.Error($"{nameof(InfluxAppender)} Emit - {ex.Message}"); } }
public InfluxDbClientAutoVersion(InfluxDbClientConfiguration influxDbClientConfiguration) { _influxDbClient = new InfluxDbClientBase(influxDbClientConfiguration); var errorHandlers = new List <ApiResponseErrorHandlingDelegate>(); // TODO: needs testing - potentially bad if it's going to ping for every request var result = _influxDbClient.Ping(errorHandlers).Result; var databaseVersion = result.Body; if (databaseVersion.StartsWith("0.13.")) { _influxDbClient = new InfluxDbClientV013x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.12.")) { _influxDbClient = new InfluxDbClientV012x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.11.")) { _influxDbClient = new InfluxDbClientV011x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.10.")) { _influxDbClient = new InfluxDbClientV010x(influxDbClientConfiguration); } else if (databaseVersion.StartsWith("0.9.")) { switch (databaseVersion) { case "0.9.2": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; case "0.9.5": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; case "0.9.6": _influxDbClient = new InfluxDbClientV092(influxDbClientConfiguration); break; } } else { _influxDbClient = new InfluxDbClientV0x(influxDbClientConfiguration); } }
public InfluxDbClientV012x(InfluxDbClientConfiguration configuration) : base(configuration) { }
public InfluxDbClientBase(InfluxDbClientConfiguration configuration) { _configuration = configuration; }