コード例 #1
0
        private static ShoeBoxEventData ConvertToShoeboxTrace(EventData eventData)
        {
            ShoeBoxEventData sbEventData = new ShoeBoxEventData();

            var traceRecord = new ShoeBoxTraceRecord()
            {
                time     = eventData.Timestamp,
                level    = eventData.Level.GetName(),
                category = null
            };

            traceRecord.properties.Add(nameof(eventData.Keywords), eventData.Keywords);
            traceRecord.properties.Add(nameof(eventData.ProviderName), eventData.ProviderName);

            foreach (var payload in eventData.Payload)
            {
                traceRecord.properties.Add(payload.Key, payload.Value);
            }

            sbEventData.records.Add(traceRecord);

            return(sbEventData);
        }
コード例 #2
0
        private static ShoeBoxEventData ConvertToShoeboxMetric(EventData eventData, IReadOnlyCollection <EventMetadata> metadataCollection)
        {
            ShoeBoxEventData sbEventData = new ShoeBoxEventData();

            foreach (var metadata in metadataCollection)
            {
                double metricValue         = default(double);
                string metricValueProperty = metadata["metricValueProperty"];
                if (string.IsNullOrEmpty(metricValueProperty))
                {
                    double.TryParse(metadata["metricValue"], out metricValue);
                }
                else
                {
                    eventData.GetValueFromPayload(metricValueProperty, (double v) => metricValue = v);
                }

                var metricRecord = new ShoeBoxMetricRecord()
                {
                    last       = metricValue,
                    metricName = metadata["metricName"],
                    time       = eventData.Timestamp,
                    timeGrain  = null,
                    dimensions = new Dictionary <string, object>()
                };

                foreach (var payload in eventData.Payload)
                {
                    metricRecord.dimensions.Add(payload.Key, payload.Value);
                }

                sbEventData.records.Add(metricRecord);
            }

            return(sbEventData);
        }