Exemple #1
0
        internal InfluxDb(InfluxDbClientConfiguration influxDbClientConfiguration)
        {
            switch (influxDbClientConfiguration.InfluxVersion)
            {
            case InfluxVersion.Auto:
                _influxDbClient = new InfluxDbClientAutoVersion(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));
            }
        }
Exemple #2
0
        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));
            }
        }
Exemple #3
0
 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));
     }
 }
        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));
            }
        }
Exemple #5
0
 /// <summary>
 /// Creates a new instance of the observer.
 /// </summary>
 /// <param name="poller">The poller.</param>
 /// <param name="client">The InfluxDB client.</param>
 /// <param name="options">The observer options.</param>
 public InfluxDbObserver(IMetricPoller poller, IInfluxDbClient client, InfluxDbObserverOptions options)
 {
     this.poller  = poller ?? throw new ArgumentNullException(nameof(poller));
     this.client  = client ?? throw new ArgumentNullException(nameof(client));
     this.options = options ?? throw new ArgumentNullException(nameof(options));
     poller.RegisterObserver(Update);
 }
Exemple #6
0
        /// <summary>
        /// 配置数据库连接
        /// </summary>
        /// <returns></returns>
        public bool ShouldConnectInfluxDb()
        {
            try
            {
                //TODO: 使这个可写入的,以便它可以用不同的数据从测试服务器执行
                InfluxDbVersion influxVersion;
                if (!Enum.TryParse(Version, out influxVersion))
                {
                    influxVersion = InfluxDbVersion.v_1_3;
                }

                _influx = new InfluxDbClient(
                    Uri,
                    User,
                    Password,
                    influxVersion, QueryLocation.FormData);

                //如果不存在此数据库,则进行创建,否则不创建
                if (!ExistDatabases(_dbName))
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                DisplayException(new Exception("ERR10002" + ex.Message));
            }

            return(false);
        }
        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);
            }
        }
        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 QueuedInfluxDbProcessor(IInfluxDbClient client, InfluxDbMeasurementMappings dbMappings)
        {
            Ensure.That(client, nameof(client)).IsNotNull();
            Ensure.That(dbMappings, nameof(dbMappings)).IsNotNull();

            _worker = Task.Run(async() =>
            {
                while (!_cancellationTokenSource.IsCancellationRequested)
                {
                    SpinWait.SpinUntil(() => !_queue.IsEmpty);

                    foreach (var measurement in CheckoutMeasurements())
                    {
                        var databaseInfo = dbMappings.GetDbTargetInfoOrDefault(measurement);
                        await client.WriteAsync(
                            databaseInfo.DatabaseName,
                            measurement.Points.ToInfluxPoints(),
                            databaseInfo.WriteOptions).ForAwait();
                    }
                }
            }, _cancellationTokenSource.Token);
        }
 protected IntegrationFixtureBase(string influxDbEndpointUriKey, InfluxDbVersion influxDbVersion)
     : base("FakeInfluxDb", influxDbEndpointUriKey, influxDbVersion)
 {
     this.Sut = base.InfluxDbClient;
     this.Sut.Should().NotBeNull();
 }
 internal InfluxDb(IInfluxDbClient influxDbClient)
 {
     _influxDbClient = influxDbClient;
 }
Exemple #12
0
 internal InfluxDb(IInfluxDbClient influxDbClient)
 {
     _influxDbClient = influxDbClient;
 }
Exemple #13
0
 public InfluxDbRepository(IInfluxDbClient dbClient, SolarConfig config)
 {
     _dbClient = dbClient ?? throw new ArgumentNullException(nameof(dbClient));
     _config   = config ?? throw new ArgumentNullException(nameof(config));
 }
Exemple #14
0
 public IntegrationFixture() : base("FakeInfluxDb")
 {
     this.Sut = base.InfluxDbClient;
     this.Sut.Should().NotBeNull();
 }