Exemplo n.º 1
0
        public async void CanInsertIntoInflux()
        {
            var config = new InfluxConfig(new Uri("http://influx:8086"), "mydb", "my_user", "my_pass");

            using (var writer = new InfluxWriter(config, "my-pc"))
                using (var client = new HttpClient())
                {
                    for (int attempts = 0; ; attempts++)
                    {
                        try
                        {
                            await writer.ReportMetrics(DateTime.Now, TestSensorCreator.Values());

                            var resp = await client.GetAsync(
                                "http://influx:8086/query?pretty=true&db=mydb&q=SELECT%20*%20FROM%20Temperature");

                            Assert.True(resp.IsSuccessStatusCode);
                            var content = await resp.Content.ReadAsStringAsync();

                            Assert.Contains("/intelcpu/0/temperature/0", content);
                            break;
                        }
                        catch (Exception ex)
                        {
                            if (attempts >= 10)
                            {
                                throw;
                            }

                            Thread.Sleep(TimeSpan.FromSeconds(1));
                        }
                    }
                }
        }
Exemplo n.º 2
0
        public async void CanInsertIntoPasswordLessInfluxdb()
        {
            var testContainersBuilder = new TestcontainersBuilder <TestcontainersContainer>()
                                        .WithDockerEndpoint(DockerUtils.DockerEndpoint())
                                        .WithImage("influxdb:1.8-alpine")
                                        .WithEnvironment("INFLUXDB_DB", "mydb")
                                        .WithEnvironment("INFLUXDB_USER", "my_user")
                                        .WithEnvironment("INFLUXDB_HTTP_AUTH_ENABLED", "false")
                                        .WithPortBinding(8086, assignRandomHostPort: true)
                                        .WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(8086));

            await using var container = testContainersBuilder.Build();
            await container.StartAsync();

            var baseUrl = $"http://{container.Hostname}:{container.GetMappedPublicPort(8086)}";
            var config  = new InfluxConfig(new Uri(baseUrl), "mydb", "my_user", null);

            using var writer = new InfluxWriter(config, "my-pc");
            using var client = new HttpClient();
            for (int attempts = 0;; attempts++)
            {
                try
                {
                    await writer.ReportMetrics(DateTime.Now, TestSensorCreator.Values());

                    var resp = await client.GetAsync(
                        $"{baseUrl}/query?pretty=true&db=mydb&q=SELECT%20*%20FROM%20Temperature");

                    Assert.True(resp.IsSuccessStatusCode);
                    var content = await resp.Content.ReadAsStringAsync();

                    Assert.Contains("/intelcpu/0/temperature/0", content);
                    break;
                }
                catch (Exception)
                {
                    if (attempts >= 10)
                    {
                        throw;
                    }

                    Thread.Sleep(TimeSpan.FromSeconds(1));
                }
            }
        }