private EventDataParsed ParseDependencyEvent(EventData eventData, EventMetadata dependencyMetadata) { var result = DependencyData.TryGetData(eventData, dependencyMetadata, out DependencyData dependencyData); if (result.Status != DataRetrievalStatus.Success) { _healthReporter.ReportProblem($"{nameof(SqlTableOutput)}: {result.Message}", EventFlowContextIdentifiers.Output); return(null); } var dependencyEventData = eventData.DeepClone(); if (dependencyData.Duration != null) { dependencyEventData.Payload[nameof(DependencyData.Duration)] = dependencyData.Duration; } if (dependencyData.IsSuccess != null) { dependencyEventData.Payload[nameof(DependencyData.IsSuccess)] = dependencyData.IsSuccess; } if (dependencyData.ResponseCode != null) { dependencyEventData.Payload[nameof(DependencyData.ResponseCode)] = dependencyData.ResponseCode; } if (dependencyData.Target != null) { dependencyEventData.Payload[nameof(DependencyData.Target)] = dependencyData.Target; } if (dependencyData.DependencyType != null) { dependencyEventData.Payload[nameof(DependencyData.DependencyType)] = dependencyData.DependencyType; } return(new DependencyDataParsed(dependencyEventData, ParseEventCustomProperties(eventData))); }
private BulkIndexOperation <EventData> CreateRequestOperation( EventData eventData, EventMetadata requestMetadata, string currentIndexName, string documentTypeName) { var result = RequestData.TryGetData(eventData, requestMetadata, out RequestData requestData); if (result.Status != DataRetrievalStatus.Success) { this.healthReporter.ReportProblem("ElasticSearchOutput: " + result.Message, EventFlowContextIdentifiers.Output); return(null); } var requestEventData = eventData.DeepClone(); requestEventData.Payload[nameof(RequestData.RequestName)] = requestData.RequestName; if (requestData.Duration != null) { requestEventData.Payload[nameof(RequestData.Duration)] = requestData.Duration; } if (requestData.IsSuccess != null) { requestEventData.Payload[nameof(RequestData.IsSuccess)] = requestData.IsSuccess; } if (requestData.ResponseCode != null) { requestEventData.Payload[nameof(RequestData.ResponseCode)] = requestData.ResponseCode; } var operation = CreateOperation(requestEventData, currentIndexName, documentTypeName); return(operation); }
private EventDataParsed ParseRequestEvent(EventData eventData, EventMetadata requestMetadata) { var result = RequestData.TryGetData(eventData, requestMetadata, out RequestData requestData); if (result.Status != DataRetrievalStatus.Success) { _healthReporter.ReportProblem($"{nameof(SqlTableOutput)}: {result.Message}", EventFlowContextIdentifiers.Output); return(null); } var requestEventData = eventData.DeepClone(); requestEventData.Payload[nameof(RequestData.RequestName)] = requestData.RequestName; if (requestData.Duration != null) { requestEventData.Payload[nameof(RequestData.Duration)] = requestData.Duration; } if (requestData.IsSuccess != null) { requestEventData.Payload[nameof(RequestData.IsSuccess)] = requestData.IsSuccess; } if (requestData.ResponseCode != null) { requestEventData.Payload[nameof(RequestData.ResponseCode)] = requestData.ResponseCode; } return(new RequestDataParsed(requestEventData, ParseEventCustomProperties(eventData))); }
private EventDataParsed ParseExceptionEvent(EventData eventData, EventMetadata exceptionMetadata) { var result = ExceptionData.TryGetData(eventData, exceptionMetadata, out ExceptionData exceptionData); if (result.Status != DataRetrievalStatus.Success) { _healthReporter.ReportProblem($"{nameof(SqlTableOutput)}: {result.Message}", EventFlowContextIdentifiers.Output); return(null); } var exceptionEventData = eventData.DeepClone(); exceptionEventData.Payload[nameof(ExceptionData.Exception)] = exceptionData.Exception.ToString(); return(new ExceptionDataParsed(exceptionEventData, ParseEventCustomProperties(eventData))); }
private EventDataParsed ParseMetricEvent(EventData eventData, EventMetadata metricMetadata) { var result = MetricData.TryGetData(eventData, metricMetadata, out MetricData metricData); if (result.Status != DataRetrievalStatus.Success) { _healthReporter.ReportProblem($"{nameof(SqlTableOutput)}: {result.Message}", EventFlowContextIdentifiers.Output); return(null); } var metricEventData = eventData.DeepClone(); metricEventData.Payload[nameof(MetricData.MetricName)] = metricData.MetricName; metricEventData.Payload[nameof(MetricData.Value)] = metricData.Value; return(new MetricDataParsed(metricEventData, ParseEventCustomProperties(eventData))); }
private BulkIndexOperation <EventData> CreateExceptionOperation(EventData eventData, EventMetadata exceptionMetadata, string currentIndexName) { var result = ExceptionData.TryGetData(eventData, exceptionMetadata, out ExceptionData exceptionData); if (result.Status != DataRetrievalStatus.Success) { this.healthReporter.ReportProblem("ElasticSearchOutput: " + result.Message, EventFlowContextIdentifiers.Output); return(null); } var exceptionEventData = eventData.DeepClone(); exceptionEventData.Payload[nameof(ExceptionData.Exception)] = exceptionData.Exception.ToString(); var operation = CreateOperation(exceptionEventData, currentIndexName); return(operation); }
private BulkIndexOperation <EventData> CreateMetricOperation(EventData eventData, EventMetadata metricMetadata, string currentIndexName) { var result = MetricData.TryGetData(eventData, metricMetadata, out MetricData metricData); if (result.Status != DataRetrievalStatus.Success) { this.healthReporter.ReportProblem("ElasticSearchOutput: " + result.Message, EventFlowContextIdentifiers.Output); return(null); } var metricEventData = eventData.DeepClone(); metricEventData.Payload[nameof(MetricData.MetricName)] = metricData.MetricName; metricEventData.Payload[nameof(MetricData.Value)] = metricData.Value; var operation = CreateOperation(metricEventData, currentIndexName); return(operation); }
private BulkIndexOperation <EventData> CreateDependencyOperation(EventData eventData, EventMetadata dependencyMetadata, string currentIndexName) { var result = DependencyData.TryGetData(eventData, dependencyMetadata, out DependencyData dependencyData); if (result.Status != DataRetrievalStatus.Success) { this.healthReporter.ReportProblem("ElasticSearchOutput: " + result.Message, EventFlowContextIdentifiers.Output); return(null); } var dependencyEventData = eventData.DeepClone(); if (dependencyData.Duration != null) { dependencyEventData.Payload[nameof(DependencyData.Duration)] = dependencyData.Duration; } if (dependencyData.IsSuccess != null) { dependencyEventData.Payload[nameof(DependencyData.IsSuccess)] = dependencyData.IsSuccess; } if (dependencyData.ResponseCode != null) { dependencyEventData.Payload[nameof(DependencyData.ResponseCode)] = dependencyData.ResponseCode; } if (dependencyData.Target != null) { dependencyEventData.Payload[nameof(DependencyData.Target)] = dependencyData.Target; } if (dependencyData.DependencyType != null) { dependencyEventData.Payload[nameof(DependencyData.DependencyType)] = dependencyData.DependencyType; } var operation = CreateOperation(dependencyEventData, currentIndexName); return(operation); }
private IEnumerable <IBulkOperation> GetCreateOperationsForEvent(EventData eventData, string currentIndexName, string documentTypeName) { bool reportedAsMetricOrRequest = false; BulkCreateOperation <EventData> operation; // Synthesize a separate record for each metric and request metadata associated with the event IReadOnlyCollection <EventMetadata> metadataSet; if (eventData.TryGetMetadata(MetricData.MetricMetadataKind, out metadataSet)) { foreach (var metricMetadata in metadataSet) { MetricData metricData; var result = MetricData.TryGetData(eventData, metricMetadata, out metricData); if (result.Status != DataRetrievalStatus.Success) { this.healthReporter.ReportProblem("ElasticSearchOutput: " + result.Message, EventFlowContextIdentifiers.Output); continue; } var metricEventData = eventData.DeepClone(); metricEventData.Payload[nameof(MetricData.MetricName)] = metricData.MetricName; metricEventData.Payload[nameof(MetricData.Value)] = metricData.Value; operation = new BulkCreateOperation <EventData>(metricEventData); operation.Index = currentIndexName; operation.Type = documentTypeName; reportedAsMetricOrRequest = true; yield return(operation); } } if (eventData.TryGetMetadata(RequestData.RequestMetadataKind, out metadataSet)) { foreach (var requestMetadata in metadataSet) { RequestData requestData; var result = RequestData.TryGetData(eventData, requestMetadata, out requestData); if (result.Status != DataRetrievalStatus.Success) { this.healthReporter.ReportProblem("ElasticSearchOutput: " + result.Message, EventFlowContextIdentifiers.Output); continue; } var requestEventData = eventData.DeepClone(); requestEventData.Payload[nameof(RequestData.RequestName)] = requestData.RequestName; if (requestData.Duration != null) { requestEventData.Payload[nameof(RequestData.Duration)] = requestData.Duration; } if (requestData.IsSuccess != null) { requestEventData.Payload[nameof(RequestData.IsSuccess)] = requestData.IsSuccess; } if (requestData.ResponseCode != null) { requestEventData.Payload[nameof(RequestData.ResponseCode)] = requestData.ResponseCode; } operation = new BulkCreateOperation <EventData>(requestEventData); operation.Index = currentIndexName; operation.Type = documentTypeName; reportedAsMetricOrRequest = true; yield return(operation); } } if (!reportedAsMetricOrRequest) { operation = new BulkCreateOperation <EventData>(eventData); operation.Index = currentIndexName; operation.Type = documentTypeName; yield return(operation); } }