{ "GrpcPort": 50051, "ApiKeyConfigFile": "apikeys.json", "Subscription": { "ChannelCapacity": 1000, "ChannelFullMode": "DropOldest" }, "ServiceRecovery": { "FirstFailureDelayMinutes": 1, "SecondFailureDelayMinutes": 5, "SubsequentFailureDelayMinutes": 10, "ResetPeriodDays": 1 }, "Connection": { "MonitorIntervalSeconds": 5, "ConnectionTimeoutSeconds": 30, "AutoReconnect": true, "ReadTimeoutSeconds": 5, "WriteTimeoutSeconds": 5, "MaxConcurrentOperations": 10 }, "PerformanceMetrics": { "ReportingIntervalSeconds": 60, "Enabled": true, "MaxSamplesPerMetric": 1000 }, "HealthCheck": { "Enabled": true, "TestTagAddress": "TestChannel.TestDevice.TestTag", "MaxStaleDataMinutes": 5 }, "RetryPolicies": { "ReadRetryCount": 3, "WriteRetryCount": 3, "ConnectionRetryCount": 5, "CircuitBreakerThreshold": 5, "CircuitBreakerDurationSeconds": 30 }, "Tls": { "Enabled": true, "ServerCertificatePath": "certs/server.crt", "ServerKeyPath": "certs/server.key", "ClientCaCertificatePath": "certs/ca.crt", "RequireClientCertificate": false, "CheckCertificateRevocation": false }, "WebServer": { "Enabled": true, "Port": 8080 }, "Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Warning", "System": "Warning", "Grpc": "Information" } }, "WriteTo": [ { "Name": "Console", "Args": { "theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console", "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}" } }, { "Name": "File", "Args": { "path": "logs/lmxproxy-.txt", "rollingInterval": "Day", "retainedFileCountLimit": 30, "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext} {Message:lj}{NewLine}{Exception}" } } ], "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ] } }