using System; using InfluxDB.Client.Flux; namespace OutputServiceTSDB.InfluxDB { public class InfluxReader { private readonly char[] Token = "".ToCharArray(); public InfluxReader() { // // TODO: Add constructor logic here // } public MeasurementObject Read() { var fluxClient = FluxClientFactory.Create("http://localhost:8086/"); var fluxQuery = "from(bucket: \"telegraf\")\n" + " |> filter(fn: (r) => (r[\"_measurement\"] == \"cpu\" AND r[\"_field\"] == \"usage_system\"))" + " |> range(start: -1d)" + " |> sample(n: 5, pos: 1)"; fluxClient.QueryAsync(fluxQuery, (cancellable, record) => { // process the flux query records Console.WriteLine(record.GetTime() + ": " + record.GetValue()); }, (error) => { // error handling while processing result Console.WriteLine(error.ToString()); }, () => { // on complete Console.WriteLine("Query completed"); }).GetAwaiter().GetResult(); return new MeasurementObject { DeviceID = "south", Probability = 0.5, Time = DateTime.UtcNow }; } } }