private static IEnumerable <Value> MeterValues(MeterValue meter, Unit unit, TimeUnit rateUnit) { yield return(new Value("Count", meter.Count)); yield return(new Value("Mean Rate", meter.MeanRate)); yield return(new Value("One Minute Rate", meter.OneMinuteRate)); yield return(new Value("Five Minute Rate", meter.FiveMinuteRate)); yield return(new Value("Fifteen Minute Rate", meter.FifteenMinuteRate)); if (!string.IsNullOrEmpty(unit.Name)) { yield return(new Value("Rate Unit", $"{unit.Name}/{rateUnit.Unit()}")); } }
public IEnumerable <MeterValueSource> SetupMeters() { var meterValue = new MeterValue( 5, 1, 2, 3, 4, TimeUnit.Seconds, new[] { new MeterValue.SetItem("item", 0.5, new MeterValue(1, 2, 3, 4, 5, TimeUnit.Seconds, new MeterValue.SetItem[0])) }); var meter = new MeterValueSource("test2", ConstantValue.Provider(meterValue), Unit.Calls, TimeUnit.Seconds, Tags); return(new[] { meter }); }
public TimerValueSource ToValueSource() { var rateUnit = TimeUnitExtensions.FromUnit(this.RateUnit); var durationUnit = TimeUnitExtensions.FromUnit(this.DurationUnit); var rateValue = new MeterValue(this.Count, this.Rate.MeanRate, this.Rate.OneMinuteRate, this.Rate.FiveMinuteRate, this.Rate.FifteenMinuteRate, rateUnit); var histogramValue = new HistogramValue(this.Count, this.Histogram.LastValue, this.Histogram.LastUserValue, this.Histogram.Max, this.Histogram.MaxUserValue, this.Histogram.Mean, this.Histogram.Min, this.Histogram.MinUserValue, this.Histogram.StdDev, this.Histogram.Median, this.Histogram.Percentile75, this.Histogram.Percentile95, this.Histogram.Percentile98, this.Histogram.Percentile99, this.Histogram.Percentile999, this.Histogram.SampleSize); var timerValue = new TimerValue(rateValue, histogramValue, this.ActiveSessions, durationUnit); return(new TimerValueSource(this.Name, ConstantValue.Provider(timerValue), this.Unit, rateUnit, durationUnit, this.Tags)); }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { Send(SubfolderName(name, unit, "Total"), value.Count); Send(SubfolderName(name, AsRate(unit, rateUnit), "Rate-Mean"), value.MeanRate); Send(SubfolderName(name, AsRate(unit, rateUnit), "Rate-1-min"), value.OneMinuteRate); Send(SubfolderName(name, AsRate(unit, rateUnit), "Rate-5-min"), value.FiveMinuteRate); Send(SubfolderName(name, AsRate(unit, rateUnit), "Rate-15-min"), value.FifteenMinuteRate); foreach (var item in value.Items) { Send(SubfolderName(name, unit, item.Item, "Count"), item.Value.Count); Send(SubfolderName(name, unit, item.Item, "Percent"), item.Percent); Send(SubfolderName(name, AsRate(unit, rateUnit), item.Item, "Rate-Mean"), item.Value.MeanRate); Send(SubfolderName(name, AsRate(unit, rateUnit), item.Item, "Rate-1-min"), item.Value.OneMinuteRate); Send(SubfolderName(name, AsRate(unit, rateUnit), item.Item, "Rate-5-min"), item.Value.FiveMinuteRate); Send(SubfolderName(name, AsRate(unit, rateUnit), item.Item, "Rate-15-min"), item.Value.FifteenMinuteRate); } }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { this.WriteMetricName(name); this.WriteMeter(value, unit, rateUnit); if (value.Items.Length > 0) { WriteValue("Total Items", value.Items.Length.ToString()); } for (int i = 0; i < value.Items.Length; i++) { var key = "Item " + i.ToString(); var item = value.Items[i]; var val = string.Format("{0:00.00}% {1,5} {2} [{3}]", item.Percent, item.Value.Count, unit.Name, item.Item); WriteValue(key, val); WriteMeter(item.Value, unit, rateUnit); } }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit) { this.WriteMetricName(name); this.WriteMeter(value.Scale(rateUnit), unit, rateUnit); if (value.Items.Length > 0) { WriteValue("Total Items", value.Items.Length.ToString()); } for (int i = 0; i < value.Items.Length; i++) { var key = "Item " + i.ToString(); var item = value.Items[i]; var val = string.Format("{0:00.00}% {1,5} {2} [{3}]", item.Percent, item.Value.Count, unit.Name, item.Item); WriteValue(key, val); WriteMeter(item.Value, unit, rateUnit); } }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { this.WriteMetricName(name); this.WriteMeter(value, unit, rateUnit); if (value.Items.Length > 0) { WriteValue("Total Items", value.Items.Length.ToString()); } for (int i = 0; i < value.Items.Length; i++) { var key = "Item " + i.ToString(); var item = value.Items[i]; var val = $"{item.Percent:00.00}% {item.Value.Count,5} {unit.Name} [{item.Item}]"; WriteValue(key, val); WriteMeter(item.Value, unit, rateUnit); } }
public void can_hummanize_timer() { var expected = "\r\n\r\n Active Sessions = 0\r\n Total Time = 0.00 ms\r\n Count = 5 Requests\r\n Mean Value = 1.00 Requests/s\r\n 1 Minute Rate = 2.00 Requests/s\r\n 5 Minute Rate = 3.00 Requests/s\r\n 15 Minute Rate = 4.00 Requests/s\r\n Total Items = 1\r\n Item 0 = 00.50% 1 Requests [item]\r\n Count = 1 Requests\r\n Mean Value = 2.00 Requests/s\r\n 1 Minute Rate = 3.00 Requests/s\r\n 5 Minute Rate = 4.00 Requests/s\r\n 15 Minute Rate = 5.00 Requests/s\r\n\r\n Count = 5 Requests\r\n Last = 0.00 Requests\r\n Last User Value = 3\r\n Min = 0.00 Requests\r\n Min User Value = 8\r\n Max = 0.00 Requests\r\n Max User Value = 5\r\n Mean = 0.00 Requests\r\n StdDev = 0.00 Requests\r\n Median = 0.00 Requests\r\n 75% <= 0.00 Requests\r\n 95% <= 0.00 Requests\r\n 98% <= 0.00 Requests\r\n 99% <= 0.00 Requests\r\n 99.9% <= 0.00 Requests\r\n"; const int count = 5; var meterValue = new MeterValue(count, 1, 2, 3, 4, TimeUnit.Seconds, new[] { new MeterValue.SetItem("item", 0.5, new MeterValue(1, 2, 3, 4, 5, TimeUnit.Seconds, new MeterValue.SetItem[0])) }); var histogramValue = new HistogramValue(count, 2, "3", 4, "5", 6, 7, "8", 9, 10, 11, 12, 13, 14, 15, 16); var timerValue = new TimerValue(meterValue, histogramValue, 0, 1, TimeUnit.Nanoseconds); var timerValueSource = new TimerValueSource("test_timer", ConstantValue.Provider(timerValue), Unit.Requests, TimeUnit.Seconds, TimeUnit.Milliseconds, MetricTags.None); var result = timerValueSource.Hummanize(); Assert.Equal(result, expected); }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <param name="value"></param> /// <param name="unit"></param> /// <param name="rateUnit"></param> /// <param name="tags"></param> protected override void ReportMeter( string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { // Metrics.NET counters can be decremented, but Prometheus' are expected to be monotonically increasing, // so this maps to a Prometheus gauge. if (_config.OutputSetItems && value.Items?.Length > 0) { var setItems = value.Items.Select(item => new SetItem(item.Item, item.Value?.Count ?? 0)); WriteLongMetricSet("gauge", name, setItems, unit, tags); } else { WriteLongMetric("gauge", name, value.Count, unit, tags); } }
public static TimerValueSource FromSerializableMetric(this TimerMetric source) { var rateUnit = source.RateUnit.FromUnit(); var durationUnit = source.DurationUnit.FromUnit(); var rateValue = new MeterValue( source.Count, source.Rate.MeanRate, source.Rate.OneMinuteRate, source.Rate.FiveMinuteRate, source.Rate.FifteenMinuteRate, rateUnit); var histogramValue = new HistogramValue( source.Count, source.Histogram.Sum, source.Histogram.LastValue, source.Histogram.LastUserValue, source.Histogram.Max, source.Histogram.MaxUserValue, source.Histogram.Mean, source.Histogram.Min, source.Histogram.MinUserValue, source.Histogram.StdDev, source.Histogram.Median, source.Histogram.Percentile75, source.Histogram.Percentile95, source.Histogram.Percentile98, source.Histogram.Percentile99, source.Histogram.Percentile999, source.Histogram.SampleSize); var timerValue = new TimerValue(rateValue, histogramValue, source.ActiveSessions, durationUnit); return(new TimerValueSource( source.Name, ConstantValue.Provider(timerValue), source.Unit, rateUnit, durationUnit, source.Tags.FromDictionary())); }
private void ReportMeter(MeterValueSource g) { string name = g.Name; MeterValue value = GetMetricValueSourceValue <MeterValue>(g.ValueProvider); Unit unit = g.Unit; TimeUnit rateUnit = g.RateUnit; var itemColumns = value.Items.SelectMany(i => new[] { i.Item + " - Count", i.Item + " - Unit Count", i.Item + " - Percent", i.Item + " - Mean Rate", i.Item + " - 1 Min Rate", i.Item + " - 5 Min Rate", i.Item + " - 15 Min Rate" }); var columns = MeterColumns.Concat(itemColumns); var itemValues = value.Items.SelectMany(i => new object[] { i.Value.Count, i.Value.UnitCount, i.Percent, i.Value.MeanRate, i.Value.OneMinuteRate, i.Value.FiveMinuteRate, i.Value.FifteenMinuteRate }); var data = new object[] { value.Count, value.UnitCount, value.MeanRate, value.OneMinuteRate, value.FiveMinuteRate, value.FifteenMinuteRate }.Concat(itemValues); Pack(name, columns, data, g.Tags); }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { var itemProperties = value.Items.SelectMany(i => new[] { new JsonProperty(i.Item + " - Count", i.Value.Count), new JsonProperty(i.Item + " - Percent", i.Percent), new JsonProperty(i.Item + " - Mean Rate", i.Value.MeanRate), new JsonProperty(i.Item + " - 1 Min Rate", i.Value.OneMinuteRate), new JsonProperty(i.Item + " - 5 Min Rate", i.Value.FiveMinuteRate), new JsonProperty(i.Item + " - 15 Min Rate", i.Value.FifteenMinuteRate) }); Pack("Meter", name, unit, tags, new[] { new JsonProperty("Count", value.Count), new JsonProperty("Mean Rate", value.MeanRate), new JsonProperty("1 Min Rate", value.OneMinuteRate), new JsonProperty("5 Min Rate", value.FiveMinuteRate), new JsonProperty("15 Min Rate", value.FifteenMinuteRate) }.Concat(itemProperties)); }
public void meter_can_use_custom_data_keys_and_should_provide_corresponding_values() { // Arrange var value = new MeterValue(1, 2, 3, 4, 5, TimeUnit.Seconds); var dataKeys = new MetricValueDataKeys( meter: new Dictionary <MeterValueDataKeys, string> { { MeterValueDataKeys.Rate1M, "1_min_rate" }, { MeterValueDataKeys.RateMean, "mean_rate" } }); // Act value.AddMeterValues(out IDictionary <string, object> data, dataKeys.Meter); // Assert data.ContainsKey(DataKeys.Meter[MeterValueDataKeys.RateMean]).Should().BeFalse(); data["mean_rate"].Should().Be(2.0); data.ContainsKey(DataKeys.Meter[MeterValueDataKeys.Rate1M]).Should().BeFalse(); data["1_min_rate"].Should().Be(3.0); }
/// <summary> /// Report Meters as a single metric for the value, plus individual rate metrics /// in case the Ops team wants to report or alert on specific subvalues. /// </summary> protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { if (tags.Tags.Contains(DoNotReport)) { return; } var props = new Dictionary <string, string>(); props["Unit"] = unit.Name; props["RateUnit"] = Enum.GetName(typeof(TimeUnit), rateUnit);; if (tags.Tags != null && tags.Tags.Length > 0) { props["Tags"] = String.Join(",", tags.Tags); } props["Name"] = name + " {MeanRate}"; props["Value"] = unit.FormatRate(value.MeanRate, rateUnit); Client.TrackMetric(props["Name"], value.MeanRate, props); props["Name"] = name + " {OneMinuteRate}"; props["Value"] = unit.FormatRate(value.OneMinuteRate, rateUnit); Client.TrackMetric(props["Name"], value.OneMinuteRate, props); props["Name"] = name + " {FiveMinuteRate}"; props["Value"] = unit.FormatRate(value.FiveMinuteRate, rateUnit); Client.TrackMetric(props["Name"], value.FiveMinuteRate, props); props["Name"] = name + " {FifteenMinuteRate}"; props["Value"] = unit.FormatRate(value.FifteenMinuteRate, rateUnit); Client.TrackMetric(props["Name"], value.FifteenMinuteRate, props); props["Name"] = name; props["Value"] = unit.FormatCount(value.Count); props["MeanRate"] = unit.FormatRate(value.MeanRate, rateUnit); props["OneMinuteRate"] = unit.FormatRate(value.OneMinuteRate, rateUnit); props["FiveMinuteRate"] = unit.FormatRate(value.FiveMinuteRate, rateUnit); props["FifteenMinuteRate"] = unit.FormatRate(value.FifteenMinuteRate, rateUnit); Client.TrackMetric(name, value.Count, props); }
public void CanSerializeAndDeserializeMeterValue() { var meter = new MeterValue("name", 1, 2.0, 3.0, 4.0, 15.0); using (var store = GetDocumentStore()) { using (var session = store.OpenSession()) { var json = DocumentConventions.Default.Serialization.DefaultConverter.ToBlittable(meter, session.Advanced.Context); var parsed = (MeterValue)session.Advanced.JsonConverter.FromBlittable(typeof(MeterValue), ref json, "meter", trackEntity: true); Assert.Equal(meter.Name, parsed.Name); Assert.Equal(meter.Count, parsed.Count); Assert.Equal(meter.MeanRate, parsed.MeanRate); Assert.Equal(meter.OneMinuteRate, parsed.OneMinuteRate); Assert.Equal(meter.FiveMinuteRate, parsed.FiveMinuteRate); Assert.Equal(meter.FifteenMinuteRate, parsed.FifteenMinuteRate); } } }
public IEnumerable <TimerValueSource> SetupTimers() { const int count = 5; var meterValue = new MeterValue( count, 1, 2, 3, 4, TimeUnit.Seconds, new[] { new MeterValue.SetItem("item", 0.5, new MeterValue(1, 2, 3, 4, 5, TimeUnit.Seconds, new MeterValue.SetItem[0])) }); var histogramValue = new HistogramValue(count, 2, "3", 4, "5", 6, 7, "8", 9, 10, 11, 12, 13, 14, 15, 16); var timerValue = new TimerValue(meterValue, histogramValue, 0, 1, TimeUnit.Nanoseconds); var timer = new TimerValueSource( TimerNameDefault, ConstantValue.Provider(timerValue), Unit.Requests, TimeUnit.Seconds, TimeUnit.Milliseconds, Tags); var timerValueWithGroup = new TimerValue(meterValue, histogramValue, 0, 1, TimeUnit.Nanoseconds); var timerWithGroup = new TimerValueSource( TimerNameWithGroup, GroupDefault, ConstantValue.Provider(timerValueWithGroup), Unit.Requests, TimeUnit.Seconds, TimeUnit.Milliseconds, Tags); return(new[] { timer, timerWithGroup }); }
public void CanSerializeAndDeserializeMeterValue() { var meter = new MeterValue("name", 1, 2.0, 3.0, 4.0, 15.0); using (var store = GetDocumentStore()) { using (var session = store.OpenSession()) { var json = EntityToBlittable.ConvertCommandToBlittable(meter, session.Advanced.Context); var parsed = (MeterValue)session.Advanced.EntityToBlittable.ConvertToEntity(typeof(MeterValue), "meter", json); Assert.Equal(meter.Name, parsed.Name); Assert.Equal(meter.Count, parsed.Count); Assert.Equal(meter.MeanRate, parsed.MeanRate); Assert.Equal(meter.OneMinuteRate, parsed.OneMinuteRate); Assert.Equal(meter.FiveMinuteRate, parsed.FiveMinuteRate); Assert.Equal(meter.FifteenMinuteRate, parsed.FifteenMinuteRate); } } }
public static void HumanizeMeter(this StringBuilder sb, MeterValue value, Unit unit) { sb.AppendLine("Count".FormatReadableMetricValue(unit.FormatCount(value.Count))); sb.AppendLine("Mean Value".FormatReadableMetricValue(unit.FormatRate(value.MeanRate, value.RateUnit))); sb.AppendLine("1 Minute Rate".FormatReadableMetricValue(unit.FormatRate(value.OneMinuteRate, value.RateUnit))); sb.AppendLine("5 Minute Rate".FormatReadableMetricValue(unit.FormatRate(value.FiveMinuteRate, value.RateUnit))); sb.AppendLine("15 Minute Rate".FormatReadableMetricValue(unit.FormatRate(value.FifteenMinuteRate, value.RateUnit))); if (!value.Items.Any()) { return; } sb.AppendLine("Total Items".FormatReadableMetricValue(value.Items.Length.ToString())); foreach (var keyValue in value.Items.Select((x, i) => new { Value = x, Index = i })) { var key = $"Item {keyValue.Index}"; var itemValue = $"{keyValue.Value.Percent:00.00}% {keyValue.Value.Value.Count,5} {unit.Name} [{keyValue.Value.Item}]"; sb.AppendLine(key.FormatReadableMetricValue(itemValue)); sb.HumanizeMeter(keyValue.Value.Value, unit); } }
protected void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { var payload = new JObject { { "count", value.Count }, { "meanRate", _resetOnReport ? ((double)value.Count / _reportingPeriodSec) : value.MeanRate }, { "1MinRate", value.OneMinuteRate }, { "5MinRate", value.FiveMinuteRate } }; value.Items.ForEach(i => { payload.Add(i.Item + "Count", i.Value.Count); payload.Add(i.Item + "Percent", i.Percent); payload.Add(i.Item + "MeanRate", i.Value.MeanRate); payload.Add(i.Item + "1MinRate", i.Value.OneMinuteRate); payload.Add(i.Item + "5MinRate", i.Value.FiveMinuteRate); }); var te = Pack("Meter", name, unit, tags, payload); _subject.OnNext(te); }
public IEnumerable <MeterValueSource> SetupMeters() { var meterValue = new MeterValue( 5, 1, 2, 3, 4, TimeUnit.Seconds, new[] { new MeterValue.SetItem("item", 0.5, new MeterValue(1, 2, 3, 4, 5, TimeUnit.Seconds, new MeterValue.SetItem[0])) }); var meter = new MeterValueSource(MeterNameDefault, ConstantValue.Provider(meterValue), Unit.Calls, TimeUnit.Seconds, Tags); var meterValueWithGroup = new MeterValue( 5, 1, 2, 3, 4, TimeUnit.Seconds, new[] { new MeterValue.SetItem("item", 0.5, new MeterValue(1, 2, 3, 4, 5, TimeUnit.Seconds, new MeterValue.SetItem[0])) }); var meterWithGroup = new MeterValueSource( MeterNameWithGroup, GroupDefault, ConstantValue.Provider(meterValueWithGroup), Unit.Calls, TimeUnit.Seconds, Tags); return(new[] { meter, meterWithGroup }); }
protected abstract void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags);
/// <remarks/> public System.IAsyncResult BeginMeterValues(int connectorId, int transactionId, bool transactionIdSpecified, MeterValue[] values, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("MeterValues", new object[] { connectorId, transactionId, transactionIdSpecified, values}, callback, asyncState); }
public MeterRecord(GenMeter meter, AudioSource playingSource) { this.meter = meter; this.meterValue = meter.Meter; this.playingSource = playingSource; }
/// <summary> /// Try to parse the given JSON representation of a stop transaction request. /// </summary> /// <param name="StopTransactionRequestJSON">The JSON to be parsed.</param> /// <param name="StopTransactionRequest">The parsed stop transaction request.</param> /// <param name="OnException">An optional delegate called whenever an exception occured.</param> public static Boolean TryParse(JObject StopTransactionRequestJSON, out StopTransactionRequest StopTransactionRequest, OnExceptionDelegate OnException = null) { try { StopTransactionRequest = null; #region TransactionId if (!StopTransactionRequestJSON.ParseMandatory("transactionId", "transaction identification", Transaction_Id.TryParse, out Transaction_Id TransactionId, out String ErrorResponse)) { return(false); } #endregion #region Timestamp if (!StopTransactionRequestJSON.ParseMandatory("timestamp", "timestamp", out DateTime Timestamp, out ErrorResponse)) { return(false); } #endregion #region MeterStop if (!StopTransactionRequestJSON.ParseMandatory("meterStop", "meter stop", out UInt64 MeterStop, out ErrorResponse)) { return(false); } #endregion #region Reason if (StopTransactionRequestJSON.ParseOptional("reason", "reason", ReasonsExtentions.AsReasons, out Reasons? Reason, out ErrorResponse)) { if (ErrorResponse != null) { return(false); } } #endregion #region IdTag if (!StopTransactionRequestJSON.ParseMandatory("idTag", "identification tag", IdToken.TryParse, out IdToken IdTag, out ErrorResponse)) { return(false); } #endregion #region TransactionData var TransactionData = new List <MeterValue>(); if (StopTransactionRequestJSON.ParseOptional("transactionData", "transaction data", out JArray TransactionDataJSON, out ErrorResponse)) { if (ErrorResponse != null) { return(false); } if (TransactionDataJSON.SafeAny()) { foreach (var meterValueJSON in TransactionDataJSON) { if (meterValueJSON is JObject && MeterValue.TryParse(meterValueJSON as JObject, out MeterValue meterValue)) { TransactionData.Add(meterValue); } else { return(false); } } } } #endregion StopTransactionRequest = new StopTransactionRequest(TransactionId, Timestamp, MeterStop, IdTag, Reason, TransactionData.Any() ? TransactionData : null); return(true); } catch (Exception e) { OnException?.Invoke(DateTime.UtcNow, StopTransactionRequestJSON, e); StopTransactionRequest = null; return(false); } }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { Write("Meter", name, MeterValues(value, unit, rateUnit)); }
private void WriteMeter(MeterValue value, Unit unit, TimeUnit rateUnit) { WriteValue("Count", unit.FormatCount(value.Count)); WriteValue("Mean Value", unit.FormatRate(value.MeanRate, rateUnit)); WriteValue("1 Minute Rate", unit.FormatRate(value.OneMinuteRate, rateUnit)); WriteValue("5 Minute Rate", unit.FormatRate(value.FiveMinuteRate, rateUnit)); WriteValue("15 Minute Rate", unit.FormatRate(value.FifteenMinuteRate, rateUnit)); }
public IActionResult Post([FromBody] JObject data) { try { MeterData mdata = new MeterData { Id = Guid.NewGuid(), Meter_Id = data["meter_id"].ToString(), Customer_Id = data["customer_id"].ToString(), Resolution = data["resolution"].ToString(), From = DateTime.Parse(data["from"].ToString()), To = DateTime.Parse(data["to"].ToString()), }; var savedMData = _repository.MeterData.SaveMeterData(mdata); _repository.Save(); ArrayList arr = new ArrayList(); var jobj = JObject.Parse(data.ToString()); var values = jobj["values"]; var dict = JsonConvert.DeserializeObject <Dictionary <DateTime, double> > (values.ToString()); foreach (var item in dict) { var meterValue = new MeterValue { Id = Guid.NewGuid(), MeterDataId = mdata.Id, Meter_Id = mdata.Meter_Id, Custormer_Id = mdata.Customer_Id, Hour = item.Key, Value = item.Value }; var returnedMeterValue = new MeterValueReturned { Hour = item.Key, Value = item.Value }; _repository.MeterValue.SaveMeterValue(meterValue); arr.Add(returnedMeterValue); _repository.Save(); } MeterDataExtended returnedMeterData = new MeterDataExtended { Id = savedMData.Id, Meter_Id = savedMData.Meter_Id, Customer_Id = savedMData.Customer_Id, Resolution = savedMData.Resolution, From = savedMData.From, To = savedMData.To, Values = arr }; return(Ok(returnedMeterData)); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit) { this.WriteMetricName(name); this.WriteMeter(value.Scale(rateUnit), unit, rateUnit); }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit) { Write("Meter", name, MeterValues(value.Scale(rateUnit), unit, rateUnit)); }
/// <remarks/> public void MeterValuesAsync(int connectorId, int transactionId, bool transactionIdSpecified, MeterValue[] values, object userState) { if ((this.MeterValuesOperationCompleted == null)) { this.MeterValuesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMeterValuesOperationCompleted); } this.InvokeAsync("MeterValues", new object[] { connectorId, transactionId, transactionIdSpecified, values}, this.MeterValuesOperationCompleted, userState); }
/// <remarks/> public void MeterValuesAsync(int connectorId, int transactionId, bool transactionIdSpecified, MeterValue[] values) { this.MeterValuesAsync(connectorId, transactionId, transactionIdSpecified, values, null); }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { this.metricName = name; base.ReportMeter(name, value, unit, rateUnit, tags); }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { Send(SubfolderName(name, unit, "Total"), value.Count); }
private static void TranslateMeterValue(MeterValue value, MetricTelemetry mt, string unit) { mt.Sum = value.MeanRate; mt.Properties[Constants.UnitKey] = unit; mt.Properties[Constants.AppMetricsTypeKey] = Constants.MeterTypeValue; }
private static IEnumerable<Value> MeterValues(MeterValue meter, Unit unit, TimeUnit rateUnit) { yield return new Value("Count", meter.Count); yield return new Value("Mean Rate", meter.MeanRate); yield return new Value("One Minute Rate", meter.OneMinuteRate); yield return new Value("Five Minute Rate", meter.FiveMinuteRate); yield return new Value("Fifteen Minute Rate", meter.FifteenMinuteRate); if (!string.IsNullOrEmpty(unit.Name)) { yield return new Value("Rate Unit", string.Format("{0}/{1}", unit.Name, rateUnit.Unit())); } }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit) { Write("Meter", name, MeterValues(value, unit, rateUnit)); }
private static IEnumerable<JsonProperty> Meter(MeterValue value) { yield return new JsonProperty("Count", value.Count); yield return new JsonProperty("MeanRate", value.MeanRate); yield return new JsonProperty("OneMinuteRate", value.OneMinuteRate); yield return new JsonProperty("FiveMinuteRate", value.FiveMinuteRate); yield return new JsonProperty("FifteenMinuteRate", value.FifteenMinuteRate); }
public MeterValueSource ToValueSource() { var rateUnit = TimeUnitExtensions.FromUnit(this.RateUnit); var items = this.Items.Select(i => new MeterValue.SetItem(i.Item, i.Percent, new MeterValue(i.Count, i.MeanRate, i.OneMinuteRate, i.FiveMinuteRate, i.FifteenMinuteRate, rateUnit))) .ToArray(); var meterValue = new MeterValue(this.Count, this.MeanRate, this.OneMinuteRate, this.FiveMinuteRate, this.FifteenMinuteRate, rateUnit, items); return new MeterValueSource(this.Name, ConstantValue.Provider(meterValue), this.Unit, rateUnit, this.Tags); }
public TimerValueSource ToValueSource() { var rateUnit = TimeUnitExtensions.FromUnit(this.RateUnit); var durationUnit = TimeUnitExtensions.FromUnit(this.DurationUnit); var rateValue = new MeterValue(this.Count, this.Rate.MeanRate, this.Rate.OneMinuteRate, this.Rate.FiveMinuteRate, this.Rate.FifteenMinuteRate, rateUnit); var histogramValue = new HistogramValue(this.Count, this.Histogram.LastValue, this.Histogram.LastUserValue, this.Histogram.Max, this.Histogram.MaxUserValue, this.Histogram.Mean, this.Histogram.Min, this.Histogram.MinUserValue, this.Histogram.StdDev, this.Histogram.Median, this.Histogram.Percentile75, this.Histogram.Percentile95, this.Histogram.Percentile98, this.Histogram.Percentile99, this.Histogram.Percentile999, this.Histogram.SampleSize); var timerValue = new TimerValue(rateValue, histogramValue, this.ActiveSessions, durationUnit); return new TimerValueSource(this.Name, ConstantValue.Provider(timerValue), this.Unit, rateUnit, durationUnit, this.Tags); }
internal static void CopyTo(this MeterValue value, MetricTelemetry mt, string unit) { mt.Sum = value.MeanRate; mt.Properties[UnitKey] = unit; }
private static RateData ToRate(MeterValue rate) { return new RateData { MeanRate = rate.MeanRate, OneMinuteRate = rate.OneMinuteRate, FiveMinuteRate = rate.FiveMinuteRate, FifteenMinuteRate = rate.FifteenMinuteRate }; }
protected override void ReportMeter(string name, MeterValue value, Unit unit, TimeUnit rateUnit, MetricTags tags) { m_items.Add(new MeterEventHubReportItem(m_service, name, value.OneMinuteRate)); }