public void ToDictionary_contains_all_metrics_and_properties() { var now = DateTimeOffset.Now; var metric = new MetricLog("test", 1) { Count = 1, Max = 1, Min = 1, Remark = "remark", StandardDeviation = 1 }; metric.Properties["test"] = "test"; metric.Properties["null"] = null; metric.Properties["timestamp"] = now; var result = metric.ToDictionary(); Assert.Equal("test", result["name"].ToString()); Assert.Equal(1.0, (double)result["value"]); Assert.Equal(1, (int)result["count"]); Assert.Equal(1.0, (double)result["min"]); Assert.Equal(1.0, (double)result["max"]); Assert.Equal(1.0, (double)result["standardDeviation"]); Assert.Equal("remark", result["remark"].ToString()); Assert.Equal("test", result["test"].ToString()); Assert.Equal(null, result["null"]); Assert.Equal(now, (DateTimeOffset)result["timestamp"]); }
public void Creates_contains_all_metrics_and_properties() { var now = DateTimeOffset.Now; var properties = new Dictionary <string, object> { { "LogType", "MetricLog" }, { "name", "test" }, { "value", 1.0 }, { "count", 1 }, { "min", 1.0 }, { "max", 1.0 }, { "standardDeviation", 1.0 }, { "remark", "remark" }, { "test", "test" }, { "null", null }, { "timestamp", now }, }; var result = MetricLog.Create(properties); Assert.Equal("test", result.Name); Assert.Equal(1.0, result.Value); Assert.Equal(1, result.Count); Assert.Equal(1.0, result.Min); Assert.Equal(1.0, result.Max); Assert.Equal(1.0, result.StandardDeviation); Assert.Equal("remark", result.Remark); Assert.Equal("test", result.Properties["test"]); Assert.Equal(null, result.Properties["null"]); Assert.Equal(now, (DateTimeOffset)result.Properties["timestamp"]); }
public void ToDictionary_ignores_case() { var metric = new MetricLog("test", 1); var result = metric.ToDictionary(); Assert.Equal("test", result["name"].ToString()); Assert.Equal("test", result["Name"].ToString()); Assert.Equal("test", result["NAME"].ToString()); }
public void Creates_ignores_case(string name, string value) { var metric = MetricLog.Create(new Dictionary <string, object> { { "LogType", "MetricLog" }, { name, "name" }, { value, 1.0 } }); Assert.NotNull(metric); }
private static DateTime GetTimestamp(MetricLog metric) { var utcTimezone = TimeZoneInfo.Utc; var nzTimezone = TimeZoneInfo.FindSystemTimeZoneById("Pacific/Auckland"); var timestampAsUtc = TimeZoneInfo.ConvertTime(metric.Timestamp, nzTimezone, utcTimezone); //Console.WriteLine($"Timestamp as UTC: {timestampAsUtc}"); return(timestampAsUtc); }
private bool LogToCloudWatch(MetricLog metric) { try { using (var cloudwatch = new AmazonCloudWatchClient(Environment.GetEnvironmentVariable("AWSAccessKey"), Environment.GetEnvironmentVariable("AWSSecret"), RegionEndpoint.USEast1)) { var timestamp = GetTimestamp(metric); var dataPoint = new MetricDatum { MetricName = metric.Name, Unit = StandardUnit.Count, Value = double.Parse(metric.Value), TimestampUtc = timestamp, Dimensions = new List <Dimension>(), StatisticValues = new StatisticSet() }; var mdr = new PutMetricDataRequest { Namespace = "Environment", MetricData = new List <MetricDatum> { dataPoint } }; var resp = cloudwatch.PutMetricDataAsync(mdr).Result; //Console.WriteLine(resp.HttpStatusCode); Debug.Assert(resp.HttpStatusCode == System.Net.HttpStatusCode.OK); } return(true); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); while (ex.InnerException != null) { ex = ex.InnerException; Console.WriteLine(ex.Message + ex.StackTrace); } return(false); } }
public bool AddMetric(MetricLog metric) { try { EnsureTable(); var context = new DynamoDBContext(_dynamo); context.SaveAsync <MetricLog>(metric).Wait(); //Console.WriteLine("Metric persisted."); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); } return(true); }
private bool LogToDynamo(MetricLog metric) { try { _dynamoDbService.AddMetric(metric); return(true); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); while (ex.InnerException != null) { ex = ex.InnerException; Console.WriteLine(ex.Message + ex.StackTrace); } return(false); } }
public void Create_returns_null_without_name_nor_value(Dictionary <string, object> properties) { var result = MetricLog.Create(properties); Assert.Null(result); }