public DataTransportResponseStatus Send(IEnumerable <MetricWireModel> metrics) { if (!metrics.Any()) { return(DataTransportResponseStatus.RequestSuccessful); } var beginTime = _lastMetricSendTime; var endTime = _dateTimeStatic.UtcNow; if (beginTime >= endTime) { Log.ErrorFormat("The last data send timestamp ({0}) is greater than or equal to the current timestamp ({1}). The metrics in this batch will be dropped.", _lastMetricSendTime, endTime); _lastMetricSendTime = _dateTimeStatic.UtcNow; return(DataTransportResponseStatus.Discard); } var model = new MetricWireModelCollection(_configuration.AgentRunId as string, beginTime.ToUnixTimeSeconds(), endTime.ToUnixTimeSeconds(), metrics); var status = TrySendDataRequest("metric_data", model); if (status == DataTransportResponseStatus.RequestSuccessful) { _lastMetricSendTime = endTime; } return(status); }
public void Serialize_MatchesExpectedOutput() { var model = new MetricWireModelCollection[] { _wellformedMetricData }; var serializedMetrics = Newtonsoft.Json.JsonConvert.SerializeObject(model); Assert.AreEqual(_wellformedJson, serializedMetrics); }
public void Setup() { Mock.Arrange(() => _metricNameService.RenameMetric(Arg.IsAny <string>())).Returns <string>(name => name); _connectionHandler = new ConnectionHandler(new JsonSerializer(), Mock.Create <ICollectorWireFactory>(), Mock.Create <IProcessStatic>(), Mock.Create <IDnsStatic>(), Mock.Create <ILabelsService>(), Mock.Create <Environment>(), Mock.Create <ISystemInfo>(), Mock.Create <IAgentHealthReporter>(), Mock.Create <IEnvironment>()); var validScopedMetric = MetricWireModel.BuildMetric(_metricNameService, "DotNet/name", "WebTransaction/DotNet/name", MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(3.0), TimeSpan.FromSeconds(2.0))); var validUnscopedMetric = MetricWireModel.BuildMetric(_metricNameService, "Custom/name", string.Empty, MetricDataWireModel.BuildTimingData(TimeSpan.FromSeconds(4.0), TimeSpan.FromSeconds(3.0))); var validMetricWireModels = new List <MetricWireModel> { validScopedMetric, validUnscopedMetric }; _wellformedMetricData = new MetricWireModelCollection("440491846668652", 1450462672.0, 1450462710.0, validMetricWireModels); }