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 { } }
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}")), });
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}"))); } }
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); }
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 { } }
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); }
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)); }
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; }