Example #1
0
        private IVsTelemetryEvent CreateTelemetryEvent(FunctionId functionId, string eventKey = null, KeyValueLogMessage logMessage = null)
        {
            var eventName      = functionId.GetEventName(eventKey);
            var telemetryEvent = _service.CreateEvent(eventName);

            if (logMessage == null || !logMessage.ContainsProperty)
            {
                return(telemetryEvent);
            }

            foreach (var kv in logMessage.Properties)
            {
                var propertyName = functionId.GetPropertyName(kv.Key);

                // call SetProperty. VS telemetry will take care of finding correct
                // API based on given object type for us.
                //
                // numeric data will show up in ES with measurement prefix.
                telemetryEvent.SetProperty(propertyName, kv.Value);
            }

            return(telemetryEvent);
        }