diff --git a/deploy/helm/MTM.yaml b/deploy/helm/MTM.yaml index 5020d89bf..90139f703 100644 --- a/deploy/helm/MTM.yaml +++ b/deploy/helm/MTM.yaml @@ -27,9 +27,12 @@ enviromentVariables: WorkflowManager__storage__settings__accessKey: "rootminio" WorkflowManager__storage__settings__accessToken: "rootminio" WorkflowManager__storage__settings__executableLocation: "mc" - WorkflowManager__messaging__publisherSettings__endpoint: "rabbitmq.monai" - WorkflowManager__messaging__subscriberSettings__endpoint: "rabbitmq.monai" - WorkloadManagerDatabase__ConnectionString: "mongodb://root:rootpassword@mongo-monai.monai:27017" + WorkflowManager__messaging__publisherSettings__endpoint: "rabbit-monai.argo" + WorkflowManager__messaging__publisherSettings__port: "5672" + WorkflowManager__messaging__subscriberSettings__endpoint: "rabbit-monai.argo" + WorkflowManager__messaging__subscriberSettings__port: "5672" + Serilog__WriteTo__0__Args__indexFormat: "index-monai{0:yyyy.MM}" + Serilog__WriteTo__0__Args__nodeUris: "http://192.168.0.22:9200" enviromentVariablesFromSecrets: secrets: diff --git a/guidelines/mwm-developer-setup.md b/guidelines/mwm-developer-setup.md index 8b98da441..cbf9e2f58 100644 --- a/guidelines/mwm-developer-setup.md +++ b/guidelines/mwm-developer-setup.md @@ -74,7 +74,7 @@ Open the post/workflows tab and click `try it out`, paste in the following to th "version": "1.0.0", "description": "Attempt at making a workflow", "informatics_gateway": { - "ae_title": "MonaiSCU", + "ae_title": "MONAISCU", "data_origins": [ "MY_SCANNER" ], @@ -91,25 +91,19 @@ Open the post/workflows tab and click `try it out`, paste in the following to th "namespace":"argo", "workflow_template_name": "simple-workflow", "server_url": "https://localhost:2746", - "allow_insecure": true, - "messaging_endpoint": "rabbit-monai", - "messaging_username" : "admin", - "messaging_password" : "admin", - "messaging_topic" : "md.tasks.callback", - "messaging_exchange" : "monaideploy", - "messaging_vhost" : "monaideploy", + "allow_insecure": true }, "artifacts": { "input": [ { "name": "input_diacom", - "value": "{{ context.input.dicom }}/input_dicom" + "value": "{{ context.input.dicom }}" } ], "output": [ { "name": "report", - "value": "{{ context.output }}/report", + "value": "{{ context.output }}", "Mandatory": false } ] diff --git a/src/TaskManager/Database/Logging/Log.1000.Database.cs b/src/TaskManager/Database/Logging/Log.1000.Database.cs index f4fb34eb4..776b450b8 100644 --- a/src/TaskManager/Database/Logging/Log.1000.Database.cs +++ b/src/TaskManager/Database/Logging/Log.1000.Database.cs @@ -23,10 +23,10 @@ public static partial class Log [LoggerMessage(EventId = 1000, Level = LogLevel.Error, Message = "Database call failed in {methodName}.")] public static partial void DatabaseException(this ILogger logger, string methodName, Exception ex); - [LoggerMessage(EventId = 1001, Level = LogLevel.Information, Message = "Task dispatch event saved {taskExecutionId}.")] - public static partial void TaskDispatchEventSaved(this ILogger logger, string taskExecutionId); + [LoggerMessage(EventId = 1001, Level = LogLevel.Information, Message = "Task dispatch event saved {executionId}.")] + public static partial void TaskDispatchEventSaved(this ILogger logger, string executionId); - [LoggerMessage(EventId = 1002, Level = LogLevel.Information, Message = "Task dispatch event deleted {taskExecutionId}.")] - public static partial void TaskDispatchEventDeleted(this ILogger logger, string taskExecutionId); + [LoggerMessage(EventId = 1002, Level = LogLevel.Information, Message = "Task dispatch event deleted {executionId}.")] + public static partial void TaskDispatchEventDeleted(this ILogger logger, string executionId); } } diff --git a/src/TaskManager/Database/packages.lock.json b/src/TaskManager/Database/packages.lock.json index e9ab2f19f..a1f2bb136 100644 --- a/src/TaskManager/Database/packages.lock.json +++ b/src/TaskManager/Database/packages.lock.json @@ -13,9 +13,9 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Direct", - "requested": "[6.0.1, )", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "requested": "[6.0.2, )", + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.Options": { "type": "Direct", diff --git a/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs b/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs index 78413cf73..aaa40ab77 100644 --- a/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs +++ b/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs @@ -129,7 +129,13 @@ private void ValidateEvent() public override async Task ExecuteTask(CancellationToken cancellationToken = default) { - using var loggerScope = _logger.BeginScope($"Workflow ID={Event.WorkflowInstanceId}, Task ID={Event.TaskId}, Execution ID={Event.ExecutionId}, Argo namespace={_namespace}"); + using var loggingScope = _logger.BeginScope(new Dictionary + { + ["correlationId"] = Event.CorrelationId, + ["workflowInstanceId"] = Event.WorkflowInstanceId, + ["taskId"] = Event.TaskId, + ["argoNamespace"] = _namespace + }); Workflow workflow; try @@ -237,7 +243,7 @@ private Dictionary GetExecutuionStats(Workflow workflow) } var stats = new Dictionary { - { "workflowId", Event.WorkflowInstanceId }, + { "workflowInstanceId", Event.WorkflowInstanceId }, { "duration", duration.HasValue ? duration.Value.TotalMilliseconds.ToString() : string.Empty }, { "startedAt", workflow.Status?.StartedAt.ToString() ?? string.Empty }, { "finishedAt", workflow.Status?.FinishedAt.ToString() ?? string.Empty } diff --git a/src/TaskManager/Plug-ins/Argo/packages.lock.json b/src/TaskManager/Plug-ins/Argo/packages.lock.json index dfd7c670f..e24e164e4 100644 --- a/src/TaskManager/Plug-ins/Argo/packages.lock.json +++ b/src/TaskManager/Plug-ins/Argo/packages.lock.json @@ -28,9 +28,9 @@ }, "Microsoft.Extensions.ApiDescription.Client": { "type": "Direct", - "requested": "[6.0.8, )", - "resolved": "6.0.8", - "contentHash": "fN3zEuHjSql9w2Md29dYkmPbAijxr+LqxoOoJ9B8G2j+fHgAK/N0g89miIUwepwbk8izTi5m8cVyWTKQgkd+ww==" + "requested": "[6.0.9, )", + "resolved": "6.0.9", + "contentHash": "DjwJLPdOzBceBV+V91FfFGHGV2I0UKfOpCLtCXQhaSdkyDF/0Ce2j0GnNrqYesU/LJ9R6n6mIU8fgieD5absMg==" }, "Monai.Deploy.Messaging": { "type": "Direct", @@ -416,8 +416,8 @@ }, "System.IO.Abstractions": { "type": "Transitive", - "resolved": "17.1.1", - "contentHash": "LWOM12Bd0kp/gaH4g1o/O2/6JDcHF/fuctF1IqDZt0aAqU2BwGiMihi9Cdcm5jJz8La1wFWbRPuRui8WeX6m8w==" + "resolved": "17.2.3", + "contentHash": "VcozGeE4SxIo0cnXrDHhbrh/Gb8KQnZ3BvMelvh+iw0PrIKtuuA46U2Xm4e4pgnaWFgT4RdZfTpWl/WPRdw0WQ==" }, "System.Memory": { "type": "Transitive", diff --git a/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj b/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj index 5f4427591..854b66a00 100644 --- a/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj +++ b/src/TaskManager/TaskManager/Monai.Deploy.WorkflowManager.TaskManager.csproj @@ -1,108 +1,114 @@ - - - - - - Exe - net6.0 - enable - enable - false - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Always - - - Always - - - PreserveNewest - - - - - true - true - ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset - - - - - - - - - - - - - - - - - - - + + + + + + Exe + net6.0 + enable + enable + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Always + + + Always + + + PreserveNewest + + + + + true + true + ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset + + + + + + + + + + + + + + + + + + + diff --git a/src/TaskManager/TaskManager/Program.cs b/src/TaskManager/TaskManager/Program.cs index 55fc2b4f4..cc5d83dfc 100644 --- a/src/TaskManager/TaskManager/Program.cs +++ b/src/TaskManager/TaskManager/Program.cs @@ -15,6 +15,8 @@ */ using System.IO.Abstractions; +using System.Reflection; +using Elastic.CommonSchema.Serilog; using Microsoft.AspNetCore.StaticFiles; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -29,6 +31,9 @@ using Monai.Deploy.WorkflowManager.TaskManager.Database.Options; using Monai.Deploy.WorkflowManager.TaskManager.Extensions; using MongoDB.Driver; +using Serilog; +using Serilog.Events; +using Serilog.Exceptions; namespace Monai.Deploy.WorkflowManager.TaskManager { @@ -64,6 +69,21 @@ public static IHostBuilder CreateHostBuilder(string[] args) => configureLogging.AddConfiguration(builderContext.Configuration.GetSection("Logging")); configureLogging.AddFile(o => o.RootPath = AppContext.BaseDirectory); }) + .UseSerilog((context, services, configuration) => configuration + .ReadFrom.Configuration(context.Configuration) + .ReadFrom.Services(services) + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Debug() + .Enrich.FromLogContext() + .Enrich.WithExceptionDetails() + .Enrich.WithProperty("dllversion", Assembly.GetEntryAssembly()?.GetName().Version) + .Enrich.WithProperty("dllName", Assembly.GetEntryAssembly()?.GetName().Name) + .WriteTo.File( + path: "logs/MTM-.log", + rollingInterval: RollingInterval.Day, + formatter: new EcsTextFormatter()) + .WriteTo.Console()) + .ConfigureServices((hostContext, services) => { ConfigureServices(hostContext, services); diff --git a/src/TaskManager/TaskManager/TaskManager.cs b/src/TaskManager/TaskManager/TaskManager.cs index ff23713cd..bc221865a 100644 --- a/src/TaskManager/TaskManager/TaskManager.cs +++ b/src/TaskManager/TaskManager/TaskManager.cs @@ -31,6 +31,7 @@ using Monai.Deploy.WorkflowManager.TaskManager.API.Extensions; using Monai.Deploy.WorkflowManager.TaskManager.API.Models; using Monai.Deploy.WorkflowManager.TaskManager.Logging; +using Minio.DataModel; namespace Monai.Deploy.WorkflowManager.TaskManager { @@ -133,12 +134,19 @@ private async Task TaskCallBackGeneric(MessageReceivedEventArgs args, Func + { + ["correlationId"] = args.Message.CorrelationId, + ["messageId"] = args.Message.MessageId, + ["messageType"] = args.Message.MessageDescription + }); + JsonMessage? message = null; try { message = args.Message.ConvertToJsonMessage(); + // Run action on the message await func(message).ConfigureAwait(false); } @@ -320,6 +328,13 @@ private async Task HandleDispatchTask(JsonMessage message) var eventInfo = new API.Models.TaskDispatchEventInfo(message.Body); try { + using var messageLoggingScope = _logger.BeginScope(new Dictionary + { + ["workflowInstanceId"] = eventInfo.Event.WorkflowInstanceId, + ["taskId"] = eventInfo.Event.TaskId, + ["executionId"] = eventInfo.Event.ExecutionId + }); + await _taskDispatchEventService.CreateAsync(eventInfo).ConfigureAwait(false); message.Body.Validate(); pluginAssembly = _options.Value.TaskManager.PluginAssemblyMappings[message.Body.TaskPluginType]; @@ -536,7 +551,13 @@ private async Task HandleMessageException(MessageBase message, string WorkflowIn return; } - using var loggerScope = _logger.BeginScope($"Workflow ID={WorkflowInstanceId}, Execution ID={executionId}, Task ID={taskId}, Correlation ID={message.CorrelationId}"); + using var loggingScope = (_logger.BeginScope(new Dictionary + { + ["correlationId"] = message.CorrelationId, + ["workflowInstanceId"] = WorkflowInstanceId, + ["taskId"] = taskId, + ["executionId"] = executionId + })); try { diff --git a/src/TaskManager/TaskManager/appsettings.Development.json b/src/TaskManager/TaskManager/appsettings.Development.json index 0233231cf..fe9f99175 100644 --- a/src/TaskManager/TaskManager/appsettings.Development.json +++ b/src/TaskManager/TaskManager/appsettings.Development.json @@ -96,21 +96,6 @@ "TimestampFormat": " HH:mm:ss ", "UseUtcTimestamp": true } - }, - "File": { - "BasePath": "Logs", - "FileEncodingName": "utf-8", - "DateFormat": "yyyyMMdd", - "CounterFormat": "000", - "MaxFileSize": 10485760, - "IncludeScopes": true, - "MaxQueueSize": 100, - "TextBuilderType": "Monai.Deploy.WorkflowManager.Configuration.Logging.FileLoggingTextFormatter, Monai.Deploy.WorkflowManager.Configuration", - "Files": [ - { - "Path": "MWM--.log" - } - ] } }, "Kestrel": { diff --git a/src/TaskManager/TaskManager/appsettings.Local.json b/src/TaskManager/TaskManager/appsettings.Local.json index 1cb9bd295..75c15831b 100644 --- a/src/TaskManager/TaskManager/appsettings.Local.json +++ b/src/TaskManager/TaskManager/appsettings.Local.json @@ -98,21 +98,6 @@ "TimestampFormat": " HH:mm:ss ", "UseUtcTimestamp": true } - }, - "File": { - "BasePath": "Logs", - "FileEncodingName": "utf-8", - "DateFormat": "yyyyMMdd", - "CounterFormat": "000", - "MaxFileSize": 10485760, - "IncludeScopes": true, - "MaxQueueSize": 100, - "TextBuilderType": "Monai.Deploy.WorkflowManager.Configuration.Logging.FileLoggingTextFormatter, Monai.Deploy.WorkflowManager.Configuration", - "Files": [ - { - "Path": "MWM--.log" - } - ] } }, "Kestrel": { diff --git a/src/TaskManager/TaskManager/appsettings.json b/src/TaskManager/TaskManager/appsettings.json index aedfaac4a..5460d0fe7 100644 --- a/src/TaskManager/TaskManager/appsettings.json +++ b/src/TaskManager/TaskManager/appsettings.json @@ -100,21 +100,33 @@ "TimestampFormat": " HH:mm:ss ", "UseUtcTimestamp": true } + } + }, + "Serilog": { + "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ], + "Properties": { + "enviroment": "Production", + "serviceName": "MTM" }, - "File": { - "BasePath": "Logs", - "FileEncodingName": "utf-8", - "DateFormat": "yyyyMMdd", - "CounterFormat": "000", - "MaxFileSize": 10485760, - "IncludeScopes": true, - "MaxQueueSize": 100, - "TextBuilderType": "Monai.Deploy.WorkflowManager.Configuration.Logging.FileLoggingTextFormatter, Monai.Deploy.WorkflowManager.Configuration", - "Files": [ - { - "Path": "MWM--.log" + "WriteTo": [ + { + "Name": "File", + "Args": { + "path": "logs/MTM-.log", + "rollingInterval": "Day", + "rollOnFileSizeLimit": true, + "fileSizeLimitBytes": "10485760", + "retainedFileCountLimit": 30, + "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog" } - ] - } + }, + { + "Name": "Http", + "Args": { + //"requestUri": "http://192.168.0.62:5000", + "queueLimitBytes": null + } + } + ] } } \ No newline at end of file diff --git a/src/TaskManager/TaskManager/packages.lock.json b/src/TaskManager/TaskManager/packages.lock.json index 2791da418..2f17a019b 100644 --- a/src/TaskManager/TaskManager/packages.lock.json +++ b/src/TaskManager/TaskManager/packages.lock.json @@ -2,6 +2,26 @@ "version": 1, "dependencies": { "net6.0": { + "Elastic.CommonSchema": { + "type": "Direct", + "requested": "[1.5.3, )", + "resolved": "1.5.3", + "contentHash": "JgwhfThYY/s17asUiBCUVqnZtDdGTWO/2hTPG01QDfw2+T6kfwskrj5eh6XpBZsOh6r9SpBL95vSsU+q44i7Zg==", + "dependencies": { + "System.Text.Json": "4.7.0" + } + }, + "Elastic.CommonSchema.Serilog": { + "type": "Direct", + "requested": "[1.5.3, )", + "resolved": "1.5.3", + "contentHash": "bp2qHOWmN15fTKUecFMt7oCra68I1cm3yAEmwPcLuz4v2pQ5YxC8nVtyCTSSibquUS/ZPH5JInjlmuywV3UoyQ==", + "dependencies": { + "Elastic.CommonSchema": "1.5.3", + "Microsoft.AspNetCore.Http.Abstractions": "2.1.0", + "Serilog": "2.9.0" + } + }, "Karambolo.Extensions.Logging.File": { "type": "Direct", "requested": "[3.3.1, )", @@ -135,6 +155,52 @@ "Monai.Deploy.Storage.S3Policy": "0.2.5" } }, + "Serilog.AspNetCore": { + "type": "Direct", + "requested": "[6.0.1, )", + "resolved": "6.0.1", + "contentHash": "5XW90k62V7G9I0D/j9Iz+NyRBB6/SnoFpHUPeLnV40gONV2vs2A/ewWi91QVjQmyHBfzFeqIrkvE/DJMZ0alTg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "5.0.0", + "Microsoft.Extensions.Logging": "5.0.0", + "Serilog": "2.10.0", + "Serilog.Extensions.Hosting": "5.0.1", + "Serilog.Formatting.Compact": "1.1.0", + "Serilog.Settings.Configuration": "3.3.0", + "Serilog.Sinks.Console": "4.0.1", + "Serilog.Sinks.Debug": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } + }, + "Serilog.Enrichers.Environment": { + "type": "Direct", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "DMrj3A4l65kc4JouQyZjjFv7N58Y7lGsB81kSzorTwUGeI2wrTy7CVwSOfG90/Pcu/HV5bwGrUmxDZ38pON+5Q==", + "dependencies": { + "Serilog": "2.3.0" + } + }, + "Serilog.Exceptions": { + "type": "Direct", + "requested": "[8.4.0, )", + "resolved": "8.4.0", + "contentHash": "nc/+hUw3lsdo0zCj0KMIybAu7perMx79vu72w0za9Nsi6mWyNkGXxYxakAjWB7nEmYL6zdmhEQRB4oJ2ALUeug==", + "dependencies": { + "Serilog": "2.8.0", + "System.Reflection.TypeExtensions": "4.7.0" + } + }, + "Serilog.Sinks.Http": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "eHyl2/93Roymf2eudPl/6Eeu2GQ93Ucy4GM1UPF0jyd7CIW8r+Bk5ohdbjjyjB9TQSpP2ovOuj6ltf9DjoWHtg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } + }, "Ardalis.GuardClauses": { "type": "Transitive", "resolved": "4.0.1", @@ -183,8 +249,8 @@ }, "Docker.DotNet": { "type": "Transitive", - "resolved": "3.125.10", - "contentHash": "sKu8AFiRPao1IqYPUT2mAxT0c7F+dgEfOonuVfgn5FYdHccHdL9Ge4Jsem0KHlxYzqE6QpOFDt1hR/J1XzqogQ==", + "resolved": "3.125.12", + "contentHash": "lkDh6PUV8SIM1swPCkd3f+8zGB7Z9Am3C2XBLqAjyIIp5jQBCsDFrtbtA1QiVdFMWdYcJscrX/gzzG50kRj0jQ==", "dependencies": { "Newtonsoft.Json": "13.0.1", "System.Buffers": "4.5.1", @@ -250,6 +316,23 @@ "YamlDotNet": "11.2.1" } }, + "Microsoft.AspNetCore.Http.Abstractions": { + "type": "Transitive", + "resolved": "2.1.0", + "contentHash": "vbFDyKsSYBnxl3+RABtN79b0vsTcG66fDY8vD6Nqvu9uLtSej70Q5NcbGlnN6bJpZci5orSdgFTHMhBywivDPg==", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.1.0", + "System.Text.Encodings.Web": "4.5.0" + } + }, + "Microsoft.AspNetCore.Http.Features": { + "type": "Transitive", + "resolved": "2.1.0", + "contentHash": "UmkUePxRjsQW0j5euFFscBwjvTu25b8+qIK/2fI3GvcqQ+mkwgbWNAT8b/Gkoei1m2bTWC07lSdutuRDPPLcJA==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.1.0" + } + }, "Microsoft.CSharp": { "type": "Transitive", "resolved": "4.7.0", @@ -347,6 +430,14 @@ "resolved": "6.0.0", "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" }, + "Microsoft.Extensions.DependencyModel": { + "type": "Transitive", + "resolved": "3.0.0", + "contentHash": "Iaectmzg9Dc4ZbKX/FurrRjgO/I8rTumL5UU+Uube6vZuGetcnXoIgTA94RthFWePhdMVm8MMhVFJZdbzMsdyQ==", + "dependencies": { + "System.Text.Json": "4.6.0" + } + }, "Microsoft.Extensions.Diagnostics.HealthChecks": { "type": "Transitive", "resolved": "6.0.8", @@ -408,8 +499,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", @@ -710,6 +801,74 @@ "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, + "Serilog": { + "type": "Transitive", + "resolved": "2.10.0", + "contentHash": "+QX0hmf37a0/OZLxM3wL7V6/ADvC1XihXN4Kq/p6d8lCPfgkRdiuhbWlMaFjR9Av0dy5F0+MBeDmDdRZN/YwQA==" + }, + "Serilog.Extensions.Hosting": { + "type": "Transitive", + "resolved": "5.0.1", + "contentHash": "o0VUyt3npAqOJaZ6CiWLFeLYs3CYJwfcAqaUqprzsmj7qYIvorcn8cZLVR8AQX6vzX7gee2bD0sQeA17iO2/Aw==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.8", + "Microsoft.Extensions.Hosting.Abstractions": "3.1.8", + "Microsoft.Extensions.Logging.Abstractions": "3.1.8", + "Serilog": "2.10.0", + "Serilog.Extensions.Logging": "3.1.0" + } + }, + "Serilog.Extensions.Logging": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "IWfem7wfrFbB3iw1OikqPFNPEzfayvDuN4WP7Ue1AVFskalMByeWk3QbtUXQR34SBkv1EbZ3AySHda/ErDgpcg==", + "dependencies": { + "Microsoft.Extensions.Logging": "2.0.0", + "Serilog": "2.9.0" + } + }, + "Serilog.Formatting.Compact": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "pNroKVjo+rDqlxNG5PXkRLpfSCuDOBY0ri6jp9PLe505ljqwhwZz8ospy2vWhQlFu5GkIesh3FcDs4n7sWZODA==", + "dependencies": { + "Serilog": "2.8.0" + } + }, + "Serilog.Settings.Configuration": { + "type": "Transitive", + "resolved": "3.3.0", + "contentHash": "7GNudISZwqaT902hqEL2OFGTZeUFWfnrNLupJkOqeF41AR3GjcxX+Hwb30xb8gG2/CDXsCMVfF8o0+8KY0fJNg==", + "dependencies": { + "Microsoft.Extensions.DependencyModel": "3.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "2.0.0", + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.Console": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "apLOvSJQLlIbKlbx+Y2UDHSP05kJsV7mou+fvJoRGs/iR+jC22r8cuFVMjjfVxz/AD4B2UCltFhE1naRLXwKNw==", + "dependencies": { + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.Debug": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "Y6g3OBJ4JzTyyw16fDqtFcQ41qQAydnEvEqmXjhwhgjsnG/FaJ8GUqF5ldsC/bVkK8KYmqrPhDO+tm4dF6xx4A==", + "dependencies": { + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.File": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "uwV5hdhWPwUH1szhO8PJpFiahqXmzPzJT/sOijH/kFgUx+cyoDTMM8MHD0adw9+Iem6itoibbUXHYslzXsLEAg==", + "dependencies": { + "Serilog": "2.10.0" + } + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -970,6 +1129,11 @@ "System.Runtime": "4.3.0" } }, + "System.Reflection.TypeExtensions": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA==" + }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", @@ -1288,7 +1452,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", "Microsoft.Extensions.Options": "[6.0.0, )", "Monai.Deploy.WorkflowManager.TaskManager.API": "[1.0.0, )", "MongoDB.Bson": "[2.17.1, )", @@ -1298,7 +1462,7 @@ "monai.deploy.workflowmanager.taskmanager.docker": { "type": "Project", "dependencies": { - "Docker.DotNet": "[3.125.10, )", + "Docker.DotNet": "[3.125.12, )", "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", "Monai.Deploy.WorkflowManager.TaskManager.API": "[1.0.0, )" } diff --git a/src/WorkflowManager/ConditionsResolver/packages.lock.json b/src/WorkflowManager/ConditionsResolver/packages.lock.json index 6d07fd4ad..29f970ac4 100644 --- a/src/WorkflowManager/ConditionsResolver/packages.lock.json +++ b/src/WorkflowManager/ConditionsResolver/packages.lock.json @@ -13,15 +13,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.13.4", - "contentHash": "aYrLHov6J6di5zFY3hxGSubsm955f1/YjwC2djl8sRY39puB3lNm7H8zbbpvch+TmLRHBmjLNI4tfL7siwzfAQ==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.199", - "contentHash": "nFIu6I/P6FG9/XQgB05Vlne3N4H9F1E2/p56UKITWMSytcbRMEaYdcVj+9Z8ng1x0TO2rpw98tdEX2yP/dfCSQ==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.13.4, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "DnsClient": { @@ -308,8 +308,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.ObjectPool": { "type": "Transitive", @@ -457,6 +457,11 @@ "Microsoft.NETCore.Targets": "1.0.1" } }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -852,7 +857,7 @@ "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Microsoft.Extensions.Configuration": "[6.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "MongoDB.Bson": "[2.17.1, )", @@ -863,7 +868,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", "Microsoft.Extensions.Options": "[6.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", @@ -875,8 +880,9 @@ "type": "Project", "dependencies": { "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", - "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } }, "monai.deploy.workflowmanager.storage": { diff --git a/src/WorkflowManager/Database/packages.lock.json b/src/WorkflowManager/Database/packages.lock.json index e42d09328..e8dcecd4c 100644 --- a/src/WorkflowManager/Database/packages.lock.json +++ b/src/WorkflowManager/Database/packages.lock.json @@ -13,9 +13,9 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Direct", - "requested": "[6.0.1, )", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "requested": "[6.0.2, )", + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.Options": { "type": "Direct", @@ -49,15 +49,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.12.29", - "contentHash": "bxSbEjbCyAzjmUpxVKXiQhkXEvb3w9OHL7AOL9LItY1f5xLB9/qbtHoi5FvmZXTPPi2RahPJr9fDyHMLwQnxiA==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.193", - "contentHash": "xDZAerod8OUtyIgIYPiGRO+PRdGDjepGGgH2/DuAK/aoARU/FinaFr+yuUjJItrP53dCezbpdFVSRa1BFpIGfA==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.12.29, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "DnsClient": { @@ -438,6 +438,11 @@ "Microsoft.NETCore.Targets": "1.0.1" } }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -823,19 +828,20 @@ "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "3.7.1.193", - "Microsoft.Extensions.Configuration": "6.0.1", - "Monai.Deploy.Messaging": "0.1.6-rc0001", - "MongoDB.Bson": "2.17.1", - "Newtonsoft.Json": "13.0.1" + "AWSSDK.SecurityToken": "[3.7.1.203, )", + "Microsoft.Extensions.Configuration": "[6.0.1, )", + "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", + "MongoDB.Bson": "[2.17.1, )", + "Newtonsoft.Json": "[13.0.1, )" } }, "monai.deploy.workflowmanager.logging": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Mvc.Core": "2.2.5", - "Microsoft.Extensions.Logging.Abstractions": "6.0.1", - "Monai.Deploy.WorkflowManager.Contracts": "1.0.0" + "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } } } diff --git a/src/WorkflowManager/Logging/Attributes/AuditAttribute.cs b/src/WorkflowManager/Logging/Attributes/AuditAttribute.cs index fa270074d..ceba9391c 100644 --- a/src/WorkflowManager/Logging/Attributes/AuditAttribute.cs +++ b/src/WorkflowManager/Logging/Attributes/AuditAttribute.cs @@ -39,8 +39,21 @@ public LogActionFilterAttribute(ILogger logger) /// The current executing context. public override void OnActionExecuting(ActionExecutingContext context) { - _logger.LogControllerStartTime(context); - base.OnActionExecuting(context); + var request = context.HttpContext.Request; + var correlationId = request.Headers["correlationId"].FirstOrDefault() ?? Guid.NewGuid().ToString(); + var startTime = DateTime.UtcNow; + context.HttpContext.Items["startTime"] = startTime; + context.HttpContext.Items["correlationId"] = correlationId; + + using (_logger.BeginScope(new Dictionary + { + ["correlationId"] = correlationId, + ["startTime"] = startTime + })) + { + _logger.LogControllerStartTime(context); + base.OnActionExecuting(context); + } } /// @@ -49,8 +62,17 @@ public override void OnActionExecuting(ActionExecutingContext context) /// The current executing context. public override void OnResultExecuted(ResultExecutedContext context) { - _logger.LogControllerEndTime(context); - base.OnResultExecuted(context); + var startTime = context.HttpContext.Items["startTime"]; + var correlationId = context.HttpContext.Items["correlationId"]; + using (_logger.BeginScope(new Dictionary + { + ["correlationId"] = correlationId, + ["startTime"] = startTime + })) + { + _logger.LogControllerEndTime(context); + base.OnResultExecuted(context); + } } } } diff --git a/src/WorkflowManager/Logging/LoggerHelpers.cs b/src/WorkflowManager/Logging/LoggerHelpers.cs deleted file mode 100644 index 0b92d268a..000000000 --- a/src/WorkflowManager/Logging/LoggerHelpers.cs +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2021-2022 MONAI Consortium - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using Monai.Deploy.WorkflowManager.Contracts.Models; - -namespace Monai.Deploy.WorkflowManager.Logging -{ - public static class LoggerHelpers - { - public static object ToTaskCompleteObject(TaskExecution task, WorkflowInstance workflowInstance, PatientDetails patientDetails, string correlationId, string taskStatus) - { - return new - { - ExecutionId = task.ExecutionId, - TaskId = task.TaskId, - WorkflowInstanceId = workflowInstance.Id, - WorkflowId = workflowInstance.WorkflowId, - CorrelationId = correlationId, - TaskStatus = taskStatus, - TaskType = task.TaskType, - TaskStartTime = task.TaskStartTime, - TaskEndTime = DateTime.UtcNow, - TaskStatsObject = task.ExecutionStats, - PatientDetails = patientDetails - }; - } - - public static object ToLogControllerStartObject(string httpType, string path, string queryString, object body, string version, string environment) - { - return new - { - StartTime = DateTime.UtcNow, - HttpType = httpType, - path = path, - queryString = queryString, - body = body, - version = version, - environment = environment - }; - } - - public static object ToLogControllerEndObject(string httpType, string path, string queryString, string statusCode, object result, string version, string environment) - { - return new - { - EndTime = DateTime.UtcNow, - HttpType = httpType, - path = path, - queryString = queryString, - statusCode = statusCode, - result = result, - version = version, - environment = environment - }; - } - } -} diff --git a/src/WorkflowManager/Logging/Logging/Log.cs b/src/WorkflowManager/Logging/Logging/Log.cs index b90074b5e..da6f22fab 100644 --- a/src/WorkflowManager/Logging/Logging/Log.cs +++ b/src/WorkflowManager/Logging/Logging/Log.cs @@ -18,14 +18,13 @@ using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.Extensions.Logging; using Monai.Deploy.WorkflowManager.Contracts.Models; -using Monai.Deploy.WorkflowManager.Logging.Models; using Newtonsoft.Json; namespace Monai.Deploy.WorkflowManager.Logging.Logging { public static partial class Log { - [LoggerMessage(EventId = 1, Level = LogLevel.Information, Message = "{ServiceName} started.")] + [LoggerMessage(EventId = 1, Level = LogLevel.Debug, Message = "{ServiceName} started.")] public static partial void ServiceStarted(this ILogger logger, string serviceName); [LoggerMessage(EventId = 2, Level = LogLevel.Information, Message = "{ServiceName} starting.")] @@ -106,32 +105,21 @@ public static partial class Log [LoggerMessage(EventId = 27, Level = LogLevel.Error, Message = "The following task: {taskId} in workflow {workflowInstanceId} is currently timed out and not processing anymore updates, timed out at {timedOut}.")] public static partial void TaskTimedOut(this ILogger logger, string taskId, string workflowInstanceId, DateTime timedOut); + [LoggerMessage(EventId = 28, Level = LogLevel.Warning, Message = "Not Processing workflow: {workflowInstanceId} as it already has a status of {status}")] + public static partial void WorkflowBadStatus(this ILogger logger, string workflowInstanceId, string status); + public static void TaskComplete(this ILogger logger, TaskExecution task, WorkflowInstance workflowInstance, PatientDetails patientDetails, string correlationId, string taskStatus) { - var objectLog = new ObjectLog - { - Message = "Task Complete", - Object = LoggerHelpers.ToTaskCompleteObject(task, workflowInstance, patientDetails, correlationId, taskStatus) - }; - - var jsonString = JsonConvert.SerializeObject(objectLog); - - logger.LogInformation(28, message: jsonString); + logger.LogInformation("TaskComplete Task {task}, workflowInstance {workflowInstance}, patientDetails {patientDetails}, correlationId {correlationId}, taskStatus {taskStatus}", + JsonConvert.SerializeObject(task), JsonConvert.SerializeObject(workflowInstance), JsonConvert.SerializeObject(patientDetails), correlationId, taskStatus); } public static void LogControllerStartTime(this ILogger logger, ActionExecutingContext context) { var request = context.HttpContext.Request; - var body = context.ActionArguments.FirstOrDefault(); - var objectLog = new ObjectLog - { - Message = "ControllerActionStart", - Object = LoggerHelpers.ToLogControllerStartObject(request.Method, request.Path, request.QueryString.Value.ToString(), body.Value ?? "", "", "") - }; - - var jsonString = JsonConvert.SerializeObject(objectLog); - - logger.LogInformation(29, message: jsonString); + var body = JsonConvert.SerializeObject(context.ActionArguments.FirstOrDefault()); + logger.LogInformation(29, "ControllerActionStart data HttpType {httptype}, Path {path}, QueryString {querystring}, Body {body}", + request.Method, request.Path, request.QueryString.Value.ToString(), body); } public static void LogControllerEndTime(this ILogger logger, ResultExecutedContext context) @@ -139,6 +127,9 @@ public static void LogControllerEndTime(this ILogger logger, ResultExecutedConte var request = context.HttpContext.Request; var response = context.HttpContext.Response; + var startTime = context.HttpContext.Items["startTime"] as DateTime? ?? DateTime.UtcNow; + var endtime = DateTime.UtcNow; + var objResult = new ObjectResult(""); if (context.Result is ObjectResult) @@ -146,15 +137,10 @@ public static void LogControllerEndTime(this ILogger logger, ResultExecutedConte objResult = (ObjectResult)context.Result; } - var objectLog = new ObjectLog - { - Message = "ControllerActionEnd", - Object = LoggerHelpers.ToLogControllerEndObject(request.Method, request.Path, request.QueryString.Value.ToString(), response.StatusCode.ToString(), objResult?.Value ?? "", "", "") - }; - - var jsonString = JsonConvert.SerializeObject(objectLog); + logger.LogInformation(30, "ControllerActionEnd data EndTime {endtime}, Duration {duration}, HttpType {httptype}, Path {path}, QueryString {querystring}, StatusCode {statuscode}, Result {result}", + endtime, (endtime - startTime).TotalMilliseconds, request.Method, request.Path, + request.QueryString.Value.ToString(), response.StatusCode, JsonConvert.SerializeObject(objResult)); - logger.LogInformation(30, message: jsonString); } [LoggerMessage(EventId = 31, Level = LogLevel.Warning, Message = "Unable to locate a matching workflow for the given workflow request.")] diff --git a/src/WorkflowManager/Logging/Models/ObjectLog.cs b/src/WorkflowManager/Logging/Models/ObjectLog.cs deleted file mode 100644 index 92abfddaf..000000000 --- a/src/WorkflowManager/Logging/Models/ObjectLog.cs +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2021-2022 MONAI Consortium - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -using Newtonsoft.Json; - -namespace Monai.Deploy.WorkflowManager.Logging.Models -{ - public class ObjectLog - { - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - [JsonProperty(PropertyName = "object")] - public object Object { get; set; } - } -} diff --git a/src/WorkflowManager/Logging/Monai.Deploy.WorkflowManager.Logging.csproj b/src/WorkflowManager/Logging/Monai.Deploy.WorkflowManager.Logging.csproj index 5d565b295..9f0037729 100644 --- a/src/WorkflowManager/Logging/Monai.Deploy.WorkflowManager.Logging.csproj +++ b/src/WorkflowManager/Logging/Monai.Deploy.WorkflowManager.Logging.csproj @@ -28,6 +28,7 @@ + diff --git a/src/WorkflowManager/Logging/packages.lock.json b/src/WorkflowManager/Logging/packages.lock.json index f9c8dde72..ffb5ead72 100644 --- a/src/WorkflowManager/Logging/packages.lock.json +++ b/src/WorkflowManager/Logging/packages.lock.json @@ -27,9 +27,15 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Direct", - "requested": "[6.0.1, )", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "requested": "[6.0.2, )", + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" + }, + "Serilog": { + "type": "Direct", + "requested": "[2.11.0, )", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" }, "Ardalis.GuardClauses": { "type": "Transitive", @@ -41,15 +47,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.12.29", - "contentHash": "bxSbEjbCyAzjmUpxVKXiQhkXEvb3w9OHL7AOL9LItY1f5xLB9/qbtHoi5FvmZXTPPi2RahPJr9fDyHMLwQnxiA==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.193", - "contentHash": "xDZAerod8OUtyIgIYPiGRO+PRdGDjepGGgH2/DuAK/aoARU/FinaFr+yuUjJItrP53dCezbpdFVSRa1BFpIGfA==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.12.29, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "JetBrains.Annotations": { @@ -757,11 +763,11 @@ "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "3.7.1.193", - "Microsoft.Extensions.Configuration": "6.0.1", - "Monai.Deploy.Messaging": "0.1.6-rc0001", - "MongoDB.Bson": "2.17.1", - "Newtonsoft.Json": "13.0.1" + "AWSSDK.SecurityToken": "[3.7.1.203, )", + "Microsoft.Extensions.Configuration": "[6.0.1, )", + "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", + "MongoDB.Bson": "[2.17.1, )", + "Newtonsoft.Json": "[13.0.1, )" } } } diff --git a/src/WorkflowManager/MonaiBackgroundService/Monai.Deploy.WorkflowManager.MonaiBackgroundService.csproj b/src/WorkflowManager/MonaiBackgroundService/Monai.Deploy.WorkflowManager.MonaiBackgroundService.csproj index c51f7b5d9..4e93c65b8 100644 --- a/src/WorkflowManager/MonaiBackgroundService/Monai.Deploy.WorkflowManager.MonaiBackgroundService.csproj +++ b/src/WorkflowManager/MonaiBackgroundService/Monai.Deploy.WorkflowManager.MonaiBackgroundService.csproj @@ -1,39 +1,39 @@ - - - - - - net6.0 - enable - enable - Library - ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset - - + + + + + + net6.0 + enable + enable + Library + ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset + + - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/WorkflowManager/MonaiBackgroundService/Worker.cs b/src/WorkflowManager/MonaiBackgroundService/Worker.cs index c63fd2a4d..b775254fc 100644 --- a/src/WorkflowManager/MonaiBackgroundService/Worker.cs +++ b/src/WorkflowManager/MonaiBackgroundService/Worker.cs @@ -55,9 +55,9 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) IsRunning = true; var time = DateTimeOffset.Now; _logger.ServiceStarted(ServiceName); - _logger.LogInformation("Worker running at: {time}", time); + _logger.LogDebug("Worker running at: {time}", time); await DoWork(); - _logger.LogInformation("Worker completed in: {time} milliseconds", (int)(DateTimeOffset.Now - time).TotalMilliseconds); + _logger.LogDebug("Worker completed in: {time} milliseconds", (int)(DateTimeOffset.Now - time).TotalMilliseconds); await Task.Delay(_options.Value.BackgroundServiceSettings.BackgroundServiceDelay, stoppingToken); } _logger.ServiceStopping(ServiceName); diff --git a/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs b/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs index 220d20d91..e301fe7f1 100644 --- a/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs +++ b/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs @@ -57,6 +57,12 @@ public async Task ReceiveWorkflowPayload(MessageReceivedEventArgs message) { var requestEvent = message.Message.ConvertTo(); + using var loggingScope = (Logger.BeginScope(new Dictionary + { + ["correlationId"] = requestEvent.CorrelationId, + ["workflowId"] = requestEvent.Workflows.FirstOrDefault() + })); + var validation = PayloadValidator.ValidateWorkflowRequest(requestEvent); if (!validation) @@ -85,6 +91,7 @@ public async Task ReceiveWorkflowPayload(MessageReceivedEventArgs message) } _messageSubscriber.Acknowledge(message.Message); + } catch (Exception e) { @@ -101,6 +108,13 @@ public async Task TaskUpdatePayload(MessageReceivedEventArgs message) { var payload = message.Message.ConvertTo(); + using var loggerScope = Logger.BeginScope(new Dictionary + { + ["correlationId"] = payload.CorrelationId, + ["workflowInstanceId"] = payload.WorkflowInstanceId, + ["taskId"] = payload.TaskId + }); + if (!PayloadValidator.ValidateTaskUpdate(payload)) { Logger.EventRejectedNoQueue(message.Message.MessageId); @@ -120,6 +134,7 @@ public async Task TaskUpdatePayload(MessageReceivedEventArgs message) } _messageSubscriber.Acknowledge(message.Message); + } catch (Exception e) { @@ -136,6 +151,9 @@ public async Task ExportCompletePayload(MessageReceivedEventArgs message) { var payload = message.Message.ConvertTo(); + using var loggerScope = Logger.BeginScope(new Dictionary { ["workflowInstanceId"] = payload.WorkflowInstanceId }); + + if (!PayloadValidator.ValidateExportComplete(payload)) { Logger.EventRejectedNoQueue(message.Message.MessageId); @@ -154,6 +172,7 @@ public async Task ExportCompletePayload(MessageReceivedEventArgs message) } _messageSubscriber.Acknowledge(message.Message); + } catch (Exception e) { diff --git a/src/WorkflowManager/PayloadListener/packages.lock.json b/src/WorkflowManager/PayloadListener/packages.lock.json index 42c128ca5..262979803 100644 --- a/src/WorkflowManager/PayloadListener/packages.lock.json +++ b/src/WorkflowManager/PayloadListener/packages.lock.json @@ -39,15 +39,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.12.29", - "contentHash": "bxSbEjbCyAzjmUpxVKXiQhkXEvb3w9OHL7AOL9LItY1f5xLB9/qbtHoi5FvmZXTPPi2RahPJr9fDyHMLwQnxiA==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.193", - "contentHash": "xDZAerod8OUtyIgIYPiGRO+PRdGDjepGGgH2/DuAK/aoARU/FinaFr+yuUjJItrP53dCezbpdFVSRa1BFpIGfA==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.12.29, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "DnsClient": { @@ -357,8 +357,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", @@ -512,6 +512,11 @@ "Microsoft.NETCore.Targets": "1.0.1" } }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -609,8 +614,8 @@ }, "System.IO.Abstractions": { "type": "Transitive", - "resolved": "17.1.1", - "contentHash": "LWOM12Bd0kp/gaH4g1o/O2/6JDcHF/fuctF1IqDZt0aAqU2BwGiMihi9Cdcm5jJz8La1wFWbRPuRui8WeX6m8w==" + "resolved": "17.2.3", + "contentHash": "VcozGeE4SxIo0cnXrDHhbrh/Gb8KQnZ3BvMelvh+iw0PrIKtuuA46U2Xm4e4pgnaWFgT4RdZfTpWl/WPRdw0WQ==" }, "System.IO.FileSystem": { "type": "Transitive", @@ -897,90 +902,91 @@ "monai.deploy.workflowmanager.common": { "type": "Project", "dependencies": { - "Ardalis.GuardClauses": "4.0.1", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Monai.Deploy.WorkflowManager.Contracts": "1.0.0", - "Monai.Deploy.WorkflowManager.Database": "1.0.0", - "Monai.Deploy.WorkflowManager.Storage": "1.0.0" + "Ardalis.GuardClauses": "[4.0.1, )", + "Microsoft.Extensions.DependencyInjection.Abstractions": "[6.0.0, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, "monai.deploy.workflowmanager.conditionsresolver": { "type": "Project", "dependencies": { - "Ardalis.GuardClauses": "4.0.1", - "Monai.Deploy.WorkflowManager.Common": "1.0.0", - "Monai.Deploy.WorkflowManager.Contracts": "1.0.0", - "Monai.Deploy.WorkflowManager.Database": "1.0.0", - "Monai.Deploy.WorkflowManager.Storage": "1.0.0" + "Ardalis.GuardClauses": "[4.0.1, )", + "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )" } }, "monai.deploy.workflowmanager.configuration": { "type": "Project", "dependencies": { - "Karambolo.Extensions.Logging.File": "3.3.1", - "Microsoft.Extensions.Configuration": "6.0.1", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Monai.Deploy.Messaging": "0.1.6-rc0001", - "Monai.Deploy.Storage": "0.2.5", - "Newtonsoft.Json": "13.0.1", - "System.IO.Abstractions": "17.1.1" + "Karambolo.Extensions.Logging.File": "[3.3.1, )", + "Microsoft.Extensions.Configuration": "[6.0.1, )", + "Microsoft.Extensions.Logging": "[6.0.0, )", + "Microsoft.Extensions.Options": "[6.0.0, )", + "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", + "Monai.Deploy.Storage": "[0.2.5, )", + "Newtonsoft.Json": "[13.0.1, )", + "System.IO.Abstractions": "[17.2.3, )" } }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "3.7.1.193", - "Microsoft.Extensions.Configuration": "6.0.1", - "Monai.Deploy.Messaging": "0.1.6-rc0001", - "MongoDB.Bson": "2.17.1", - "Newtonsoft.Json": "13.0.1" + "AWSSDK.SecurityToken": "[3.7.1.203, )", + "Microsoft.Extensions.Configuration": "[6.0.1, )", + "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", + "MongoDB.Bson": "[2.17.1, )", + "Newtonsoft.Json": "[13.0.1, )" } }, "monai.deploy.workflowmanager.database": { "type": "Project", "dependencies": { - "Ardalis.GuardClauses": "4.0.1", - "Microsoft.Extensions.Logging.Abstractions": "6.0.1", - "Microsoft.Extensions.Options": "6.0.0", - "Monai.Deploy.WorkflowManager.Contracts": "1.0.0", - "Monai.Deploy.WorkflowManager.Logging": "1.0.0", - "MongoDB.Bson": "2.17.1", - "MongoDB.Driver": "2.17.1" + "Ardalis.GuardClauses": "[4.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Microsoft.Extensions.Options": "[6.0.0, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", + "MongoDB.Bson": "[2.17.1, )", + "MongoDB.Driver": "[2.17.1, )" } }, "monai.deploy.workflowmanager.logging": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Mvc.Core": "2.2.5", - "Microsoft.Extensions.Logging.Abstractions": "6.0.1", - "Monai.Deploy.WorkflowManager.Contracts": "1.0.0" + "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } }, "monai.deploy.workflowmanager.storage": { "type": "Project", "dependencies": { - "Ardalis.GuardClauses": "4.0.1", - "Monai.Deploy.Storage": "0.2.5", - "Monai.Deploy.WorkflowManager.Contracts": "1.0.0", - "Monai.Deploy.WorkflowManager.Logging": "1.0.0" + "Ardalis.GuardClauses": "[4.0.1, )", + "Monai.Deploy.Storage": "[0.2.5, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )" } }, "monai.deploy.workloadmanager.workfowexecuter": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "3.7.1.193", - "Ardalis.GuardClauses": "4.0.1", - "Monai.Deploy.Messaging": "0.1.6-rc0001", - "Monai.Deploy.Storage": "0.2.5", - "Monai.Deploy.WorkflowManager.Common": "1.0.0", - "Monai.Deploy.WorkflowManager.ConditionsResolver": "1.0.0", - "Monai.Deploy.WorkflowManager.Configuration": "1.0.0", - "Monai.Deploy.WorkflowManager.Contracts": "1.0.0", - "Monai.Deploy.WorkflowManager.Database": "1.0.0", - "Monai.Deploy.WorkflowManager.Logging": "1.0.0", - "Monai.Deploy.WorkflowManager.Storage": "1.0.0", - "Newtonsoft.Json": "13.0.1" + "AWSSDK.SecurityToken": "[3.7.1.203, )", + "Ardalis.GuardClauses": "[4.0.1, )", + "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", + "Monai.Deploy.Storage": "[0.2.5, )", + "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.ConditionsResolver": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Database": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", + "Monai.Deploy.WorkflowManager.Storage": "[1.0.0, )", + "Newtonsoft.Json": "[13.0.1, )" } } } diff --git a/src/WorkflowManager/Storage/packages.lock.json b/src/WorkflowManager/Storage/packages.lock.json index 0097304cf..e8469df99 100644 --- a/src/WorkflowManager/Storage/packages.lock.json +++ b/src/WorkflowManager/Storage/packages.lock.json @@ -28,15 +28,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.12.29", - "contentHash": "bxSbEjbCyAzjmUpxVKXiQhkXEvb3w9OHL7AOL9LItY1f5xLB9/qbtHoi5FvmZXTPPi2RahPJr9fDyHMLwQnxiA==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.193", - "contentHash": "xDZAerod8OUtyIgIYPiGRO+PRdGDjepGGgH2/DuAK/aoARU/FinaFr+yuUjJItrP53dCezbpdFVSRa1BFpIGfA==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.12.29, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "JetBrains.Annotations": { @@ -315,8 +315,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.ObjectPool": { "type": "Transitive", @@ -414,6 +414,11 @@ "Microsoft.NETCore.Targets": "1.0.1" } }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, "System.AppContext": { "type": "Transitive", "resolved": "4.1.0", diff --git a/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj b/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj index 032f5bc54..59aa0fd87 100644 --- a/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj +++ b/src/WorkflowManager/WorkflowExecuter/Monai.Deploy.WorkloadManager.WorkfowExecuter.csproj @@ -1,57 +1,57 @@ - - - - - - net6.0 - enable - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset - - - + + + + + + net6.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset + + + diff --git a/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs b/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs index 1e04a184f..eb5032a2d 100644 --- a/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs +++ b/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs @@ -154,6 +154,7 @@ public async Task ProcessFirstWorkflowTask(WorkflowInstance workflowInstance, st { if (workflowInstance.Status == Status.Failed) { + _logger.WorkflowBadStatus(workflowInstance.WorkflowId, workflowInstance.Status.ToString()); return; } @@ -551,29 +552,32 @@ private async Task DispatchTask(WorkflowInstance workflowInstance, Workflo return false; } - var outputArtifacts = task.Artifacts?.Output; - - if (outputArtifacts is not null && outputArtifacts.Any()) + using (_logger.BeginScope(new Dictionary { ["correlationId"] = correlationId, ["taskId"] = task.Id })) { - foreach (var artifact in outputArtifacts) + var outputArtifacts = task.Artifacts?.Output; + + if (outputArtifacts is not null && outputArtifacts.Any()) { - if (!string.IsNullOrWhiteSpace(artifact.Value)) + foreach (var artifact in outputArtifacts) { - continue; - } + if (!string.IsNullOrWhiteSpace(artifact.Value)) + { + continue; + } - artifact.Value = $"{{ context.executions.{task.Id}.output_dir }}/{artifact.Name}"; + artifact.Value = $"{{ context.executions.{task.Id}.output_dir }}/{artifact.Name}"; + } } - } - var pathOutputArtifacts = await _artifactMapper.ConvertArtifactVariablesToPath(outputArtifacts ?? Array.Empty(), workflowInstance.PayloadId, workflowInstance.Id, workflowInstance.BucketId, false); + var pathOutputArtifacts = await _artifactMapper.ConvertArtifactVariablesToPath(outputArtifacts ?? Array.Empty(), workflowInstance.PayloadId, workflowInstance.Id, workflowInstance.BucketId, false); - var taskDispatchEvent = EventMapper.ToTaskDispatchEvent(taskExec, workflowInstance, pathOutputArtifacts, correlationId, _storageConfiguration); - var jsonMesssage = new JsonMessage(taskDispatchEvent, MessageBrokerConfiguration.WorkflowManagerApplicationId, taskDispatchEvent.CorrelationId, Guid.NewGuid().ToString()); + var taskDispatchEvent = EventMapper.ToTaskDispatchEvent(taskExec, workflowInstance, pathOutputArtifacts, correlationId, _storageConfiguration); + var jsonMesssage = new JsonMessage(taskDispatchEvent, MessageBrokerConfiguration.WorkflowManagerApplicationId, taskDispatchEvent.CorrelationId, Guid.NewGuid().ToString()); - await _messageBrokerPublisherService.Publish(TaskDispatchRoutingKey, jsonMesssage.ToMessage()); + await _messageBrokerPublisherService.Publish(TaskDispatchRoutingKey, jsonMesssage.ToMessage()); - return await _workflowInstanceRepository.UpdateTaskStatusAsync(workflowInstance.Id, taskExec.TaskId, TaskExecutionStatus.Dispatched); + return await _workflowInstanceRepository.UpdateTaskStatusAsync(workflowInstance.Id, taskExec.TaskId, TaskExecutionStatus.Dispatched); + } } private async Task ExportRequest(WorkflowInstance workflowInstance, TaskExecution taskExec, string[] exportDestinations, IList dicomImages, string correlationId) diff --git a/src/WorkflowManager/WorkflowExecuter/packages.lock.json b/src/WorkflowManager/WorkflowExecuter/packages.lock.json index fc81e61e9..f40ca838a 100644 --- a/src/WorkflowManager/WorkflowExecuter/packages.lock.json +++ b/src/WorkflowManager/WorkflowExecuter/packages.lock.json @@ -13,11 +13,11 @@ }, "AWSSDK.SecurityToken": { "type": "Direct", - "requested": "[3.7.1.199, )", - "resolved": "3.7.1.199", - "contentHash": "nFIu6I/P6FG9/XQgB05Vlne3N4H9F1E2/p56UKITWMSytcbRMEaYdcVj+9Z8ng1x0TO2rpw98tdEX2yP/dfCSQ==", + "requested": "[3.7.1.203, )", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.13.4, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "Monai.Deploy.Messaging": { @@ -59,8 +59,8 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.13.4", - "contentHash": "aYrLHov6J6di5zFY3hxGSubsm955f1/YjwC2djl8sRY39puB3lNm7H8zbbpvch+TmLRHBmjLNI4tfL7siwzfAQ==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "DnsClient": { "type": "Transitive", @@ -379,8 +379,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", @@ -514,6 +514,11 @@ "Microsoft.NETCore.Targets": "1.0.1" } }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -611,8 +616,8 @@ }, "System.IO.Abstractions": { "type": "Transitive", - "resolved": "17.2.1", - "contentHash": "QiPMiZa6SP9FxvM4k2Tso4j7DHbdpZo5dcGnVD38XjXnm2fOsYg4BkHmADTa5Tq7Fc0OzUGvHhV5KePPCwxB8Q==" + "resolved": "17.2.3", + "contentHash": "VcozGeE4SxIo0cnXrDHhbrh/Gb8KQnZ3BvMelvh+iw0PrIKtuuA46U2Xm4e4pgnaWFgT4RdZfTpWl/WPRdw0WQ==" }, "System.IO.FileSystem": { "type": "Transitive", @@ -926,13 +931,13 @@ "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "Monai.Deploy.Storage": "[0.2.5, )", "Newtonsoft.Json": "[13.0.1, )", - "System.IO.Abstractions": "[17.2.1, )" + "System.IO.Abstractions": "[17.2.3, )" } }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Microsoft.Extensions.Configuration": "[6.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "MongoDB.Bson": "[2.17.1, )", @@ -943,7 +948,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", "Microsoft.Extensions.Options": "[6.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", @@ -955,8 +960,9 @@ "type": "Project", "dependencies": { "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", - "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } }, "monai.deploy.workflowmanager.storage": { diff --git a/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj b/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj index 2ed0353a8..d45f41619 100644 --- a/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj +++ b/src/WorkflowManager/WorkflowManager/Monai.Deploy.WorkflowManager.csproj @@ -1,106 +1,112 @@ - - - - - Exe - net6.0 - Monai.Deploy.WorkflowManager - false - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - - - - - - - Always - - - Always - - - PreserveNewest - - - - - true - true - ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset - - - - - - - - - - - - - - - - - - - + + + + + Exe + net6.0 + Monai.Deploy.WorkflowManager + false + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + + + + Always + + + Always + + + PreserveNewest + + + + + true + true + ..\..\.sonarlint\project-monai_monai-deploy-workflow-managercsharp.ruleset + + + + + + + + + + + + + + + + + + + diff --git a/src/WorkflowManager/WorkflowManager/Program.cs b/src/WorkflowManager/WorkflowManager/Program.cs index 526936b1a..7d9d04eb6 100644 --- a/src/WorkflowManager/WorkflowManager/Program.cs +++ b/src/WorkflowManager/WorkflowManager/Program.cs @@ -17,6 +17,8 @@ using System; using System.IO; using System.IO.Abstractions; +using System.Reflection; +using Elastic.CommonSchema.Serilog; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; @@ -33,12 +35,14 @@ using Monai.Deploy.WorkflowManager.Database.Interfaces; using Monai.Deploy.WorkflowManager.Database.Options; using Monai.Deploy.WorkflowManager.Database.Repositories; -using Monai.Deploy.WorkflowManager.Logging.Attributes; using Monai.Deploy.WorkflowManager.MonaiBackgroundService; using Monai.Deploy.WorkflowManager.Services; using Monai.Deploy.WorkflowManager.Services.DataRetentionService; using Monai.Deploy.WorkflowManager.Services.Http; using MongoDB.Driver; +using Serilog; +using Serilog.Events; +using Serilog.Exceptions; namespace Monai.Deploy.WorkflowManager { @@ -70,6 +74,20 @@ internal static IHostBuilder CreateHostBuilder(string[] args) => configureLogging.AddConfiguration(builderContext.Configuration.GetSection("Logging")); configureLogging.AddFile(o => o.RootPath = AppContext.BaseDirectory); }) + .UseSerilog((context, services, configuration) => configuration + .ReadFrom.Configuration(context.Configuration) + .ReadFrom.Services(services) + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Debug() + .Enrich.FromLogContext() + .Enrich.WithExceptionDetails() + .Enrich.WithProperty("dllversion", Assembly.GetEntryAssembly().GetName().Version) + .Enrich.WithProperty("dllName", Assembly.GetEntryAssembly().GetName().Name) + .WriteTo.File( + path: "logs/MWM-.log", + rollingInterval: RollingInterval.Day, + formatter: new EcsTextFormatter()) + .WriteTo.Console()) .ConfigureServices((hostContext, services) => { ConfigureServices(hostContext, services); diff --git a/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs b/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs index 34bbc90c0..bff00d30a 100644 --- a/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs +++ b/src/WorkflowManager/WorkflowManager/Services/Http/Startup.cs @@ -24,6 +24,7 @@ using Monai.Deploy.WorkflowManager.Authentication.Extensions; using Monai.Deploy.WorkflowManager.Logging.Attributes; using Newtonsoft.Json.Converters; +using Serilog; namespace Monai.Deploy.WorkflowManager.Services.Http { diff --git a/src/WorkflowManager/WorkflowManager/appsettings.Development.json b/src/WorkflowManager/WorkflowManager/appsettings.Development.json index f90ea0aa1..76a5f6a1d 100644 --- a/src/WorkflowManager/WorkflowManager/appsettings.Development.json +++ b/src/WorkflowManager/WorkflowManager/appsettings.Development.json @@ -114,21 +114,6 @@ "TimestampFormat": " HH:mm:ss ", "UseUtcTimestamp": true } - }, - "File": { - "BasePath": "Logs", - "FileEncodingName": "utf-8", - "DateFormat": "yyyyMMdd", - "CounterFormat": "000", - "MaxFileSize": 10485760, - "IncludeScopes": true, - "MaxQueueSize": 100, - "TextBuilderType": "Monai.Deploy.WorkflowManager.Configuration.Logging.FileLoggingTextFormatter, Monai.Deploy.WorkflowManager.Configuration", - "Files": [ - { - "Path": "MWM--.log" - } - ] } }, "Kestrel": { diff --git a/src/WorkflowManager/WorkflowManager/appsettings.Local.json b/src/WorkflowManager/WorkflowManager/appsettings.Local.json index 40c823331..822de7502 100644 --- a/src/WorkflowManager/WorkflowManager/appsettings.Local.json +++ b/src/WorkflowManager/WorkflowManager/appsettings.Local.json @@ -116,21 +116,6 @@ "TimestampFormat": " HH:mm:ss ", "UseUtcTimestamp": true } - }, - "File": { - "BasePath": "Logs", - "FileEncodingName": "utf-8", - "DateFormat": "yyyyMMdd", - "CounterFormat": "000", - "MaxFileSize": 10485760, - "IncludeScopes": true, - "MaxQueueSize": 100, - "TextBuilderType": "Monai.Deploy.WorkflowManager.Configuration.Logging.FileLoggingTextFormatter, Monai.Deploy.WorkflowManager.Configuration", - "Files": [ - { - "Path": "MWM--.log" - } - ] } }, "Kestrel": { diff --git a/src/WorkflowManager/WorkflowManager/appsettings.json b/src/WorkflowManager/WorkflowManager/appsettings.json index 3c6964784..c320ea219 100644 --- a/src/WorkflowManager/WorkflowManager/appsettings.json +++ b/src/WorkflowManager/WorkflowManager/appsettings.json @@ -119,23 +119,32 @@ "TimestampFormat": " HH:mm:ss ", "UseUtcTimestamp": true } - }, - "File": { - "BasePath": "Logs", - "FileEncodingName": "utf-8", - "DateFormat": "yyyyMMdd", - "CounterFormat": "000", - "MaxFileSize": 10485760, - "IncludeScopes": true, - "MaxQueueSize": 100, - "TextBuilderType": "Monai.Deploy.WorkflowManager.Configuration.Logging.FileLoggingTextFormatter, Monai.Deploy.WorkflowManager.Configuration", - "Files": [ - { - "Path": "MWM--.log" - } - ] } }, + "Serilog": { + "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ], + "Properties": { "enviroment": "Production", "serviceName": "MWM"}, + "WriteTo": [ + { + "Name": "File", + "Args": { + "path": "logs/MWM-.log", + "rollingInterval": "Day", + "rollOnFileSizeLimit": true, + "fileSizeLimitBytes": "10485760", + "retainedFileCountLimit": 30, + "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog" + } + }, + { + "Name": "Http", + "Args": { + //"requestUri": "http://192.168.0.62:5000", + "queueLimitBytes": null + } + } + ] + }, "Kestrel": { "EndPoints": { "Http": { diff --git a/src/WorkflowManager/WorkflowManager/packages.lock.json b/src/WorkflowManager/WorkflowManager/packages.lock.json index 436fa04db..d819baf18 100644 --- a/src/WorkflowManager/WorkflowManager/packages.lock.json +++ b/src/WorkflowManager/WorkflowManager/packages.lock.json @@ -11,6 +11,17 @@ "JetBrains.Annotations": "2021.3.0" } }, + "Elastic.CommonSchema.Serilog": { + "type": "Direct", + "requested": "[1.5.3, )", + "resolved": "1.5.3", + "contentHash": "bp2qHOWmN15fTKUecFMt7oCra68I1cm3yAEmwPcLuz4v2pQ5YxC8nVtyCTSSibquUS/ZPH5JInjlmuywV3UoyQ==", + "dependencies": { + "Elastic.CommonSchema": "1.5.3", + "Microsoft.AspNetCore.Http.Abstractions": "2.1.0", + "Serilog": "2.9.0" + } + }, "Karambolo.Extensions.Logging.File": { "type": "Direct", "requested": "[3.3.1, )", @@ -51,12 +62,12 @@ }, "Microsoft.EntityFrameworkCore": { "type": "Direct", - "requested": "[6.0.8, )", - "resolved": "6.0.8", - "contentHash": "BDtUZEMjptfhldCvmaDYobVThQvgtcXEmVSGQGmpXDRYaxXuNb6CALJDG0+kTqHaqR+DgbjCKQc7ryi5dB3FGA==", + "requested": "[6.0.9, )", + "resolved": "6.0.9", + "contentHash": "3QxYF6TR14O3cSZitdzM10Smsw+hweLXyB45PN4ZVjrX4GqzUoGZ0ZC06r0ST7O7SgYxNjxw34ay5XXbBTX86A==", "dependencies": { - "Microsoft.EntityFrameworkCore.Abstractions": "6.0.8", - "Microsoft.EntityFrameworkCore.Analyzers": "6.0.8", + "Microsoft.EntityFrameworkCore.Abstractions": "6.0.9", + "Microsoft.EntityFrameworkCore.Analyzers": "6.0.9", "Microsoft.Extensions.Caching.Memory": "6.0.1", "Microsoft.Extensions.DependencyInjection": "6.0.0", "Microsoft.Extensions.Logging": "6.0.0", @@ -166,6 +177,58 @@ "resolved": "13.0.1", "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, + "Serilog": { + "type": "Direct", + "requested": "[2.11.0, )", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, + "Serilog.AspNetCore": { + "type": "Direct", + "requested": "[6.0.1, )", + "resolved": "6.0.1", + "contentHash": "5XW90k62V7G9I0D/j9Iz+NyRBB6/SnoFpHUPeLnV40gONV2vs2A/ewWi91QVjQmyHBfzFeqIrkvE/DJMZ0alTg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "5.0.0", + "Microsoft.Extensions.Logging": "5.0.0", + "Serilog": "2.10.0", + "Serilog.Extensions.Hosting": "5.0.1", + "Serilog.Formatting.Compact": "1.1.0", + "Serilog.Settings.Configuration": "3.3.0", + "Serilog.Sinks.Console": "4.0.1", + "Serilog.Sinks.Debug": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } + }, + "Serilog.Enrichers.Environment": { + "type": "Direct", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "DMrj3A4l65kc4JouQyZjjFv7N58Y7lGsB81kSzorTwUGeI2wrTy7CVwSOfG90/Pcu/HV5bwGrUmxDZ38pON+5Q==", + "dependencies": { + "Serilog": "2.3.0" + } + }, + "Serilog.Exceptions": { + "type": "Direct", + "requested": "[8.4.0, )", + "resolved": "8.4.0", + "contentHash": "nc/+hUw3lsdo0zCj0KMIybAu7perMx79vu72w0za9Nsi6mWyNkGXxYxakAjWB7nEmYL6zdmhEQRB4oJ2ALUeug==", + "dependencies": { + "Serilog": "2.8.0", + "System.Reflection.TypeExtensions": "4.7.0" + } + }, + "Serilog.Sinks.Http": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "eHyl2/93Roymf2eudPl/6Eeu2GQ93Ucy4GM1UPF0jyd7CIW8r+Bk5ohdbjjyjB9TQSpP2ovOuj6ltf9DjoWHtg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } + }, "StyleCop.Analyzers": { "type": "Direct", "requested": "[1.1.118, )", @@ -186,15 +249,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.13.4", - "contentHash": "aYrLHov6J6di5zFY3hxGSubsm955f1/YjwC2djl8sRY39puB3lNm7H8zbbpvch+TmLRHBmjLNI4tfL7siwzfAQ==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.199", - "contentHash": "nFIu6I/P6FG9/XQgB05Vlne3N4H9F1E2/p56UKITWMSytcbRMEaYdcVj+9Z8ng1x0TO2rpw98tdEX2yP/dfCSQ==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.13.4, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "Crc32.NET": { @@ -213,6 +276,14 @@ "Microsoft.Win32.Registry": "5.0.0" } }, + "Elastic.CommonSchema": { + "type": "Transitive", + "resolved": "1.5.3", + "contentHash": "JgwhfThYY/s17asUiBCUVqnZtDdGTWO/2hTPG01QDfw2+T6kfwskrj5eh6XpBZsOh6r9SpBL95vSsU+q44i7Zg==", + "dependencies": { + "System.Text.Json": "4.7.0" + } + }, "JetBrains.Annotations": { "type": "Transitive", "resolved": "2021.3.0", @@ -240,8 +311,8 @@ }, "Microsoft.AspNetCore.Authentication.JwtBearer": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "ktmldryRkyAMRQpluCZaltRvlcOrlE9SQDmnMOh+XTbck6Vi296UjvwdJb4ULU6PgvZh5j00KAp7uhjpcWQopA==", + "resolved": "6.0.9", + "contentHash": "U02ylUPpnb31C8irNFMVZSq6vn00DlCyQHra5ky1mnzWrbwmZ+Er6tms+hsvfp2dVJqTFLXD9+araslWapWY3g==", "dependencies": { "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.10.0" } @@ -405,30 +476,15 @@ "resolved": "4.7.0", "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" }, - "Microsoft.DotNet.PlatformAbstractions": { - "type": "Transitive", - "resolved": "2.1.0", - "contentHash": "9KPDwvb/hLEVXYruVHVZ8BkebC8j17DmPb56LnqRF74HqSPLjCkrlFUjOtFpQPA2DeADBRTI/e69aCfRBfrhxw==", - "dependencies": { - "System.AppContext": "4.1.0", - "System.Collections": "4.0.11", - "System.IO": "4.1.0", - "System.IO.FileSystem": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Runtime.InteropServices": "4.1.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" - } - }, "Microsoft.EntityFrameworkCore.Abstractions": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "mZwjzgw9wGc8JPFUwKHe+8OW4gCi1v3jYhe9AhUU4+NW439rN3RnkFlZJ8WBq/yhRbXD3cYers4e+gprOBokew==" + "resolved": "6.0.9", + "contentHash": "XglcSAr6EtjqJpI0DjMMDWkq3l5zG45hRHgrodZFMxNxE7KettJ+X8Em39Aaa0XQwH2P+NHVyK+xhtPX8ogdEA==" }, "Microsoft.EntityFrameworkCore.Analyzers": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "gUdJEXpS60IGOlGELDsToGQj4cDr1uqlmlet0drUHUoHGE6O+z9oJlOekZQH7gVnaFDmaoO5HIdCT2KgRdXwPw==" + "resolved": "6.0.9", + "contentHash": "rNIx4fr7KWH4ypghhI+78PhCUYBHdjVbQ3yKvj/KmUIe4d9pysHXT3lF9TuReVdMDsn5mEx+3Yez8s80J4/JLA==" }, "Microsoft.Extensions.ApiDescription.Server": { "type": "Transitive", @@ -544,14 +600,10 @@ }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", - "resolved": "2.1.0", - "contentHash": "nS2XKqi+1A1umnYNLX2Fbm/XnzCxs5i+zXVJ3VC6r9t2z0NZr9FLnJN4VQpKigdcWH/iFTbMuX6M6WQJcTjVIg==", + "resolved": "3.0.0", + "contentHash": "Iaectmzg9Dc4ZbKX/FurrRjgO/I8rTumL5UU+Uube6vZuGetcnXoIgTA94RthFWePhdMVm8MMhVFJZdbzMsdyQ==", "dependencies": { - "Microsoft.DotNet.PlatformAbstractions": "2.1.0", - "Newtonsoft.Json": "9.0.1", - "System.Diagnostics.Debug": "4.0.11", - "System.Dynamic.Runtime": "4.0.11", - "System.Linq": "4.1.0" + "System.Text.Json": "4.6.0" } }, "Microsoft.Extensions.Diagnostics.HealthChecks": { @@ -605,8 +657,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", @@ -968,6 +1020,69 @@ "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, + "Serilog.Extensions.Hosting": { + "type": "Transitive", + "resolved": "5.0.1", + "contentHash": "o0VUyt3npAqOJaZ6CiWLFeLYs3CYJwfcAqaUqprzsmj7qYIvorcn8cZLVR8AQX6vzX7gee2bD0sQeA17iO2/Aw==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.8", + "Microsoft.Extensions.Hosting.Abstractions": "3.1.8", + "Microsoft.Extensions.Logging.Abstractions": "3.1.8", + "Serilog": "2.10.0", + "Serilog.Extensions.Logging": "3.1.0" + } + }, + "Serilog.Extensions.Logging": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "IWfem7wfrFbB3iw1OikqPFNPEzfayvDuN4WP7Ue1AVFskalMByeWk3QbtUXQR34SBkv1EbZ3AySHda/ErDgpcg==", + "dependencies": { + "Microsoft.Extensions.Logging": "2.0.0", + "Serilog": "2.9.0" + } + }, + "Serilog.Formatting.Compact": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "pNroKVjo+rDqlxNG5PXkRLpfSCuDOBY0ri6jp9PLe505ljqwhwZz8ospy2vWhQlFu5GkIesh3FcDs4n7sWZODA==", + "dependencies": { + "Serilog": "2.8.0" + } + }, + "Serilog.Settings.Configuration": { + "type": "Transitive", + "resolved": "3.3.0", + "contentHash": "7GNudISZwqaT902hqEL2OFGTZeUFWfnrNLupJkOqeF41AR3GjcxX+Hwb30xb8gG2/CDXsCMVfF8o0+8KY0fJNg==", + "dependencies": { + "Microsoft.Extensions.DependencyModel": "3.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "2.0.0", + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.Console": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "apLOvSJQLlIbKlbx+Y2UDHSP05kJsV7mou+fvJoRGs/iR+jC22r8cuFVMjjfVxz/AD4B2UCltFhE1naRLXwKNw==", + "dependencies": { + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.Debug": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "Y6g3OBJ4JzTyyw16fDqtFcQ41qQAydnEvEqmXjhwhgjsnG/FaJ8GUqF5ldsC/bVkK8KYmqrPhDO+tm4dF6xx4A==", + "dependencies": { + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.File": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "uwV5hdhWPwUH1szhO8PJpFiahqXmzPzJT/sOijH/kFgUx+cyoDTMM8MHD0adw9+Iem6itoibbUXHYslzXsLEAg==", + "dependencies": { + "Serilog": "2.10.0" + } + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -994,14 +1109,6 @@ "resolved": "6.4.0", "contentHash": "1Hh3atb3pi8c+v7n4/3N80Jj8RvLOXgWxzix6w3OZhB7zBGRwsy7FWr4e3hwgPweSBpwfElqj4V4nkjYabH9nQ==" }, - "System.AppContext": { - "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==", - "dependencies": { - "System.Runtime": "4.1.0" - } - }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", @@ -1080,28 +1187,6 @@ "System.Runtime": "4.3.0" } }, - "System.Dynamic.Runtime": { - "type": "Transitive", - "resolved": "4.0.11", - "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Globalization": "4.0.11", - "System.Linq": "4.1.0", - "System.Linq.Expressions": "4.1.0", - "System.ObjectModel": "4.0.12", - "System.Reflection": "4.1.0", - "System.Reflection.Emit": "4.0.1", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Threading": "4.0.11" - } - }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", @@ -1159,8 +1244,8 @@ }, "System.IO.Abstractions": { "type": "Transitive", - "resolved": "17.2.1", - "contentHash": "QiPMiZa6SP9FxvM4k2Tso4j7DHbdpZo5dcGnVD38XjXnm2fOsYg4BkHmADTa5Tq7Fc0OzUGvHhV5KePPCwxB8Q==" + "resolved": "17.2.3", + "contentHash": "VcozGeE4SxIo0cnXrDHhbrh/Gb8KQnZ3BvMelvh+iw0PrIKtuuA46U2Xm4e4pgnaWFgT4RdZfTpWl/WPRdw0WQ==" }, "System.IO.FileSystem": { "type": "Transitive", @@ -1197,30 +1282,6 @@ "System.Runtime.Extensions": "4.3.0" } }, - "System.Linq.Expressions": { - "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Globalization": "4.0.11", - "System.IO": "4.1.0", - "System.Linq": "4.1.0", - "System.ObjectModel": "4.0.12", - "System.Reflection": "4.1.0", - "System.Reflection.Emit": "4.0.1", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Emit.Lightweight": "4.0.1", - "System.Reflection.Extensions": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Threading": "4.0.11" - } - }, "System.Memory": { "type": "Transitive", "resolved": "4.5.4", @@ -1270,18 +1331,6 @@ "System.Runtime.Handles": "4.3.0" } }, - "System.ObjectModel": { - "type": "Transitive", - "resolved": "4.0.12", - "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Threading": "4.0.11" - } - }, "System.Reactive": { "type": "Transitive", "resolved": "5.0.0", @@ -1308,50 +1357,6 @@ "System.Runtime": "4.3.0" } }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", - "dependencies": { - "System.IO": "4.1.0", - "System.Reflection": "4.1.0", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Emit.ILGeneration": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", - "dependencies": { - "System.Reflection": "4.1.0", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", - "dependencies": { - "System.Reflection": "4.1.0", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Extensions": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.0.1", - "Microsoft.NETCore.Targets": "1.0.1", - "System.Reflection": "4.1.0", - "System.Runtime": "4.1.0" - } - }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", @@ -1364,12 +1369,8 @@ }, "System.Reflection.TypeExtensions": { "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", - "dependencies": { - "System.Reflection": "4.1.0", - "System.Runtime": "4.1.0" - } + "resolved": "4.7.0", + "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA==" }, "System.Resources.ResourceManager": { "type": "Transitive", @@ -1430,20 +1431,6 @@ "System.Runtime.Handles": "4.3.0" } }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.0.0", - "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.0.1", - "System.Reflection": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.InteropServices": "4.1.0", - "System.Threading": "4.0.11", - "runtime.native.System": "4.0.0" - } - }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", @@ -1665,7 +1652,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.8, )", + "Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.9, )", "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )" } }, @@ -1699,13 +1686,13 @@ "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "Monai.Deploy.Storage": "[0.2.5, )", "Newtonsoft.Json": "[13.0.1, )", - "System.IO.Abstractions": "[17.2.1, )" + "System.IO.Abstractions": "[17.2.3, )" } }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Microsoft.Extensions.Configuration": "[6.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "MongoDB.Bson": "[2.17.1, )", @@ -1716,7 +1703,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", "Microsoft.Extensions.Options": "[6.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", @@ -1728,8 +1715,9 @@ "type": "Project", "dependencies": { "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", - "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } }, "monai.deploy.workflowmanager.monaibackgroundservice": { @@ -1765,7 +1753,7 @@ "monai.deploy.workloadmanager.workfowexecuter": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Ardalis.GuardClauses": "[4.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "Monai.Deploy.Storage": "[0.2.5, )", diff --git a/tests/UnitTests/Database.Tests/packages.lock.json b/tests/UnitTests/Database.Tests/packages.lock.json index 53d6ddce2..86ebdde92 100644 --- a/tests/UnitTests/Database.Tests/packages.lock.json +++ b/tests/UnitTests/Database.Tests/packages.lock.json @@ -54,15 +54,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.12.29", - "contentHash": "bxSbEjbCyAzjmUpxVKXiQhkXEvb3w9OHL7AOL9LItY1f5xLB9/qbtHoi5FvmZXTPPi2RahPJr9fDyHMLwQnxiA==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.193", - "contentHash": "xDZAerod8OUtyIgIYPiGRO+PRdGDjepGGgH2/DuAK/aoARU/FinaFr+yuUjJItrP53dCezbpdFVSRa1BFpIGfA==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.12.29, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "Castle.Core": { @@ -362,8 +362,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.ObjectPool": { "type": "Transitive", @@ -670,6 +670,11 @@ "resolved": "4.3.0", "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==" }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -1503,7 +1508,7 @@ "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.193, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Microsoft.Extensions.Configuration": "[6.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "MongoDB.Bson": "[2.17.1, )", @@ -1514,7 +1519,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", "Microsoft.Extensions.Options": "[6.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", @@ -1526,8 +1531,9 @@ "type": "Project", "dependencies": { "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", - "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } } } diff --git a/tests/UnitTests/PayloadListener.Tests/packages.lock.json b/tests/UnitTests/PayloadListener.Tests/packages.lock.json index 51df917bc..c14f2fd61 100644 --- a/tests/UnitTests/PayloadListener.Tests/packages.lock.json +++ b/tests/UnitTests/PayloadListener.Tests/packages.lock.json @@ -52,15 +52,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.13.4", - "contentHash": "aYrLHov6J6di5zFY3hxGSubsm955f1/YjwC2djl8sRY39puB3lNm7H8zbbpvch+TmLRHBmjLNI4tfL7siwzfAQ==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.199", - "contentHash": "nFIu6I/P6FG9/XQgB05Vlne3N4H9F1E2/p56UKITWMSytcbRMEaYdcVj+9Z8ng1x0TO2rpw98tdEX2yP/dfCSQ==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.13.4, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "Castle.Core": { @@ -393,8 +393,8 @@ }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", @@ -593,6 +593,11 @@ "Microsoft.NETCore.Targets": "1.0.1" } }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -695,8 +700,8 @@ }, "System.IO.Abstractions": { "type": "Transitive", - "resolved": "17.2.1", - "contentHash": "QiPMiZa6SP9FxvM4k2Tso4j7DHbdpZo5dcGnVD38XjXnm2fOsYg4BkHmADTa5Tq7Fc0OzUGvHhV5KePPCwxB8Q==" + "resolved": "17.2.3", + "contentHash": "VcozGeE4SxIo0cnXrDHhbrh/Gb8KQnZ3BvMelvh+iw0PrIKtuuA46U2Xm4e4pgnaWFgT4RdZfTpWl/WPRdw0WQ==" }, "System.IO.FileSystem": { "type": "Transitive", @@ -1015,13 +1020,13 @@ "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "Monai.Deploy.Storage": "[0.2.5, )", "Newtonsoft.Json": "[13.0.1, )", - "System.IO.Abstractions": "[17.2.1, )" + "System.IO.Abstractions": "[17.2.3, )" } }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Microsoft.Extensions.Configuration": "[6.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "MongoDB.Bson": "[2.17.1, )", @@ -1032,7 +1037,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", "Microsoft.Extensions.Options": "[6.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", @@ -1044,8 +1049,9 @@ "type": "Project", "dependencies": { "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", - "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } }, "monai.deploy.workflowmanager.payloadlistener": { @@ -1073,7 +1079,7 @@ "monai.deploy.workloadmanager.workfowexecuter": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Ardalis.GuardClauses": "[4.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "Monai.Deploy.Storage": "[0.2.5, )", diff --git a/tests/UnitTests/WorkflowExecuter.Tests/Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.csproj b/tests/UnitTests/WorkflowExecuter.Tests/Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.csproj index 06e9cc3b1..0084839fd 100644 --- a/tests/UnitTests/WorkflowExecuter.Tests/Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.csproj +++ b/tests/UnitTests/WorkflowExecuter.Tests/Monai.Deploy.WorkflowManager.WorkflowExecuter.Tests.csproj @@ -26,6 +26,7 @@ + diff --git a/tests/UnitTests/WorkflowManager.Tests/packages.lock.json b/tests/UnitTests/WorkflowManager.Tests/packages.lock.json index 5d0451144..904680fa7 100644 --- a/tests/UnitTests/WorkflowManager.Tests/packages.lock.json +++ b/tests/UnitTests/WorkflowManager.Tests/packages.lock.json @@ -29,20 +29,20 @@ }, "Microsoft.AspNetCore.Mvc.Testing": { "type": "Direct", - "requested": "[6.0.8, )", - "resolved": "6.0.8", - "contentHash": "UGcvJ+uL/g1yQWJ7pxQ/4H6tchXD/4A08wgUpq+jXUbj92KlVmHbWDaKz8kqmfv1tqbsVn3tTQ/VBxjEowgHug==", + "requested": "[6.0.9, )", + "resolved": "6.0.9", + "contentHash": "uFWxuY5Idh/VA4rkRY9U4Ke7yx+c+ZYTHZ/0Wl5j5TplyMPqNMOO13wKVdwssWo3oUOsrrbeI6GsdB+kG84XCQ==", "dependencies": { - "Microsoft.AspNetCore.TestHost": "6.0.8", + "Microsoft.AspNetCore.TestHost": "6.0.9", "Microsoft.Extensions.DependencyModel": "6.0.0", "Microsoft.Extensions.Hosting": "6.0.1" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Direct", - "requested": "[6.0.1, )", - "resolved": "6.0.1", - "contentHash": "dzB2Cgg+JmrouhjkcQGzSFjjvpwlq353i8oBQO2GWNjCXSzhbtBRUf28HSauWe7eib3wYOdb3tItdjRwAdwCSg==" + "requested": "[6.0.2, )", + "resolved": "6.0.2", + "contentHash": "pwXCZKaA7m5wgmCj49dW+H1RPSY7U62SKLTQYCcavf/k3Nyt/WnBgAjG4jMGnwy9rElfAZ2KvxvM5CJzJWG0hg==" }, "Microsoft.NET.Test.Sdk": { "type": "Direct", @@ -99,15 +99,15 @@ }, "AWSSDK.Core": { "type": "Transitive", - "resolved": "3.7.13.4", - "contentHash": "aYrLHov6J6di5zFY3hxGSubsm955f1/YjwC2djl8sRY39puB3lNm7H8zbbpvch+TmLRHBmjLNI4tfL7siwzfAQ==" + "resolved": "3.7.13.8", + "contentHash": "ZfTD73tT+xQ7WrWDQ8G6+NYHZ4bXUc7jVMiL3477BXbQ7JS9xu/jt9lSJTHBecZ+2bOBnpLRCshBcjRJ6+OD/Q==" }, "AWSSDK.SecurityToken": { "type": "Transitive", - "resolved": "3.7.1.199", - "contentHash": "nFIu6I/P6FG9/XQgB05Vlne3N4H9F1E2/p56UKITWMSytcbRMEaYdcVj+9Z8ng1x0TO2rpw98tdEX2yP/dfCSQ==", + "resolved": "3.7.1.203", + "contentHash": "sTE7CLWvoloHPoTjBDDYGUI1n63nZ8YBttuhWI2pnfmJuaYdyqFWf7a4scqus3g5L9WpPhRW5MsfNe30hgsZjQ==", "dependencies": { - "AWSSDK.Core": "[3.7.13.4, 4.0.0)" + "AWSSDK.Core": "[3.7.13.8, 4.0.0)" } }, "Castle.Core": { @@ -134,6 +134,24 @@ "Microsoft.Win32.Registry": "5.0.0" } }, + "Elastic.CommonSchema": { + "type": "Transitive", + "resolved": "1.5.3", + "contentHash": "JgwhfThYY/s17asUiBCUVqnZtDdGTWO/2hTPG01QDfw2+T6kfwskrj5eh6XpBZsOh6r9SpBL95vSsU+q44i7Zg==", + "dependencies": { + "System.Text.Json": "4.7.0" + } + }, + "Elastic.CommonSchema.Serilog": { + "type": "Transitive", + "resolved": "1.5.3", + "contentHash": "bp2qHOWmN15fTKUecFMt7oCra68I1cm3yAEmwPcLuz4v2pQ5YxC8nVtyCTSSibquUS/ZPH5JInjlmuywV3UoyQ==", + "dependencies": { + "Elastic.CommonSchema": "1.5.3", + "Microsoft.AspNetCore.Http.Abstractions": "2.1.0", + "Serilog": "2.9.0" + } + }, "Fare": { "type": "Transitive", "resolved": "2.1.1", @@ -180,8 +198,8 @@ }, "Microsoft.AspNetCore.Authentication.JwtBearer": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "ktmldryRkyAMRQpluCZaltRvlcOrlE9SQDmnMOh+XTbck6Vi296UjvwdJb4ULU6PgvZh5j00KAp7uhjpcWQopA==", + "resolved": "6.0.9", + "contentHash": "U02ylUPpnb31C8irNFMVZSq6vn00DlCyQHra5ky1mnzWrbwmZ+Er6tms+hsvfp2dVJqTFLXD9+araslWapWY3g==", "dependencies": { "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.10.0" } @@ -356,8 +374,8 @@ }, "Microsoft.AspNetCore.TestHost": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "CNG/aeTqlNHSp+nI4ihn+f1Hy1Z0pX0ASyEzt2lq+qcCvxb1cYhLDllFOQfZIa+/eXfeiQWw/CuwryIUQTtwiQ==", + "resolved": "6.0.9", + "contentHash": "ufuQSsTfWANNEIAJejbVZgK96++7SobZwunTC8xGBxK4lGFSQq3Ccdb4gWuKYj4TCCNYQ5c+Al/EgpAUro8fdw==", "dependencies": { "System.IO.Pipelines": "6.0.3" } @@ -383,11 +401,11 @@ }, "Microsoft.EntityFrameworkCore": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "BDtUZEMjptfhldCvmaDYobVThQvgtcXEmVSGQGmpXDRYaxXuNb6CALJDG0+kTqHaqR+DgbjCKQc7ryi5dB3FGA==", + "resolved": "6.0.9", + "contentHash": "3QxYF6TR14O3cSZitdzM10Smsw+hweLXyB45PN4ZVjrX4GqzUoGZ0ZC06r0ST7O7SgYxNjxw34ay5XXbBTX86A==", "dependencies": { - "Microsoft.EntityFrameworkCore.Abstractions": "6.0.8", - "Microsoft.EntityFrameworkCore.Analyzers": "6.0.8", + "Microsoft.EntityFrameworkCore.Abstractions": "6.0.9", + "Microsoft.EntityFrameworkCore.Analyzers": "6.0.9", "Microsoft.Extensions.Caching.Memory": "6.0.1", "Microsoft.Extensions.DependencyInjection": "6.0.0", "Microsoft.Extensions.Logging": "6.0.0", @@ -397,13 +415,13 @@ }, "Microsoft.EntityFrameworkCore.Abstractions": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "mZwjzgw9wGc8JPFUwKHe+8OW4gCi1v3jYhe9AhUU4+NW439rN3RnkFlZJ8WBq/yhRbXD3cYers4e+gprOBokew==" + "resolved": "6.0.9", + "contentHash": "XglcSAr6EtjqJpI0DjMMDWkq3l5zG45hRHgrodZFMxNxE7KettJ+X8Em39Aaa0XQwH2P+NHVyK+xhtPX8ogdEA==" }, "Microsoft.EntityFrameworkCore.Analyzers": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "gUdJEXpS60IGOlGELDsToGQj4cDr1uqlmlet0drUHUoHGE6O+z9oJlOekZQH7gVnaFDmaoO5HIdCT2KgRdXwPw==" + "resolved": "6.0.9", + "contentHash": "rNIx4fr7KWH4ypghhI+78PhCUYBHdjVbQ3yKvj/KmUIe4d9pysHXT3lF9TuReVdMDsn5mEx+3Yez8s80J4/JLA==" }, "Microsoft.Extensions.ApiDescription.Server": { "type": "Transitive", @@ -1055,6 +1073,116 @@ "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, + "Serilog": { + "type": "Transitive", + "resolved": "2.11.0", + "contentHash": "ysv+hBzTul6Dp+Hvm10FlhJO3yMQcFKSAleus+LpiIzvNstpeV4Z7gGuIZ1OPNfIMulSHOjmLuGAEDKzpnV8ZQ==" + }, + "Serilog.AspNetCore": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "5XW90k62V7G9I0D/j9Iz+NyRBB6/SnoFpHUPeLnV40gONV2vs2A/ewWi91QVjQmyHBfzFeqIrkvE/DJMZ0alTg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "5.0.0", + "Microsoft.Extensions.Logging": "5.0.0", + "Serilog": "2.10.0", + "Serilog.Extensions.Hosting": "5.0.1", + "Serilog.Formatting.Compact": "1.1.0", + "Serilog.Settings.Configuration": "3.3.0", + "Serilog.Sinks.Console": "4.0.1", + "Serilog.Sinks.Debug": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } + }, + "Serilog.Enrichers.Environment": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "DMrj3A4l65kc4JouQyZjjFv7N58Y7lGsB81kSzorTwUGeI2wrTy7CVwSOfG90/Pcu/HV5bwGrUmxDZ38pON+5Q==", + "dependencies": { + "Serilog": "2.3.0" + } + }, + "Serilog.Exceptions": { + "type": "Transitive", + "resolved": "8.4.0", + "contentHash": "nc/+hUw3lsdo0zCj0KMIybAu7perMx79vu72w0za9Nsi6mWyNkGXxYxakAjWB7nEmYL6zdmhEQRB4oJ2ALUeug==", + "dependencies": { + "Serilog": "2.8.0", + "System.Reflection.TypeExtensions": "4.7.0" + } + }, + "Serilog.Extensions.Hosting": { + "type": "Transitive", + "resolved": "5.0.1", + "contentHash": "o0VUyt3npAqOJaZ6CiWLFeLYs3CYJwfcAqaUqprzsmj7qYIvorcn8cZLVR8AQX6vzX7gee2bD0sQeA17iO2/Aw==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.8", + "Microsoft.Extensions.Hosting.Abstractions": "3.1.8", + "Microsoft.Extensions.Logging.Abstractions": "3.1.8", + "Serilog": "2.10.0", + "Serilog.Extensions.Logging": "3.1.0" + } + }, + "Serilog.Extensions.Logging": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "IWfem7wfrFbB3iw1OikqPFNPEzfayvDuN4WP7Ue1AVFskalMByeWk3QbtUXQR34SBkv1EbZ3AySHda/ErDgpcg==", + "dependencies": { + "Microsoft.Extensions.Logging": "2.0.0", + "Serilog": "2.9.0" + } + }, + "Serilog.Formatting.Compact": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "pNroKVjo+rDqlxNG5PXkRLpfSCuDOBY0ri6jp9PLe505ljqwhwZz8ospy2vWhQlFu5GkIesh3FcDs4n7sWZODA==", + "dependencies": { + "Serilog": "2.8.0" + } + }, + "Serilog.Settings.Configuration": { + "type": "Transitive", + "resolved": "3.3.0", + "contentHash": "7GNudISZwqaT902hqEL2OFGTZeUFWfnrNLupJkOqeF41AR3GjcxX+Hwb30xb8gG2/CDXsCMVfF8o0+8KY0fJNg==", + "dependencies": { + "Microsoft.Extensions.DependencyModel": "3.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "2.0.0", + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.Console": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "apLOvSJQLlIbKlbx+Y2UDHSP05kJsV7mou+fvJoRGs/iR+jC22r8cuFVMjjfVxz/AD4B2UCltFhE1naRLXwKNw==", + "dependencies": { + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.Debug": { + "type": "Transitive", + "resolved": "2.0.0", + "contentHash": "Y6g3OBJ4JzTyyw16fDqtFcQ41qQAydnEvEqmXjhwhgjsnG/FaJ8GUqF5ldsC/bVkK8KYmqrPhDO+tm4dF6xx4A==", + "dependencies": { + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.File": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "uwV5hdhWPwUH1szhO8PJpFiahqXmzPzJT/sOijH/kFgUx+cyoDTMM8MHD0adw9+Iem6itoibbUXHYslzXsLEAg==", + "dependencies": { + "Serilog": "2.10.0" + } + }, + "Serilog.Sinks.Http": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "eHyl2/93Roymf2eudPl/6Eeu2GQ93Ucy4GM1UPF0jyd7CIW8r+Bk5ohdbjjyjB9TQSpP2ovOuj6ltf9DjoWHtg==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.0.0", + "Serilog.Sinks.File": "5.0.0" + } + }, "SharpCompress": { "type": "Transitive", "resolved": "0.30.1", @@ -1235,8 +1363,8 @@ }, "System.IO.Abstractions": { "type": "Transitive", - "resolved": "17.2.1", - "contentHash": "QiPMiZa6SP9FxvM4k2Tso4j7DHbdpZo5dcGnVD38XjXnm2fOsYg4BkHmADTa5Tq7Fc0OzUGvHhV5KePPCwxB8Q==" + "resolved": "17.2.3", + "contentHash": "VcozGeE4SxIo0cnXrDHhbrh/Gb8KQnZ3BvMelvh+iw0PrIKtuuA46U2Xm4e4pgnaWFgT4RdZfTpWl/WPRdw0WQ==" }, "System.IO.FileSystem": { "type": "Transitive", @@ -1368,6 +1496,11 @@ "System.Runtime": "4.3.0" } }, + "System.Reflection.TypeExtensions": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA==" + }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", @@ -1698,11 +1831,12 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", + "Elastic.CommonSchema.Serilog": "[1.5.3, )", "Karambolo.Extensions.Logging.File": "[3.3.1, )", "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "[6.0.9, )", "Microsoft.AspNetCore.Mvc.Versioning": "[5.0.0, )", "Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer": "[5.0.0, )", - "Microsoft.EntityFrameworkCore": "[6.0.8, )", + "Microsoft.EntityFrameworkCore": "[6.0.9, )", "Microsoft.Extensions.DependencyInjection.Abstractions": "[6.0.0, )", "Microsoft.Extensions.Hosting": "[6.0.1, )", "Microsoft.Extensions.Logging": "[6.0.0, )", @@ -1719,6 +1853,11 @@ "Monai.Deploy.WorkflowManager.MonaiBackgroundService": "[1.0.0, )", "Monai.Deploy.WorkflowManager.PayloadListener": "[1.0.0, )", "Newtonsoft.Json": "[13.0.1, )", + "Serilog": "[2.11.0, )", + "Serilog.AspNetCore": "[6.0.1, )", + "Serilog.Enrichers.Environment": "[2.2.0, )", + "Serilog.Exceptions": "[8.4.0, )", + "Serilog.Sinks.Http": "[8.0.0, )", "Swashbuckle.AspNetCore": "[6.4.0, )" } }, @@ -1726,7 +1865,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.8, )", + "Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.9, )", "Monai.Deploy.WorkflowManager.Common": "[1.0.0, )" } }, @@ -1760,13 +1899,13 @@ "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "Monai.Deploy.Storage": "[0.2.5, )", "Newtonsoft.Json": "[13.0.1, )", - "System.IO.Abstractions": "[17.2.1, )" + "System.IO.Abstractions": "[17.2.3, )" } }, "monai.deploy.workflowmanager.contracts": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Microsoft.Extensions.Configuration": "[6.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "MongoDB.Bson": "[2.17.1, )", @@ -1777,7 +1916,7 @@ "type": "Project", "dependencies": { "Ardalis.GuardClauses": "[4.0.1, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", "Microsoft.Extensions.Options": "[6.0.0, )", "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", "Monai.Deploy.WorkflowManager.Logging": "[1.0.0, )", @@ -1789,8 +1928,9 @@ "type": "Project", "dependencies": { "Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )", - "Microsoft.Extensions.Logging.Abstractions": "[6.0.1, )", - "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )" + "Microsoft.Extensions.Logging.Abstractions": "[6.0.2, )", + "Monai.Deploy.WorkflowManager.Contracts": "[1.0.0, )", + "Serilog": "[2.11.0, )" } }, "monai.deploy.workflowmanager.monaibackgroundservice": { @@ -1826,7 +1966,7 @@ "monai.deploy.workloadmanager.workfowexecuter": { "type": "Project", "dependencies": { - "AWSSDK.SecurityToken": "[3.7.1.199, )", + "AWSSDK.SecurityToken": "[3.7.1.203, )", "Ardalis.GuardClauses": "[4.0.1, )", "Monai.Deploy.Messaging": "[0.1.6-rc0001, )", "Monai.Deploy.Storage": "[0.2.5, )",