public void ParseAzureMonitoringEvents(LogLevel level, string resourceId, string operationName, string category, string regionName, string properties) { _generator.LogAzureMonitorDiagnosticLogEvent(level, resourceId, operationName, category, regionName, properties); string evt = _events.Single(); string expectedRegex = $"(?<Level>[0-6]),(?<ResourceId>[^,]*),(?<OperationName>[^,]*),(?<Category>[^,]*),(?<RegionName>[^,]*),\"(?<Properties>[^,]*)\",(?<EventTimestamp>[^,]+),(?<PodName>[^,]*)"; Regex regex = new Regex(expectedRegex); var match = regex.Match(evt); Assert.True(match.Success); Assert.Equal(9, match.Groups.Count); var groupMatches = match.Groups.Cast <Group>().Select(p => p.Value).Skip(1).ToArray(); Assert.Collection(groupMatches, p => Assert.Equal((int)LinuxEventGenerator.ToEventLevel(level), int.Parse(p)), p => Assert.Equal(resourceId, p), p => Assert.Equal(operationName, p), p => Assert.Equal(category, p), p => Assert.Equal(regionName, p), p => Assert.Equal(properties, UnNormalize(p)), p => Assert.True(DateTime.TryParse(p, out DateTime dt)), p => Assert.Equal(_podName, p)); }
public void ParseAzureMonitoringEvents(LogLevel level, string resourceId, string operationName, string category, string regionName, string properties) { _generator.LogAzureMonitorDiagnosticLogEvent(level, resourceId, operationName, category, regionName, properties); string evt = _events.Single(); Regex regex = new Regex(LinuxContainerEventGenerator.AzureMonitorEventRegex); var match = regex.Match(evt); Assert.True(match.Success); Assert.Equal(10, match.Groups.Count); var groupMatches = match.Groups.Select(p => p.Value).Skip(1).ToArray(); Assert.Collection(groupMatches, p => Assert.Equal((int)LinuxEventGenerator.ToEventLevel(level), int.Parse(p)), p => Assert.Equal(resourceId, p), p => Assert.Equal(operationName, p), p => Assert.Equal(category, p), p => Assert.Equal(regionName, p), p => Assert.Equal(properties, UnNormalize(p)), p => Assert.Equal(_containerName.ToUpperInvariant(), p), p => Assert.Equal(_tenantId, p), p => Assert.True(DateTime.TryParse(p, out DateTime dt))); }
public void ParseLogEvents(LogLevel level, string subscriptionId, string appName, string functionName, string eventName, string source, string details, string summary, string exceptionType, string exceptionMessage, string functionInvocationId, string hostInstanceId, string activityId, string runtimeSiteName) { _generator.LogFunctionTraceEvent(level, subscriptionId, appName, functionName, eventName, source, details, summary, exceptionType, exceptionMessage, functionInvocationId, hostInstanceId, activityId, runtimeSiteName); var evt = _loggers[LinuxEventGenerator.FunctionsLogsCategory].Events.Single(); var regex = new Regex(LinuxAppServiceEventGenerator.TraceEventRegex); var match = regex.Match(evt); Assert.True(match.Success); Assert.Equal(16, match.Groups.Count); DateTime dt; var groupMatches = match.Groups.Select(p => p.Value).Skip(1).ToArray(); Assert.Collection(groupMatches, p => Assert.Equal((int)LinuxEventGenerator.ToEventLevel(level), int.Parse(p)), p => Assert.Equal(subscriptionId, p), p => Assert.Equal(appName, p), p => Assert.Equal(functionName, p), p => Assert.Equal(eventName, p), p => Assert.Equal(source, p), p => Assert.Equal(details, p), p => Assert.Equal(summary, p), p => Assert.Equal(ScriptHost.Version, p), p => Assert.True(DateTime.TryParse(p, out dt)), p => Assert.Equal(exceptionType, p), p => Assert.Equal(exceptionMessage, p), p => Assert.Equal(functionInvocationId, p), p => Assert.Equal(hostInstanceId, p), p => Assert.Equal(activityId, p)); }
public void ParseMetricEvents(string subscriptionId, string appName, string functionName, string eventName, long average, long minimum, long maximum, long count, string data, string runtimeSiteName, string slotName) { _generator.LogFunctionMetricEvent(subscriptionId, appName, functionName, eventName, average, minimum, maximum, count, DateTime.Now, data, runtimeSiteName, slotName); string evt = _events.Single(); var jObject = JObject.Parse(evt); Assert.Equal(14, jObject.Properties().Count()); DateTime dt; Assert.Collection(jObject.Properties(), p => Assert.Equal(ScriptConstants.LinuxLogEventStreamName, p.Value), p => Assert.Equal(subscriptionId, p.Value), p => Assert.Equal(appName, p.Value), p => Assert.Equal(functionName, p.Value), p => Assert.Equal(eventName, p.Value), p => Assert.Equal(average, long.Parse(p.Value.ToString())), p => Assert.Equal(minimum, long.Parse(p.Value.ToString())), p => Assert.Equal(maximum, long.Parse(p.Value.ToString())), p => Assert.Equal(count, long.Parse(p.Value.ToString())), p => Assert.Equal(ScriptHost.Version, p.Value), p => Assert.True(DateTime.TryParse(p.Value.ToString(), out dt)), p => Assert.Equal(LinuxEventGenerator.NormalizeString(data), p.Value), p => Assert.Equal(runtimeSiteName, p.Value), p => Assert.Equal(slotName, p.Value)); }
public void ParseLogEvents(LogLevel level, string subscriptionId, string appName, string functionName, string eventName, string source, string details, string summary, string exceptionType, string exceptionMessage, string functionInvocationId, string hostInstanceId, string activityId, string runtimeSiteName, string slotName) { _generator.LogFunctionTraceEvent(level, subscriptionId, appName, functionName, eventName, source, details, summary, exceptionType, exceptionMessage, functionInvocationId, hostInstanceId, activityId, runtimeSiteName, slotName, DateTime.UtcNow); string evt = _events.Single(); var jObject = JObject.Parse(evt); Assert.Equal(18, jObject.Properties().Count()); DateTime dt; Assert.Collection(jObject.Properties(), p => Assert.Equal(ScriptConstants.LinuxLogEventStreamName, p.Value), p => Assert.Equal((int)LinuxEventGenerator.ToEventLevel(level), int.Parse(p.Value.ToString())), p => Assert.Equal(subscriptionId, p.Value), p => Assert.Equal(appName, p.Value), p => Assert.Equal(functionName, p.Value), p => Assert.Equal(eventName, p.Value), p => Assert.Equal(source, p.Value), p => Assert.Equal(LinuxEventGenerator.NormalizeString(details), p.Value.ToString()), p => Assert.Equal(LinuxEventGenerator.NormalizeString(summary), p.Value.ToString()), p => Assert.Equal(ScriptHost.Version, p.Value), p => Assert.True(DateTime.TryParse(p.Value.ToString(), out dt)), p => Assert.Equal(exceptionType, p.Value.ToString()), p => Assert.Equal(LinuxEventGenerator.NormalizeString(exceptionMessage), p.Value.ToString()), p => Assert.Equal(functionInvocationId, p.Value.ToString()), p => Assert.Equal(hostInstanceId, p.Value.ToString()), p => Assert.Equal(activityId, p.Value), p => Assert.Equal(runtimeSiteName, p.Value), p => Assert.Equal(slotName, p.Value)); }
public void ParseAzureMonitoringEvents(LogLevel level, string resourceId, string operationName, string category, string regionName, string properties) { _generator.LogAzureMonitorDiagnosticLogEvent(level, resourceId, operationName, category, regionName, properties); string evt = _events.Single(); var jObject = JObject.Parse(evt); Assert.Equal(7, jObject.Properties().Count()); Assert.Collection(jObject.Properties(), p => Assert.Equal(ScriptConstants.LinuxAzureMonitorEventStreamName, p.Value), p => Assert.Equal((int)LinuxEventGenerator.ToEventLevel(level), int.Parse(p.Value.ToString())), p => Assert.Equal(resourceId, p.Value), p => Assert.Equal(operationName, p.Value), p => Assert.Equal(category, p.Value), p => Assert.Equal(regionName, p.Value), p => Assert.Equal(LinuxEventGenerator.NormalizeString(properties), p.Value)); }
public void ParseLogEvents(LogLevel level, string subscriptionId, string appName, string functionName, string eventName, string source, string details, string summary, string exceptionType, string exceptionMessage, string functionInvocationId, string hostInstanceId, string activityId, string runtimeSiteName, string slotName) { _generator.LogFunctionTraceEvent(level, subscriptionId, appName, functionName, eventName, source, details, summary, exceptionType, exceptionMessage, functionInvocationId, hostInstanceId, activityId, runtimeSiteName, slotName); string evt = _events.Single(); evt = JsonSerializeEvent(evt); Regex regex = new Regex(LinuxContainerEventGenerator.TraceEventRegex); var match = regex.Match(evt); Assert.True(match.Success); Assert.Equal(19, match.Groups.Count); DateTime dt; var groupMatches = match.Groups.Select(p => p.Value).Skip(1).ToArray(); Assert.Collection(groupMatches, p => Assert.Equal((int)LinuxEventGenerator.ToEventLevel(level), int.Parse(p)), p => Assert.Equal(subscriptionId, p), p => Assert.Equal(appName, p), p => Assert.Equal(functionName, p), p => Assert.Equal(eventName, p), p => Assert.Equal(source, p), p => Assert.Equal(details, UnNormalize(JsonUnescape(p))), p => Assert.Equal(summary, UnNormalize(JsonUnescape(p))), p => Assert.Equal(ScriptHost.Version, p), p => Assert.True(DateTime.TryParse(p, out dt)), p => Assert.Equal(exceptionType, p), p => Assert.Equal(exceptionMessage, UnNormalize(JsonUnescape(p))), p => Assert.Equal(functionInvocationId, p), p => Assert.Equal(hostInstanceId, p), p => Assert.Equal(activityId, p), p => Assert.Equal(_containerName.ToUpperInvariant(), p), p => Assert.Equal(_stampName, p), p => Assert.Equal(_tenantId, p)); }
public void ParseLogEvents(LogLevel level, string subscriptionId, string appName, string functionName, string eventName, string source, string details, string summary, string exceptionType, string exceptionMessage, string functionInvocationId, string hostInstanceId, string activityId, string runtimeSiteName, string slotName) { _generator.LogFunctionTraceEvent(level, subscriptionId, appName, functionName, eventName, source, details, summary, exceptionType, exceptionMessage, functionInvocationId, hostInstanceId, activityId, runtimeSiteName, slotName, DateTime.UtcNow); string expectedRegex = $"(?<Level>[0-6]),(?<SubscriptionId>[^,]*),(?<AppName>[^,]*),(?<FunctionName>[^,]*),(?<EventName>[^,]*),(?<Source>[^,]*),\"(?<Details>.*)\",\"(?<Summary>.*)\",(?<HostVersion>[^,]*),(?<EventTimestamp>[^,]+),(?<ExceptionType>[^,]*),\"(?<ExceptionMessage>.*)\",(?<FunctionInvocationId>[^,]*),(?<HostInstanceId>[^,]*),(?<ActivityId>[^,\"]*),(?<RuntimeSiteName>[^,]*),(?<SlotName>[^,]*),(?<PodName>[^,]*)"; Regex regex = new Regex(expectedRegex); string evt = _events.Single(); var match = regex.Match(evt); Assert.True(match.Success); Assert.Equal(19, match.Groups.Count); DateTime dt; var groupMatches = match.Groups.Cast <Group>().Select(p => p.Value).Skip(1).ToArray(); Assert.Collection(groupMatches, p => Assert.Equal((int)LinuxEventGenerator.ToEventLevel(level), int.Parse(p)), p => Assert.Equal(subscriptionId, p), p => Assert.Equal(appName, p), p => Assert.Equal(functionName, p), p => Assert.Equal(eventName, p), p => Assert.Equal(source, p), p => Assert.Equal(details, UnNormalize(p)), p => Assert.Equal(summary, UnNormalize(p)), p => Assert.Equal(ScriptHost.Version, p), p => Assert.True(DateTime.TryParse(p, out dt)), p => Assert.Equal(exceptionType, p), p => Assert.Equal(exceptionMessage, UnNormalize(p)), p => Assert.Equal(functionInvocationId, p), p => Assert.Equal(hostInstanceId, p), p => Assert.Equal(activityId, p), p => Assert.Equal(runtimeSiteName, p), p => Assert.Equal(slotName, p), p => Assert.Equal(_podName, p)); }
public void ToEventLevel_ReturnsExpectedValue(LogLevel logLevel, EventLevel eventLevel) { Assert.Equal(eventLevel, LinuxEventGenerator.ToEventLevel(logLevel)); }