This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.vs/slnx.sqlite
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.vs/slnx.sqlite
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -26,7 +26,7 @@ namespace OutputServiceTSDB.Controllers
 | 
			
		||||
            var rng = new Random();
 | 
			
		||||
            return Enumerable.Range(1, 5).Select(index => new ApiObject
 | 
			
		||||
            {
 | 
			
		||||
                Date = DateTime.Now.AddDays(index)
 | 
			
		||||
                Probability = 0.5
 | 
			
		||||
            })
 | 
			
		||||
            .ToArray();
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										45
									
								
								InfluxDB/InfluxReader.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								InfluxDB/InfluxReader.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
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 };
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								InfluxDB/InfluxWriter.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								InfluxDB/InfluxWriter.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
using System;
 | 
			
		||||
using InfluxDB.Client;
 | 
			
		||||
using InfluxDB.Client.Api.Domain;
 | 
			
		||||
using InfluxDB.Client.Core;
 | 
			
		||||
using InfluxDB.Client.Writes;
 | 
			
		||||
 | 
			
		||||
namespace OutputServiceTSDB.InfluxDB
 | 
			
		||||
{
 | 
			
		||||
    public class InfluxWriter
 | 
			
		||||
    {
 | 
			
		||||
        private readonly char[] Token = "".ToCharArray();
 | 
			
		||||
 | 
			
		||||
        public void Write(MeasurementObject measurementObject)
 | 
			
		||||
        {
 | 
			
		||||
            var influxDBClient = InfluxDBClientFactory.Create("http://localhost:9999", Token);
 | 
			
		||||
 | 
			
		||||
            using (var writeApi = influxDBClient.GetWriteApi())
 | 
			
		||||
            {
 | 
			
		||||
                var measurement = new MeasurementObject { DeviceID = "south", Probability = 0.5, Time = DateTime.UtcNow };
 | 
			
		||||
                writeApi.WriteMeasurement("bucket_name", "org_id", WritePrecision.Ns, measurement);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            influxDBClient.Dispose();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								InfluxDB/MeasurementObject.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								InfluxDB/MeasurementObject.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
using System;
 | 
			
		||||
using InfluxDB.Client;
 | 
			
		||||
using InfluxDB.Client.Api.Domain;
 | 
			
		||||
using InfluxDB.Client.Core;
 | 
			
		||||
using InfluxDB.Client.Writes;
 | 
			
		||||
 | 
			
		||||
namespace OutputServiceTSDB.InfluxDB
 | 
			
		||||
{
 | 
			
		||||
    [Measurement("temperature")]
 | 
			
		||||
    public class MeasurementObject
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        [Column("deviceid", IsTag = true)]
 | 
			
		||||
        public string DeviceID { get; set; }
 | 
			
		||||
 | 
			
		||||
        private double _probability;
 | 
			
		||||
 | 
			
		||||
        [Column("probability")]
 | 
			
		||||
        public double Probability
 | 
			
		||||
        {
 | 
			
		||||
            get => _probability;
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                if (value > 1.0 || value < 0.0)
 | 
			
		||||
                    throw new ArgumentOutOfRangeException(
 | 
			
		||||
                   $"{nameof(value)} must be between 0 and 1.");
 | 
			
		||||
                else
 | 
			
		||||
                    _probability = value;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Column(IsTimestamp = true)] public DateTime Time;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -4,12 +4,20 @@ namespace OutputServiceTSDB.Models
 | 
			
		||||
{
 | 
			
		||||
    public class ApiObject
 | 
			
		||||
    {
 | 
			
		||||
        public DateTime Date { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string Tag { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool Decision { get; set; }
 | 
			
		||||
        private double _probability;
 | 
			
		||||
 | 
			
		||||
        public double Confidence { get; set; }
 | 
			
		||||
        public double Probability
 | 
			
		||||
        { get => _probability;
 | 
			
		||||
            set
 | 
			
		||||
            {
 | 
			
		||||
                if (value > 1.0 || value < 0.0)
 | 
			
		||||
                    throw new ArgumentOutOfRangeException(
 | 
			
		||||
                   $"{nameof(value)} must be between 0 and 1.");
 | 
			
		||||
                else
 | 
			
		||||
                    _probability = value;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@
 | 
			
		||||
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="InfluxDB.Client" Version="1.6.0" />
 | 
			
		||||
    <PackageReference Include="InfluxDB.Client.Flux" Version="1.6.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
 | 
			
		||||
    <PackageReference Include="RabbitMQ.Client" Version="5.1.2" />
 | 
			
		||||
    <PackageReference Include="Sentry" Version="2.1.1" />
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -42,6 +42,10 @@
 | 
			
		||||
              "target": "Package",
 | 
			
		||||
              "version": "[1.6.0, )"
 | 
			
		||||
            },
 | 
			
		||||
            "InfluxDB.Client.Flux": {
 | 
			
		||||
              "target": "Package",
 | 
			
		||||
              "version": "[*, )"
 | 
			
		||||
            },
 | 
			
		||||
            "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": {
 | 
			
		||||
              "target": "Package",
 | 
			
		||||
              "version": "[1.10.8, )"
 | 
			
		||||
@@ -56,7 +60,7 @@
 | 
			
		||||
            },
 | 
			
		||||
            "Sentry.AspNetCore": {
 | 
			
		||||
              "target": "Package",
 | 
			
		||||
              "version": "[*, )"
 | 
			
		||||
              "version": "[2.1.1, )"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "imports": [
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -48,6 +48,18 @@
 | 
			
		||||
          "lib/netstandard2.0/InfluxDB.Client.Core.dll": {}
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "InfluxDB.Client.Flux/1.6.0": {
 | 
			
		||||
        "type": "package",
 | 
			
		||||
        "dependencies": {
 | 
			
		||||
          "InfluxDB.Client.Core": "1.6.0"
 | 
			
		||||
        },
 | 
			
		||||
        "compile": {
 | 
			
		||||
          "lib/netstandard2.0/InfluxDB.Client.Flux.dll": {}
 | 
			
		||||
        },
 | 
			
		||||
        "runtime": {
 | 
			
		||||
          "lib/netstandard2.0/InfluxDB.Client.Flux.dll": {}
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "JsonSubTypes/1.5.2": {
 | 
			
		||||
        "type": "package",
 | 
			
		||||
        "dependencies": {
 | 
			
		||||
@@ -1662,6 +1674,19 @@
 | 
			
		||||
        "lib/netstandard2.0/InfluxDB.Client.Core.dll"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "InfluxDB.Client.Flux/1.6.0": {
 | 
			
		||||
      "sha512": "Fjs5SOlPfAyjSnWkPDxCluDO8t2nIlECrUMdWKZ7Pdtn9mr81kizLzBPIiRw4odQ4zWJJrfSa1v0eQ998isMQw==",
 | 
			
		||||
      "type": "package",
 | 
			
		||||
      "path": "influxdb.client.flux/1.6.0",
 | 
			
		||||
      "files": [
 | 
			
		||||
        ".nupkg.metadata",
 | 
			
		||||
        ".signature.p7s",
 | 
			
		||||
        "influxdata.jpg",
 | 
			
		||||
        "influxdb.client.flux.1.6.0.nupkg.sha512",
 | 
			
		||||
        "influxdb.client.flux.nuspec",
 | 
			
		||||
        "lib/netstandard2.0/InfluxDB.Client.Flux.dll"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "JsonSubTypes/1.5.2": {
 | 
			
		||||
      "sha512": "Lu1fbpVYMDl45cz8Y0cH7MTjIN0dDhjg2srkbIJ7fjHvGepfzgKCf7WC5qp2vCxVZfNDeAcS1YAJZELhUFVPsw==",
 | 
			
		||||
      "type": "package",
 | 
			
		||||
@@ -5731,10 +5756,11 @@
 | 
			
		||||
  "projectFileDependencyGroups": {
 | 
			
		||||
    ".NETCoreApp,Version=v3.1": [
 | 
			
		||||
      "InfluxDB.Client >= 1.6.0",
 | 
			
		||||
      "InfluxDB.Client.Flux >= *",
 | 
			
		||||
      "Microsoft.VisualStudio.Azure.Containers.Tools.Targets >= 1.10.8",
 | 
			
		||||
      "RabbitMQ.Client >= 5.1.2",
 | 
			
		||||
      "Sentry >= 2.1.1",
 | 
			
		||||
      "Sentry.AspNetCore >= *"
 | 
			
		||||
      "Sentry.AspNetCore >= 2.1.1"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "packageFolders": {
 | 
			
		||||
@@ -5778,6 +5804,10 @@
 | 
			
		||||
            "target": "Package",
 | 
			
		||||
            "version": "[1.6.0, )"
 | 
			
		||||
          },
 | 
			
		||||
          "InfluxDB.Client.Flux": {
 | 
			
		||||
            "target": "Package",
 | 
			
		||||
            "version": "[*, )"
 | 
			
		||||
          },
 | 
			
		||||
          "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": {
 | 
			
		||||
            "target": "Package",
 | 
			
		||||
            "version": "[1.10.8, )"
 | 
			
		||||
@@ -5792,7 +5822,7 @@
 | 
			
		||||
          },
 | 
			
		||||
          "Sentry.AspNetCore": {
 | 
			
		||||
            "target": "Package",
 | 
			
		||||
            "version": "[*, )"
 | 
			
		||||
            "version": "[2.1.1, )"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "imports": [
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,13 @@
 | 
			
		||||
{
 | 
			
		||||
  "version": 2,
 | 
			
		||||
  "dgSpecHash": "a6+SV/54J2AISt6d5A/IXuu4A94oTK197hAEYN1M6b9DqJet88JoTE6GeqofcnlF2D3CSw/jUx02OM/VvrU/sw==",
 | 
			
		||||
  "dgSpecHash": "8IABVsx3GAd39YhSptWgfKeaISUbm+vl7fpUGCskZAdvjzJhPj6u3gnGlscTFyKDBbXqEG6VP54P6NIFIudv7w==",
 | 
			
		||||
  "success": true,
 | 
			
		||||
  "projectFilePath": "C:\\Users\\Torma Kristóf\\source\\repos\\output-service-tsdb\\OutputServiceTSDB.csproj",
 | 
			
		||||
  "expectedPackageFiles": [
 | 
			
		||||
    "C:\\Users\\Torma Kristóf\\.nuget\\packages\\csvhelper\\8.1.1\\csvhelper.8.1.1.nupkg.sha512",
 | 
			
		||||
    "C:\\Users\\Torma Kristóf\\.nuget\\packages\\influxdb.client\\1.6.0\\influxdb.client.1.6.0.nupkg.sha512",
 | 
			
		||||
    "C:\\Users\\Torma Kristóf\\.nuget\\packages\\influxdb.client.core\\1.6.0\\influxdb.client.core.1.6.0.nupkg.sha512",
 | 
			
		||||
    "C:\\Users\\Torma Kristóf\\.nuget\\packages\\influxdb.client.flux\\1.6.0\\influxdb.client.flux.1.6.0.nupkg.sha512",
 | 
			
		||||
    "C:\\Users\\Torma Kristóf\\.nuget\\packages\\jsonsubtypes\\1.5.2\\jsonsubtypes.1.5.2.nupkg.sha512",
 | 
			
		||||
    "C:\\Users\\Torma Kristóf\\.nuget\\packages\\microsoft.csharp\\4.4.0\\microsoft.csharp.4.4.0.nupkg.sha512",
 | 
			
		||||
    "C:\\Users\\Torma Kristóf\\.nuget\\packages\\microsoft.extensions.configuration\\3.0.0\\microsoft.extensions.configuration.3.0.0.nupkg.sha512",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user