Exemple #1
0
        public void Log(FunctionId functionId, LogMessage logMessage)
        {
            var kvLogMessage = logMessage as KeyValueLogMessage;

            if (kvLogMessage == null)
            {
                return;
            }

            try
            {
                // guard us from exception thrown by telemetry
                if (!kvLogMessage.ContainsProperty)
                {
                    _session.PostSimpleEvent(functionId.GetEventName());
                    return;
                }

                var telemetryEvent = CreateTelemetryEvent(functionId, logMessage: kvLogMessage);
                _session.PostEvent(telemetryEvent);
            }
            catch
            {
            }
        }
Exemple #2
0
        private object CreateAndStartScope(LogType kind, FunctionId functionId)
        {
            // use object since TelemetryScope<UserTask> and
            // TelemetryScope<Operation> can't be shared
            var eventName = functionId.GetEventName();

            return(kind switch
            {
                LogType.Trace => _session.StartOperation(eventName),
                LogType.UserAction => _session.StartUserTask(eventName),
                _ => (object)FatalError.Report(new Exception($"unknown type: {kind}")),
            });
Exemple #3
0
        private object CreateAndStartScope(LogType kind, FunctionId functionId)
        {
            // use object since TelemetryScope<UserTask> and
            // TelemetryScope<Operation> can't be shared
            var eventName = functionId.GetEventName();

            return(kind switch
            {
                LogType.Trace => _session.StartOperation(eventName),
                LogType.UserAction => _session.StartUserTask(eventName),
                _ => throw ExceptionUtilities.UnexpectedValue(kind),
            });
        private object CreateAndStartScope(LogType kind, FunctionId functionId)
        {
            // use object since TelemetryScope<UserTask> and
            // TelemetryScope<Operation> can't be shared
            var eventName = functionId.GetEventName();

            switch (kind)
            {
            case LogType.Trace:
                return(_session.StartOperation(eventName));

            case LogType.UserAction:
                return(_session.StartUserTask(eventName));

            default:
                return(FatalError.Report(new Exception($"unknown type: {kind}")));
            }
        }
Exemple #5
0
        public void Log(FunctionId functionId, LogMessage logMessage)
        {
            if (IgnoreMessage(logMessage))
            {
                return;
            }

            try
            {
                if (logMessage is KeyValueLogMessage {
                    ContainsProperty : false
                })
                {
                    // guard us from exception thrown by telemetry
                    _session.PostEvent(functionId.GetEventName());
                    return;
                }

                var telemetryEvent = CreateTelemetryEvent(functionId, logMessage);
                _session.PostEvent(telemetryEvent);
            }
Exemple #6
0
        public void Log(FunctionId functionId, LogMessage logMessage)
        {
            if (!(logMessage is KeyValueLogMessage kvLogMessage))
            {
                return;
            }

            try
            {
                // guard us from exception thrown by telemetry
                if (!kvLogMessage.ContainsProperty)
                {
                    _session.PostEvent(functionId.GetEventName());
                    return;
                }

                var telemetryEvent = CreateTelemetryEvent(functionId, kvLogMessage);
                _session.PostEvent(telemetryEvent);
            }
            catch { }
        }
Exemple #7
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);
        }
Exemple #8
0
        public void Log(FunctionId functionId, LogMessage logMessage)
        {
            var kvLogMessage = logMessage as KeyValueLogMessage;
            if (kvLogMessage == null)
            {
                return;
            }

            try
            {
                // guard us from exception thrown by telemetry
                if (!kvLogMessage.ContainsProperty)
                {
                    _session.PostSimpleEvent(functionId.GetEventName());
                    return;
                }

                var telemetryEvent = CreateTelemetryEvent(functionId, logMessage: kvLogMessage);
                _session.PostEvent(telemetryEvent);
            }
            catch
            {
            }
        }
 public void LogBlockStart(FunctionId functionId, LogMessage logMessage, int uniquePairId, CancellationToken cancellationToken)
 {
     var eventName = functionId.GetEventName();
     _pendingActivities[uniquePairId] = new TelemetryActivity(_service, eventName, startCodeMarker: 0, endCodeMarker: 0, codeMarkerData: null, parentCorrelationId: Guid.Empty);
 }
        private TelemetryEvent CreateTelemetryEvent(FunctionId functionId, KeyValueLogMessage logMessage)
        {
            var eventName = functionId.GetEventName();

            return(AppendProperties(new TelemetryEvent(eventName), functionId, logMessage));
        }
        public void LogBlockStart(FunctionId functionId, LogMessage logMessage, int uniquePairId, CancellationToken cancellationToken)
        {
            var eventName = functionId.GetEventName();

            _pendingActivities[uniquePairId] = new TelemetryActivity(_service, eventName, startCodeMarker: 0, endCodeMarker: 0, codeMarkerData: null, parentCorrelationId: Guid.Empty);
        }
Exemple #12
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;
        }