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));
        }
Example #2
0
        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)));
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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));
        }
Example #6
0
        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));
        }
Example #7
0
        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));
        }
Example #9
0
 public void ToEventLevel_ReturnsExpectedValue(LogLevel logLevel, EventLevel eventLevel)
 {
     Assert.Equal(eventLevel, LinuxEventGenerator.ToEventLevel(logLevel));
 }