From 30b60c2688554a33fea05ce1ae16b91417014fb5 Mon Sep 17 00:00:00 2001 From: zhangyichang25 Date: Wed, 19 Aug 2026 20:31:04 +0800 Subject: [PATCH 1/6] feat: complete basic log parser --- docs/01-basic/report.md | 39 +++++++++++++++++++++ src/LogParser/Parser/LineParser.cs | 42 +++++++++++++++++++---- src/LogParser/Visitors/KeyValueVisitor.cs | 24 +++++++++++-- 3 files changed, 97 insertions(+), 8 deletions(-) create mode 100644 docs/01-basic/report.md diff --git a/docs/01-basic/report.md b/docs/01-basic/report.md new file mode 100644 index 0000000..4dc6202 --- /dev/null +++ b/docs/01-basic/report.md @@ -0,0 +1,39 @@ +# 01-basic 作业报告 + +## Q1.1 + +### Q1.1.1:哪条语句或哪几条语句将日志按逗号进行分割?代码中,我们是如何指定每一行的第几个字段代表何种意义的? + +(1)`LogFileParser.Parse(TextReader logFile)` 中,`using var csv = new CsvReader(logFile, config);` 创建 CsvHelper 的 CSV 读取器,`csv.GetRecords()` 逐行读取并按 CSV 规则分列为 `LogRecord`。 + +(2)`LogRecordMap` 的构造方法使用 `Map(m => m.LineNo).Index(0)`、`Map(m => m.Timestamp).Index(1)`、`Map(m => m.PodName).Index(2)`、`Map(m => m.Message).Index(3)`。因此第 0、1、2、3 列依次表示行号、时间戳、Pod 名和 JSON message。 + +### Q1.1.2:在对日志中 JSON 格式的 message 字段进行读取时,我们是在哪个方法内用哪几条语句判断这一行日志的种类(Call / Request / Internal)的? + +`LineParser.ParseLine(LogRecord logRecord)` 中,先以 `JsonDocument.Parse(logRecord.Message)` 取得 JSON,再用 `root.TryGetProperty("event", out var eventElement)` 读取 `event`,最后用 `eventElement.GetString() switch` 分别选择 `CreateCall`、`CreateRequest`、`CreateInternal`。 + +### Q1.1.3:在确定了日志种类后,我们是调用了哪个库方法对 JSON 进行解析的?进一步,我们的框架代码是如何防止日志中有字段缺失的?(例如所给的 Call 日志的 message 中缺失 request_id 字段)更进一步,日志中的 JSON 的键是 abc-def 命名法(称为烤串命名法),而我们的解析结果却是放在 AbcDef 命名法(称为大驼峰命名法)的属性里,我们的框架代码中是如何告诉 JSON 解析器完成这一命名法转换的? + +(1)`CreateCall`、`CreateRequest`、`CreateInternal` 分别调用 `JsonSerializer.Deserialize()`、 `JsonSerializer.Deserialize()`、 `JsonSerializer.Deserialize()`。 + +(2)`LineParser` 类末尾的三个 Message record 将必填属性标注为 `[property: JsonRequired]`;缺少相应属性时 `JsonSerializer.Deserialize` 会抛出 `JsonException`。 + +(3)`LineParser` 类中的 `options` 字段设置了 `PropertyNamingPolicy = JsonNamingPolicy.KebabCaseLower`,因此 JSON 的 `request-id`、`status-code` 可映射至 C# 的 `RequestId`、`StatusCode`。 + +## Q1.2:以一个 Call 事件的解析结果为例,当调用 KeyValueVisitor 的 Dump 方法后,都有哪些方法被调用?请补充完整如下的方法调用链. + +以 Call 类型日志为例,完整调用链为: +1. `Dictionary KeyValueVisitor.Dump(LogEntry entry)` +2. `TResult CallLogEntry.Accept(ILogEntryVisitor visitor)` +3. `Dictionary KeyValueVisitor.Visit(CallLogEntry entry)` + +第 1 步传入的是运行时类型为 `CallLogEntry` 的对象;第 2 步的 +`visitor.Visit(this)` 因而调用第 3 步的 Call 重载并返回字典。 + +## Q1.3 b:如果使用了 AI,你给予 AI 的提示词是什么?你认为 AI 给出的解答、你完全凭借传统搜索引擎以及自己的能力能够写出的解答之间,AI 的解答比你好在哪?AI 又有哪些解答是存在问题的,或者至少是不如你自己的解答的?给出你的理由。 + +(1)提示词:请根据本讲讲义内容以及作业题干,提取相关代码文件并将相关知识点标注在代码的注释中,并给出几个报告问题的讲解。(大意,经过多次迭代;代码暂未利用AI) + +(2)好处:能够帮助找到讲义中未讲解清楚或未涉及的知识点,理清回答思路,更清晰地掌握相应知识点。 + +(3)问题:在问答轮数较少时容易偏离问题本身或采用不符合要求的方法。 \ No newline at end of file diff --git a/src/LogParser/Parser/LineParser.cs b/src/LogParser/Parser/LineParser.cs index 0475f6b..f04b250 100644 --- a/src/LogParser/Parser/LineParser.cs +++ b/src/LogParser/Parser/LineParser.cs @@ -16,8 +16,8 @@ public static LogEntry ParseLine(LogRecord logRecord) return eventElement.GetString() switch { "call" => LineParser.CreateCall(logRecord), - "request" => throw new NotImplementedException("TODO: T1.2"), - "internal" => throw new NotImplementedException("TODO: T1.2"), + "request" => LineParser.CreateRequest(logRecord), + "internal" => LineParser.CreateInternal(logRecord), _ => throw new FormatException($"Unknown event type: {eventElement.GetString()} in log message: {logRecord.Message}") }; } @@ -50,12 +50,37 @@ private static LogEntry CreateCall(LogRecord logRecord) private static LogEntry CreateRequest(LogRecord logRecord) { - throw new NotImplementedException("TODO: T1.2"); + var requestMessage = JsonSerializer.Deserialize(logRecord.Message, options) + ?? throw new FormatException($"Failed to deserialize request message: {logRecord.Message}"); + return new RequestLogEntry( + LineNo: logRecord.LineNo, + Timestamp: DateTimeOffset.Parse(logRecord.Timestamp), + PodName: logRecord.PodName, + Severity: ParseSeverity(requestMessage.Severity), + RequestId: requestMessage.RequestId, + Method: requestMessage.Method, + Path: requestMessage.Path, + StatusCode: requestMessage.StatusCode + ); } private static LogEntry CreateInternal(LogRecord logRecord) { - throw new NotImplementedException("TODO: T1.2"); + var internalMessage = JsonSerializer.Deserialize(logRecord.Message, options) + ?? throw new FormatException($"Failed to deserialize internal message: {logRecord.Message}"); + var separator = internalMessage.Exception.IndexOf(": "); + if (separator < 0) + { + throw new FormatException($"Invalid exception format: {internalMessage.Exception}"); + } + return new InternalLogEntry( + LineNo: logRecord.LineNo, + Timestamp: DateTimeOffset.Parse(logRecord.Timestamp), + PodName: logRecord.PodName, + Severity: ParseSeverity(internalMessage.Severity), + ExceptionName: internalMessage.Exception.Substring(0, separator), + ExceptionMessage: internalMessage.Exception.Substring(separator + 2) + ); } private static LogSeverity ParseSeverity(string severity) @@ -77,11 +102,16 @@ private record CallMessage( ); private record RequestMessage( - // TODO: T1.2 + [property: JsonRequired] string Severity, + [property: JsonRequired] string RequestId, + [property: JsonRequired] string Method, + [property: JsonRequired] string Path, + [property: JsonRequired] int StatusCode ); private record InternalMessage( - // TODO: T1.2 + [property: JsonRequired] string Severity, + [property: JsonRequired] string Exception ); } } diff --git a/src/LogParser/Visitors/KeyValueVisitor.cs b/src/LogParser/Visitors/KeyValueVisitor.cs index e5ceba2..f70bcc2 100644 --- a/src/LogParser/Visitors/KeyValueVisitor.cs +++ b/src/LogParser/Visitors/KeyValueVisitor.cs @@ -26,12 +26,32 @@ public Dictionary Visit(CallLogEntry entry) public Dictionary Visit(RequestLogEntry entry) { - throw new NotImplementedException("TODO: T1.3"); + return new Dictionary + { + ["LineNo"] = entry.LineNo.ToString(), + ["Timestamp"] = entry.Timestamp.ToString("O"), + ["PodName"] = entry.PodName, + ["Severity"] = entry.Severity.ToString(), + ["EventType"] = entry.EventType.ToString(), + ["RequestId"] = entry.RequestId, + ["Method"] = entry.Method, + ["Path"] = entry.Path, + ["StatusCode"] = entry.StatusCode.ToString(), + }; } public Dictionary Visit(InternalLogEntry entry) { - throw new NotImplementedException("TODO: T1.3"); + return new Dictionary + { + ["LineNo"] = entry.LineNo.ToString(), + ["Timestamp"] = entry.Timestamp.ToString("O"), + ["PodName"] = entry.PodName, + ["Severity"] = entry.Severity.ToString(), + ["EventType"] = entry.EventType.ToString(), + ["ExceptionName"] = entry.ExceptionName, + ["ExceptionMessage"] = entry.ExceptionMessage, + }; } } } From 73cba4fafb5cedcc64d7f8f7f91ff7ca67a449bf Mon Sep 17 00:00:00 2001 From: zhangyichang25 Date: Sat, 22 Aug 2026 16:46:16 +0800 Subject: [PATCH 2/6] feat: implement multithreaded log analyzer --- .../assets/invalid-input-cli1.png | Bin 0 -> 35229 bytes .../assets/invalid-input-cli2.png | Bin 0 -> 35859 bytes .../assets/invalid-input-cli3.png | Bin 0 -> 29424 bytes .../assets/invalid-input-cli4.png | Bin 0 -> 35204 bytes docs/02-multithreading/assets/normal-cli1.png | Bin 0 -> 34218 bytes docs/02-multithreading/assets/normal-cli2.png | Bin 0 -> 21888 bytes docs/02-multithreading/assets/normal-cli3.png | Bin 0 -> 39122 bytes docs/02-multithreading/assets/normal-cli4.png | Bin 0 -> 28355 bytes docs/02-multithreading/assets/normal-cli5.png | Bin 0 -> 23905 bytes docs/02-multithreading/report.md | 50 +++++++++++ src/LocalCli/Program.cs | 61 +++++++++++-- src/LogAnalyzer/LogFileAnalyzer.cs | 85 ++++++++++-------- src/LogAnalyzer/WorkQueue.cs | 33 ++++++- 13 files changed, 184 insertions(+), 45 deletions(-) create mode 100644 docs/02-multithreading/assets/invalid-input-cli1.png create mode 100644 docs/02-multithreading/assets/invalid-input-cli2.png create mode 100644 docs/02-multithreading/assets/invalid-input-cli3.png create mode 100644 docs/02-multithreading/assets/invalid-input-cli4.png create mode 100644 docs/02-multithreading/assets/normal-cli1.png create mode 100644 docs/02-multithreading/assets/normal-cli2.png create mode 100644 docs/02-multithreading/assets/normal-cli3.png create mode 100644 docs/02-multithreading/assets/normal-cli4.png create mode 100644 docs/02-multithreading/assets/normal-cli5.png create mode 100644 docs/02-multithreading/report.md diff --git a/docs/02-multithreading/assets/invalid-input-cli1.png b/docs/02-multithreading/assets/invalid-input-cli1.png new file mode 100644 index 0000000000000000000000000000000000000000..3928f4313a230c8af4052ff1596bbe7390b1f345 GIT binary patch literal 35229 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 Ljcd7A&7c1pCNhLq literal 0 HcmV?d00001 diff --git a/docs/02-multithreading/assets/invalid-input-cli4.png b/docs/02-multithreading/assets/invalid-input-cli4.png new file mode 100644 index 0000000000000000000000000000000000000000..2c74155f5997848569322d56d56117ae7edca9b2 GIT binary patch literal 35204 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

*AH5Wu^4`7`+Km4CS@YH6?= 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 literal 0 HcmV?d00001 diff --git a/docs/02-multithreading/assets/normal-cli2.png b/docs/02-multithreading/assets/normal-cli2.png new file mode 100644 index 0000000000000000000000000000000000000000..c59f18afd367eff30ec4ee03641217d4af577f75 GIT binary patch literal 21888 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 U?56mF)>Nh|x<=3vZQJ1g0bRUtcmMzZ literal 0 HcmV?d00001 diff --git a/docs/02-multithreading/assets/normal-cli3.png b/docs/02-multithreading/assets/normal-cli3.png new file mode 100644 index 0000000000000000000000000000000000000000..e0e4ca3de398047620c24279968d07092966994d GIT binary patch literal 39122 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 literal 0 HcmV?d00001 diff --git a/docs/02-multithreading/assets/normal-cli4.png b/docs/02-multithreading/assets/normal-cli4.png new file mode 100644 index 0000000000000000000000000000000000000000..9e33e1ea4ccbaf6684973a5c9db8e696b03a522c GIT binary patch literal 28355 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 Kr_d)Z-ugfBK!*1K literal 0 HcmV?d00001 diff --git a/docs/02-multithreading/assets/normal-cli5.png b/docs/02-multithreading/assets/normal-cli5.png new file mode 100644 index 0000000000000000000000000000000000000000..57fdc554e97d61f0ee25ea37c37afc21245fb7ba GIT binary patch literal 23905 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 Dx@<;? literal 0 HcmV?d00001 diff --git a/docs/02-multithreading/report.md b/docs/02-multithreading/report.md new file mode 100644 index 0000000..87d032f --- /dev/null +++ b/docs/02-multithreading/report.md @@ -0,0 +1,50 @@ +# 02-multithreading 作业报告 + +## 已实现的功能 + +我实现了 `WorkQueue` 的多消费者安全队列;`LogFileAnalyzer` 的目录扫描、多线程并行解析、解析结果缓存和失败记录;以及 `LocalCli` 的目录切换、文件列表、指定/全部解析和结果查看功能。 + +### 正常功能截图 + +![完整功能截图1](./assets/normal-cli1.png) +![完整功能截图2](./assets/normal-cli2.png) +![完整功能截图3](./assets/normal-cli3.png) +![完整功能截图4](./assets/normal-cli4.png) + +截图中演示了输入目录、显示日志文件、分析指定文件、分析全部文件、查看成功结果等所有常规功能。 + +### 鲁棒性测试截图 + +![鲁棒性测试截图1](./assets/invalid-input-cli1.png) +![鲁棒性测试截图2](./assets/invalid-input-cli2.png) +![鲁棒性测试截图3](./assets/invalid-input-cli3.png) +![鲁棒性测试截图4](./assets/invalid-input-cli4.png) + +截图中演示了不存在或非法目录、非数字菜单输入、无效菜单选项、空文件名、当前目录不存在的文件名、负数并发度或非数字并发度等输入的报错处理。程序均给出提示并继续运行,没有崩溃。 + +## Q2.1:我们把访问临界资源的程序片段称作临界区。在我们的多线程程序当中,临界资源即为不同线程的共享变量。请问:WorkQueue 类中的共享变量有哪些?是通过什么保护其免于数据竞争(data race)呢?LogFileAnalyzer 类中的共享变量有哪些?是通过什么保护其免于数据竞争呢?如果条件变量的判断条件使用了 if 判断而非 while 判断,当出现了虚假唤醒现象时(在类 UNIX 系统中,由于 UNIX 信号等机制,即使没有人调用过 signal 或 broadcast,处于 wait 当中的条件变量也可能被唤醒),会出现什么后果?结合无限仓库容量的生产者消费者问题简单叙述一下。 + +(1)`WorkQueue` 的共享变量是 `_items`(内部 `Queue`)和 `_isCompleted`(是否已结束加入)。 +(2)它们都在 `lock (_items)` 的临界区内读取或修改,因此同一时刻只有一个线程能访问这两项状态。消费者没有元素且尚未完成时使用 `Monitor.Wait(_items)` 暂时释放锁;生产者 `Enqueue` 后 `Monitor.Pulse(_items)` 唤醒一个等待者;`CompleteAdding` 修改完成标记后使用 `Monitor.PulseAll(_items)` 唤醒全部等待者。 + +(3)`LogFileAnalyzer` 的共享变量包括 `_currentDirectory`、`_isAnalyzing`、`_logFiles` 和 `_analysisResults`。 +(4)它们由同一把 `_syncRoot` 锁保护。特别地,`AnalyzeFiles` 在锁内检查并设置 `_isAnalyzing`,防止两个调用同时开始分析;工作线程解析完文件后,也在 `lock (_syncRoot)` 中写入 `_analysisResults`。`finally` 中同样在锁内把 `_isAnalyzing` 复位为 `false`。 + +(5)条件变量可能发生虚假唤醒,所以被唤醒并不保证“队列中已经有元素”。如果消费者只使用 `if (buffer == 0)` 调用 `Wait`,被虚假唤醒后会直接执行 `Dequeue`;在无限仓库容量的生产者消费者问题中,这会在仓库仍为空时尝试取出不存在的商品,导致异常或错误状态。使用 `while` 可以在每次唤醒后重新检查“队列是否为空、是否已经结束”这两个真实条件,因此正确处理虚假唤醒和多个消费者竞争。 + +## Q2.2:在给出的代码框架 LogFileAnalyzer 中:哪一段代码扫描了给定的目录中的全部 .log 后缀的日志文件?假使给定的需求是不但要扫描给定目录中的日志文件,还要递归地获取给定的目录的全部子目录、子子目录……内的日志文件,应当如何做(简要回答即可)? + +(1)框架在 `ChangeDirectory` 中通过下列代码扫描当前目录的 `.log` 文件: + +```csharp +Directory.EnumerateFiles(directoryPath, "*.log", SearchOption.TopDirectoryOnly) +``` + +它随后使用 `Select(Path.GetFileName)` 获取文件名、`OrderBy` 排序,并写入 `_logFiles` 与 `_analysisResults`。 + +(2)若需要递归扫描当前目录及所有子目录,应将 `SearchOption.TopDirectoryOnly` 改为 `SearchOption.AllDirectories`。如果存在不同子目录下同名日志文件,还必须相应修改当前“以文件名为字典键”的设计,例如使用相对路径或完整路径作为键,以避免同名冲突。 + +## Q2.3 +### Q2.3.b:如果使用了 AI,你给予 AI 的提示词是什么?你对 AI 的使用是询问 AI 一些接口的用法或是在某处的写法,还是让 AI 帮你写一部分作业代码,又或是让 AI 给你讲解代码框架?AI 的解答是否出现过错误(如果有,是哪些)?你认为本节的难度是偏低、适中,还是偏高? + +我使用了 AI。提示词大意为“请为我提供一版在原代码基础上通过注释标明用到的讲义中知识点和用途,并讲解几个todo部分代码的编写思路(如用到的类或语法等)”。我用它来查询接口、理解框架和理清思路,没有把未验证的回答直接当作结果。它曾出现的错误有破坏原框架等。本节难度为偏高。 \ No newline at end of file diff --git a/src/LocalCli/Program.cs b/src/LocalCli/Program.cs index 17b30db..58ff794 100644 --- a/src/LocalCli/Program.cs +++ b/src/LocalCli/Program.cs @@ -1,4 +1,5 @@ -using LogAnalyzer; +using Google.Protobuf.WellKnownTypes; +using LogAnalyzer; using LogParser.Visitors; namespace LocalCli @@ -112,22 +113,72 @@ 6. Exit. private static void ShowLogFiles(LogFileAnalyzer analyzer) { - throw new NotImplementedException("T2.3"); + foreach (var fileName in analyzer.GetLogFiles()) + { + Console.WriteLine(fileName); + } } private static void AnalyzeFiles(LogFileAnalyzer analyzer) { - throw new NotImplementedException("T2.3"); + Console.WriteLine("Please input file names separated by commas:"); + var input = Console.ReadLine(); + if (input is null) + return; + var fileNames = input.Split(',').Select(name => name.Trim()); + Console.WriteLine("Please input degree of parallelism:"); + try + { + analyzer.AnalyzeFiles(int.Parse(Console.ReadLine() ?? string.Empty), fileNames); + } + catch (Exception ex) + { + Console.WriteLine($"Analyze failed: {ex.Message}"); + } } private static void AnalyzeAll(LogFileAnalyzer analyzer) { - throw new NotImplementedException("T2.3"); + Console.WriteLine("Please input degree of parallelism:"); + try + { + analyzer.AnalyzeAll(int.Parse(Console.ReadLine() ?? string.Empty)); + } + catch (Exception ex) + { + Console.WriteLine($"Analyze failed: {ex.Message}"); + } } private static void GetAnalysisResult(LogFileAnalyzer analyzer) { - throw new NotImplementedException("T2.3"); + Console.WriteLine("Please input file name:"); + var fileName = Console.ReadLine(); + if (fileName is null) + return; + if(!analyzer.TryGetAnalysisResult(fileName, out var result) || result is null) + { + Console.WriteLine("File does not exist."); + return; + } + switch (result.State) + { + case AnalysisState.NotAnalyzed: + Console.WriteLine("This file has not been analyzed yet."); + break; + case AnalysisState.Succeeded: + var visitor = new KeyValueVisitor(); + foreach (var entry in result.Entries) + { + var fields = visitor.Dump(entry); + Console.WriteLine(string.Join(", ",fields.Select( + field => $"{field.Key}={field.Value}"))); + } + break; + case AnalysisState.Failed: + Console.WriteLine($"Analysis failed: {result.ErrorMessage}"); + break; + } } } } diff --git a/src/LogAnalyzer/LogFileAnalyzer.cs b/src/LogAnalyzer/LogFileAnalyzer.cs index c3e7691..d99fc9e 100644 --- a/src/LogAnalyzer/LogFileAnalyzer.cs +++ b/src/LogAnalyzer/LogFileAnalyzer.cs @@ -137,11 +137,7 @@ public void AnalyzeFiles(int degreeOfParallelism, IEnumerable fileNames) } } fileList = fileNameList.Select(fileName => _logFiles[fileName]).ToList(); - - /* - * Set _isAnalyzing - */ - // TODO: T2.2 + _isAnalyzing = true; } try @@ -150,11 +146,10 @@ public void AnalyzeFiles(int degreeOfParallelism, IEnumerable fileNames) } finally { - /* - * Unset _isAnalyzing - * Remember to lock _syncRoot to prevent data race - */ - // TODO: T2.2 + lock (_syncRoot) + { + _isAnalyzing = false; + } } } @@ -165,11 +160,14 @@ private void RunWorkers(int degreeOfParallelism, IReadOnlyList fileLis { foreach (var file in fileList) { - /* - * Filter unparsed files. - * If there is an unknown file, throw System.InvalidOperationException. - */ - throw new NotImplementedException("TODO: T2.2"); + if (!_analysisResults.ContainsKey(file.Name)) + { + throw new InvalidOperationException($"Unkown log file: {file.Name}"); + } + if (_analysisResults[file.Name].State == AnalysisState.NotAnalyzed) + { + logFilesToParse.Add(file); + } } } @@ -180,27 +178,29 @@ private void RunWorkers(int degreeOfParallelism, IReadOnlyList fileLis var queue = new WorkQueue(); - /* - * Enqueue log files - */ - // TODO: T2.2 - + foreach (var file in logFilesToParse) + { + queue.Enqueue(file); + } + queue.CompleteAdding(); + degreeOfParallelism = Math.Max(Math.Min(degreeOfParallelism, logFilesToParse.Count), 1); var workers = new Thread[degreeOfParallelism]; for (int i = 0; i < degreeOfParallelism; i++) { int workerId = i; string threadName = $"log-analyzer-worker-{workerId}"; - /* - * Create and start threads to run `WorkerMain` - */ - // TODO: T2.2 + workers[i] = new Thread(() => WorkerMain(workerId, queue)) + { + Name = threadName + }; + workers[i].Start(); } - /* - * Wait for (join) all threads to end - */ - // TODO: T2.2 + foreach (var worker in workers) + { + worker.Join(); + } } private void WorkerMain(int workerId, WorkQueue queue) @@ -212,20 +212,31 @@ private void WorkerMain(int workerId, WorkQueue queue) AnalysisResult result; try { - // Parse file - throw new NotImplementedException("TODO: T2.2"); + using var reader = new StreamReader(file.FullName); + var entries = parser.Parse(reader).ToList(); + result = new AnalysisResult( + FileName: file.Name, + FullName: file.FullName, + State: AnalysisState.Succeeded, + Entries: entries, + ErrorMessage: null, + WorkerId: workerId); } catch (Exception ex) { - // Save exception message to result - throw new NotImplementedException("TODO: T2.2"); + result = new AnalysisResult( + FileName: file.Name, + FullName: file.FullName, + State: AnalysisState.Failed, + Entries: Array.Empty(), + ErrorMessage: ex.Message, + WorkerId: workerId); } - /* - * Save parse result. - * [!Important] Remember to lock _syncRoot to prevent data race. - */ - throw new NotImplementedException("TODO: T2.2"); + lock (_syncRoot) + { + _analysisResults[file.Name] = result; + } } } } diff --git a/src/LogAnalyzer/WorkQueue.cs b/src/LogAnalyzer/WorkQueue.cs index 23055a5..bac3114 100644 --- a/src/LogAnalyzer/WorkQueue.cs +++ b/src/LogAnalyzer/WorkQueue.cs @@ -20,17 +20,44 @@ public bool IsCompleted public void Enqueue(T item) { - throw new NotImplementedException("TODO: T2.1"); + lock (_items) + { + if (_isCompleted) + { + throw new InvalidOperationException("Cannot add an item after adding has been completed."); + } + _items.Enqueue(item); + Monitor.Pulse(_items); + } } public bool TryDequeue([NotNullWhen(true)] out T? item) { - throw new NotImplementedException("TODO: T2.1"); + lock (_items) + { + while (_items.Count == 0 && !IsCompleted) + { + Monitor.Wait(_items); + } + if (_items.Count > 0) + { + item = _items.Dequeue(); + return true; + } + item = default; + return false; + } } public void CompleteAdding() { - throw new NotImplementedException("TODO: T2.1"); + lock (_items) + { + if (_isCompleted) + return; + _isCompleted=true; + Monitor.PulseAll(_items); + } } } } From 10b7b190e50609bda881037cb28f3b6e8dff3060 Mon Sep 17 00:00:00 2001 From: zhangyichang25 Date: Sat, 22 Aug 2026 16:47:54 +0800 Subject: [PATCH 3/6] feat: implement multithreaded log analyzer --- docs/02-multithreading/report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/02-multithreading/report.md b/docs/02-multithreading/report.md index 87d032f..9cb65fe 100644 --- a/docs/02-multithreading/report.md +++ b/docs/02-multithreading/report.md @@ -10,6 +10,7 @@ ![完整功能截图2](./assets/normal-cli2.png) ![完整功能截图3](./assets/normal-cli3.png) ![完整功能截图4](./assets/normal-cli4.png) +![完整功能截图5](./assets/normal-cli5.png) 截图中演示了输入目录、显示日志文件、分析指定文件、分析全部文件、查看成功结果等所有常规功能。 From d27193e29bfde763e0ad6aca0343e678086b52b2 Mon Sep 17 00:00:00 2001 From: zhangyichang25 Date: Sat, 22 Aug 2026 17:09:37 +0800 Subject: [PATCH 4/6] fix: implement log entry visitor dispatch --- src/LogParser/Models/LogEntries.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/LogParser/Models/LogEntries.cs b/src/LogParser/Models/LogEntries.cs index 69edbc0..e4e9bbc 100644 --- a/src/LogParser/Models/LogEntries.cs +++ b/src/LogParser/Models/LogEntries.cs @@ -54,7 +54,7 @@ public sealed record RequestLogEntry( { public override TResult Accept(ILogEntryVisitor visitor) { - throw new NotImplementedException("TODO: T1.2"); + return visitor.Visit(this); } } @@ -69,7 +69,7 @@ public sealed record InternalLogEntry( { public override TResult Accept(ILogEntryVisitor visitor) { - throw new NotImplementedException("TODO: T1.2"); + return visitor.Visit(this); } } From 0aba859da66ff989e2761b3ac1504fcd380fd2b7 Mon Sep 17 00:00:00 2001 From: zhangyichang25 Date: Sat, 22 Aug 2026 17:33:13 +0800 Subject: [PATCH 5/6] fix: implement log entry visitor dispatch --- src/LogParser/Models/LogEntries.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/LogParser/Models/LogEntries.cs b/src/LogParser/Models/LogEntries.cs index 69edbc0..01169e4 100644 --- a/src/LogParser/Models/LogEntries.cs +++ b/src/LogParser/Models/LogEntries.cs @@ -54,7 +54,7 @@ public sealed record RequestLogEntry( { public override TResult Accept(ILogEntryVisitor visitor) { - throw new NotImplementedException("TODO: T1.2"); + return visitor.Visit(this); } } @@ -69,7 +69,7 @@ public sealed record InternalLogEntry( { public override TResult Accept(ILogEntryVisitor visitor) { - throw new NotImplementedException("TODO: T1.2"); + return visitor.Visit(this); } } From c6040b1d7327bf969ea58d1bcb472b7294fa9f2f Mon Sep 17 00:00:00 2001 From: zhangyichang25 Date: Mon, 24 Aug 2026 15:51:31 +0800 Subject: [PATCH 6/6] feat(grpc): implement log analyzer agent and remote cli --- .../assets/remote-cli-robustness1.png | Bin 0 -> 31944 bytes .../assets/remote-cli-robustness2.png | Bin 0 -> 42550 bytes .../assets/remote-cli-robustness3.png | Bin 0 -> 26868 bytes .../assets/remote-cli-robustness4.png | Bin 0 -> 24480 bytes .../assets/remote-cli-robustness5.png | Bin 0 -> 35106 bytes docs/03-async-grpc/assets/remote-cli1.png | Bin 0 -> 35489 bytes docs/03-async-grpc/assets/remote-cli2.png | Bin 0 -> 43135 bytes docs/03-async-grpc/assets/remote-cli3.png | Bin 0 -> 37322 bytes docs/03-async-grpc/assets/remote-cli4.png | Bin 0 -> 7639 bytes docs/03-async-grpc/assets/remote-cli5.png | Bin 0 -> 37317 bytes docs/03-async-grpc/assets/remote-cli6.png | Bin 0 -> 34267 bytes docs/03-async-grpc/report.md | 33 ++++ .../Applications/AgentSession.cs | 162 +++++++++++++++++- src/LogAnalyzerAgent/Services/AgentService.cs | 13 +- src/LogAnalyzerRpc/GrpcLogEntryVisitor.cs | 31 +++- src/LogAnalyzerRpc/GrpcTypeConverter.cs | 52 +++++- src/LogParser/Models/LogEntries.cs | 1 - src/RemoteCli/Program.cs | 80 ++++++++- 18 files changed, 347 insertions(+), 25 deletions(-) create mode 100644 docs/03-async-grpc/assets/remote-cli-robustness1.png create mode 100644 docs/03-async-grpc/assets/remote-cli-robustness2.png create mode 100644 docs/03-async-grpc/assets/remote-cli-robustness3.png create mode 100644 docs/03-async-grpc/assets/remote-cli-robustness4.png create mode 100644 docs/03-async-grpc/assets/remote-cli-robustness5.png create mode 100644 docs/03-async-grpc/assets/remote-cli1.png create mode 100644 docs/03-async-grpc/assets/remote-cli2.png create mode 100644 docs/03-async-grpc/assets/remote-cli3.png create mode 100644 docs/03-async-grpc/assets/remote-cli4.png create mode 100644 docs/03-async-grpc/assets/remote-cli5.png create mode 100644 docs/03-async-grpc/assets/remote-cli6.png create mode 100644 docs/03-async-grpc/report.md diff --git a/docs/03-async-grpc/assets/remote-cli-robustness1.png b/docs/03-async-grpc/assets/remote-cli-robustness1.png new file mode 100644 index 0000000000000000000000000000000000000000..5a473fd28f8dc500b9600942f560d911653c8517 GIT binary patch literal 31944 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 m_x(pH#Q#Ar^)D~!_{m|t36FXHWwG literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli-robustness2.png b/docs/03-async-grpc/assets/remote-cli-robustness2.png new file mode 100644 index 0000000000000000000000000000000000000000..70e402450e5da8de8e4ac297460ac4ae27125712 GIT binary patch literal 42550 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

;{?mat< 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 literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli-robustness3.png b/docs/03-async-grpc/assets/remote-cli-robustness3.png new file mode 100644 index 0000000000000000000000000000000000000000..0fcc30de755340566d450e2cb33c02e69190fd53 GIT binary patch literal 26868 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 literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli-robustness4.png b/docs/03-async-grpc/assets/remote-cli-robustness4.png new file mode 100644 index 0000000000000000000000000000000000000000..583074652dcdd41d01654f400dce45892371dd1b GIT binary patch literal 24480 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 P8j4F=S2PK~UcdWq=ihR0 literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli-robustness5.png b/docs/03-async-grpc/assets/remote-cli-robustness5.png new file mode 100644 index 0000000000000000000000000000000000000000..cd113fa752851ba1df913bafb19cc4dbe9ef1bd3 GIT binary patch literal 35106 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 ZCEw+q)EX{hf#2uSxomK$^!M8j{ttKkqvZeq literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli1.png b/docs/03-async-grpc/assets/remote-cli1.png new file mode 100644 index 0000000000000000000000000000000000000000..6b2784b0ba74df12e57d8fb20a5c43c7615ae3d6 GIT binary patch literal 35489 zcmdSBcT`h*+bxQf?N-FSMNm+%ph%5UMFP={sDKbeAk?7J3{?m%fe@5W*^2ZgU8y1^ z(xrr`yhv{eMQW%Cp-TuMfh2bY_xqkR?)Qx|?ilB<%NPtovR2lwt>>A~ob$I{nHb*@ z`d$2Y0RaIa{kykJ1qAlZ3JC1I{M$j`ok@XnuE3u?NYgui36yr9rUC!#ce!bFQ$V0B z`tZ)91Hk`>p5C=W3JCn^%m3Xo;Vcy>An;mU|JF^jK=?8T`b2@2LEXlJBgkWVW_Gvg z=Tt0J%>qL%jLRNgIR;nVx5p_r#a!eSLdvA;1}W{GsIqlR+dxcWr<{aWh<=7%Y})(x zxZ{o_=_vE)qjoV@Hokq`xv@ExQ#*6{iDPQg_`JWlf+tU%t2oU&9-9(tdN<_`nsDQ3 z!q3^`J@i|-#vwB-W|bHSzGDnD73k1?&T%@w)dB)*YrnPb;lKD1TBCKA+4B4I!k49} zhuSMoKb}3=p&{&^s@1RhTWW{@P+b8k%I(y2_X=9^NHki?-;7f8Ei2fLw+vfd1o8U8 z0t!qnGvuAr&ZHoFM!4~jBzhaOk)k84%b7h+|Duvmt@oA_%uUfzCONKGLhcvk=VTlf z9`1(r%0To-X!IV@YT|dy#xNB+BVNTyPelyYW=ZKrtb_~YDf1PNnLy%)QQx75FNs6$l$I6?I3ViypCYjO)#bQlj6h>Q(a^YyYaPgg0(

tN>UXzIGovdfU++mFcZ9b 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 literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli2.png b/docs/03-async-grpc/assets/remote-cli2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c51f8963e649ed46197e69eb01182d4ff7b694e GIT binary patch literal 43135 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 ObF_om*8cL_jei0I--Cbv literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli3.png b/docs/03-async-grpc/assets/remote-cli3.png new file mode 100644 index 0000000000000000000000000000000000000000..ae014202a3afc8cec5abdc59531434fb4668fa3e GIT binary patch literal 37322 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

OfRg;-3Mc(+ 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 literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli4.png b/docs/03-async-grpc/assets/remote-cli4.png new file mode 100644 index 0000000000000000000000000000000000000000..18a2f129ad5f0ede57995c800097558595a7d9f0 GIT binary patch literal 7639 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ð(E4s&!4%xeE<8V$wq`{sO~(dJN2&g(=I^DsVi$X*NcYpq zQfZju%uAZZ)8s+olxxQN|$c7D; z0AIo9!zy|?xaZ5LSD0L!iN&)g@PVvKBzrDy@C)u_+BW}BbqeC`67`(HhQ@+{jDi zgx%9rX1v6c)weQC*G^_B1vVrhpf}~3{RdunA^cyCK4 zniu}uZ%Ab3UebP22J|UhcN+w6YCMj?7^M;(4Oaql)6M&>$d}gfltF|@I48@d?sh<= zR@XXH^H;Y){OWkI1uZCStK01^4~*TT6!_9#@W5WqO)Mc+NJ`##W<#?8KfG6e7@w89vw3w=31FYEeSE4|wHO zuL!J4%i>r~v#QD;W|l6(EdD-LpdPO6=yl~!2No$R3MY}hbzZ%MpAmbY~&Db#yD z>y0{Pd8=omEfEUON7L(~3~wEPqX7IuqfN)ZB&191k=_e)F zi-%#20=g&td2QR3Bg4$%tYvi6_MGe_i^j2#`o~F=t{&TphW9|yMIXfw`pIQ?<+Z=14Q@}RZs)qq68rJzIY<2CDB~;?4LUQ`l$A`U z32uW&6pa+6nVlumQhY$RTlkx09R3?WIi?EWnM@{zz|G3n5S z+~sy3!hE3D2Tp^e3B|@tHGD~~G0pHy8nznX%zu%K{3P&IYP)Y0Y|B+jc!Y9hKEDuzAI2l>0#9??$X0G{@&1-wI7`{BhBeFlvN~xpW^%)=X`dF zHr9!1Z}?2BDrm@)&>-c0-?1AL@r46&D&2QA#dZDTk<}4_b*m}w)g2lxZX@&m+_8K2 zKK!}LsEGq*CZnH3Z-|t_7ZM;1@#UMAPG;Tr%G4XLlJ_-JpBa z2Bpw#O_Ulqcj#%%A(3@+uW`i!J5QQP6&H6W!;J8opajYi)|#%sh$KWunI{8{HTSiw z-7kk1hi{tcmSQ~$)h$o;+B0g88HRv8Aft>!;f#ZiT1RRmc#}pS5P!jua>(BZw&nXj z0!L*3WFY_C`h1YsY~br@!8d$;tfB`rQ5&~ihFerJWfNf^*@=(cICh40ZmJCOw2Y4Fg{yvtu8psY@s(D0X% z!?p-8mDV}ASCg&e^Q}6o~LiuY+tZ? zbYiSwLz{U}wRbxZ0M_$Af%zCEr##Vt+-#)chpcuGo9u>%VHG}nUO7r#WtaYF%Ch@3 zJQD>|mclimQdX4>dRB)#RT-bPI4*k1T?%kT)j3eA|B}%;wvoYg( zY*Y^M7b?8fs?x?mj1o~Ck~9r}K6$7ycx@py#Fp+*q6HxO>4#t?SuENjpQ~%Wsv=Dp zyVJiP7?cfK0`|L2Ey@D=sHet2Q5zS@k$B9mpXQxKn!>j{&|Ydgq`ckgU9xxZpu{1U zs6EocKDAXl=$7{Z_0F*-iuFegtr8Xm;{M*gl=|W*-4TkJ^!X&~bLe_RWoj@O$Fd@x zM$h6o7`MtciM8$suT{rIdHY~5t5NOh^(jsWTv?YdIn4T<1Hyq5xqRs+Xkk~T)Q}8y z3gFvWP4Uc^3nBx2Hp^g7L6_;bi1xCPxtt1AerXR|_>1!;N78f#Jl3)z&(j%ukM+V# zM8z8+)HzTEZc^XE?lnT9rR%0ZqCOb14PYA0+-42~4)gu|n#(Jp{J4w79Pum{5Ql9E zA#W4x>XV8&`_ZK>d~N*^-vM~BQ!HThTZC^WSV#XDdu~M61_IFs|M71{o=<5f=F6MC z6bv}FI6tTThvY}kOISX)uOjiq7jx#0(WYDk#G#|^Nv({**ueAwx4eKMmLA5uoY}qaeCJT)49I3+YNcW z@aV$XtE+@90(%}XkFp6|tdj&qTaa@2vH*rNx?Nx)Sly<>%?aacd}^aG6c4TBu~lQq4pLE01FSH{~W-8N;?!Q$kfZVL|%sZLFE#1Z%%N15n2}gF-=(eO9{n((KO|Xutgq)2|!rj|+_Ba0=BvN4OF0nq~KlMxKq8uij_JFT{Mv%ePC8&OJ-Yl)aL{p`9Z&RLOFQlhhRx3 z^d7a1Nvi&gdVKeK17DF7`hFk23&P literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/assets/remote-cli5.png b/docs/03-async-grpc/assets/remote-cli5.png new file mode 100644 index 0000000000000000000000000000000000000000..d892d147428ca06b523ac38c468d19534bed9e32 GIT binary patch literal 37317 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 GJO2k(Zu({b literal 0 HcmV?d00001 diff --git a/docs/03-async-grpc/report.md b/docs/03-async-grpc/report.md new file mode 100644 index 0000000..e52af5e --- /dev/null +++ b/docs/03-async-grpc/report.md @@ -0,0 +1,33 @@ +# 03 async-gRPC 作业报告 + +## T3.2 实现说明 + +我实现了远程控制台客户端:切换日志目录、显示日志文件、按指定并行度分析指定文件或全部文件、流式查看分析结果。客户端全部使用 gRPC 的异步调用. + +## 完整功能截图 + +![完整功能截图1](./assets/remote-cli1.png) +![完整功能截图2](./assets/remote-cli2.png) +![完整功能截图3](./assets/remote-cli3.png) +![完整功能截图4](./assets/remote-cli4.png) +![完整功能截图5](./assets/remote-cli5.png) +![完整功能截图6](./assets/remote-cli6.png) + +## 鲁棒性测试截图 + +我测试了菜单非法输入、目录错误后的恢复、负并行度/空文件名的本地校验、错误文件的服务端状态,以及“未选择目录直接分析”等异常处理。 + +![鲁棒性截图1](./assets/remote-cli-robustness1.png) +![鲁棒性截图2](./assets/remote-cli-robustness2.png) +![鲁棒性截图3](./assets/remote-cli-robustness3.png) +![鲁棒性截图4](./assets/remote-cli-robustness4.png) +![鲁棒性截图5](./assets/remote-cli-robustness5.png) + +## Q3.1:你认为,你在开发网络应用程序,与你在以往开发非网络应用程序的区别在哪里?网络应用程序的开发存在哪些额外的难点?存在哪些额外的复杂之处? + +新增的难点主要在于:1.涉及不同端的连接和协同,程序结构更加复杂,构思和编写难度增加。2.需要处理的可能异常情形增加了连接失败等,鲁棒性维护难度增加。3.程序调试检查需要同时运行不同端,更不容易发现、定位和修正bug。 + +## Q3.2 +### Q3.2.b:如果使用了 AI,你给予 AI 的提示词是什么?你对 AI 的使用是询问 AI 一些接口的用法、gRPC 的使用,或是在某处的写法,还是让 AI 帮你写一部分作业代码,又或是让 AI 给你讲解代码框架?AI 的解答是否出现过错误(如果有,是哪些)?你从 AI 那里是否得知了一些关于异步,或是 gRPC 等原本你不知道或是难以理解的知识? + +我使用了 AI。提示词大意为“请为我提供一版在原代码基础上通过注释标明用到的gRPC讲义中知识点和用途,并讲解几个todo部分代码的编写思路(如用到的类或语法等)的说明文档”。用途包括从复杂程序中寻找用到的接口、讲解用到的gRPC使用的知识点,以及提供代码编写思路和示例。AI的错误有类似功能代码写法不同导致混乱、弄混用到的相对地址和绝对地址等。得知的知识有领域模型与Proto模型的转换、gRPC各端安全与鲁棒性的维护方法等。 \ No newline at end of file diff --git a/src/LogAnalyzerAgent/Applications/AgentSession.cs b/src/LogAnalyzerAgent/Applications/AgentSession.cs index 2531f22..5fc76c9 100644 --- a/src/LogAnalyzerAgent/Applications/AgentSession.cs +++ b/src/LogAnalyzerAgent/Applications/AgentSession.cs @@ -79,22 +79,176 @@ public Task GetLogFiles(Empty empty, CancellationToken canc public Task ChangeDirectory(ChangeDirectoryRequest request, CancellationToken cancellationToken) { - throw new NotImplementedException("TODO: T3.1"); + var response = new ChangeDirectoryResponse(); + try + { + if (!_analyzer.ChangeDirectory(request.DirectoryPath)) + { + response.Status = _analyzer.IsAnalyzing + ? new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.InvalidOperation, + Message = "Analysis is in progress." + } + : new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.DirectoryNotFound, + Message = $"Directory '{request.DirectoryPath}' does not exist." + }; + return Task.FromResult(response); + } + response.CurrentDirectory = _analyzer.CurrentDirectory ?? ""; + response.FileNames.AddRange(_analyzer.GetLogFiles()); + response.Status = CreateNoErrorOperationStatus(); + } + catch (Exception ex) + { + response.Status = CreateInternalErrorOperationStatus(ex); + _logger.LogError(ex, "Unable to change directory to {Directory}.",request.DirectoryPath); + } + return Task.FromResult(response); } public Task AnalyzeAll(AnalyzeAllRequest request, CancellationToken cancellationToken) { - throw new NotImplementedException("TODO: T3.1"); + var response = new AnalyzeAllResponse(); + try + { + if (!_analyzer.HasDirectory) + { + response.Status = new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.InvalidOperation, + Message = "Please select a log directory first." + }; + } + else + { + _analyzer.AnalyzeAll(request.DegreeOfParallelism); + response.Status = CreateNoErrorOperationStatus(); + } + } + catch (ArgumentOutOfRangeException ex) + { + response.Status = new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.InvalidArgument, Message=ex.Message + }; + } + catch (InvalidOperationException ex) + { + response.Status = new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.InvalidOperation, Message=ex.Message + }; + } + catch (Exception ex) + { + response.Status = CreateInternalErrorOperationStatus(ex); + _logger.LogError(ex, "Unable to analyze all files."); + } + return Task.FromResult(response); } public Task AnalyzeFiles(AnalyzeFilesRequest request, CancellationToken cancellationToken) { - throw new NotImplementedException("TODO: T3.1"); + var response = new AnalyzeFilesResponse(); + try + { + if (!_analyzer.HasDirectory) + { + response.Status = new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.InvalidOperation, + Message = "Please select a log directory first." + }; + } + else + { + _analyzer.AnalyzeFiles(request.DegreeOfParallelism, request.FileNames); + response.Status = CreateNoErrorOperationStatus(); + } + } + catch (ArgumentOutOfRangeException ex) + { + response.Status = new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.InvalidArgument, Message=ex.Message + }; + } + catch (InvalidOperationException ex) + { + response.Status = new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.InvalidOperation, Message=ex.Message + }; + } + catch (Exception ex) + { + response.Status = CreateInternalErrorOperationStatus(ex); + _logger.LogError(ex, "Unable to analyze specified files."); + } + return Task.FromResult(response); } public IReadOnlyList GetAnalysisResult(GetAnalysisResultRequest request, CancellationToken cancellationToken) { - throw new NotImplementedException("TODO: T3.1"); + try + { + if (!_analyzer.TryGetAnalysisResult(request.FileName, out var result) || result is null) + { + return new[] + { + new GetAnalysisResultResponse + { + Status = new OperationStatusMessage + { + Success = false, Code = AgentErrorCode.FileNotFound, + Message = $"File '{request.FileName}' does not exist." + } + } + }; + } + var responses = new List + { + new() + { + Status = CreateNoErrorOperationStatus(), + Header = new AnalysisResultHeaderMessage + { + FileName = result.FileName, + FullName = result.FullName, + State = GrpcTypeConverter.ConvertToGrpc(result.State), + WorkerId = result.WorkerId + } + } + }; + if (result.ErrorMessage is not null) + { + responses[0].Header.ErrorMessage = result.ErrorMessage; + } + if (result.State == AnalysisState.Succeeded) + { + responses.AddRange(result.Entries.Select(entry => + new GetAnalysisResultResponse + { + Status = CreateNoErrorOperationStatus(), + LogEntry = GrpcTypeConverter.ConvertToGrpc(entry) + })); + } + return responses; + } + catch (Exception ex) + { + _logger.LogError(ex, "Unable to retrieve analysis result for {FileName}",request.FileName); + return new[] + { + new GetAnalysisResultResponse + { + Status = CreateInternalErrorOperationStatus(ex) + } + }; + } } } } diff --git a/src/LogAnalyzerAgent/Services/AgentService.cs b/src/LogAnalyzerAgent/Services/AgentService.cs index 591dcad..42a7eb5 100644 --- a/src/LogAnalyzerAgent/Services/AgentService.cs +++ b/src/LogAnalyzerAgent/Services/AgentService.cs @@ -29,27 +29,30 @@ public override Task GetAgentStatus(Empty empty, ServerC public override Task ChangeDirectory(ChangeDirectoryRequest request, ServerCallContext context) { - throw new NotImplementedException("TODO: T3.1"); + return _session.ChangeDirectory(request, context.CancellationToken); } public override Task GetLogFiles(Empty empty, ServerCallContext context) { - throw new NotImplementedException("TODO: T3.1"); + return _session.GetLogFiles(empty, context.CancellationToken); } public override Task AnalyzeAll(AnalyzeAllRequest request, ServerCallContext context) { - throw new NotImplementedException("TODO: T3.1"); + return _session.AnalyzeAll(request, context.CancellationToken); } public override Task AnalyzeFiles(AnalyzeFilesRequest request, ServerCallContext context) { - throw new NotImplementedException("TODO: T3.1"); + return _session.AnalyzeFiles(request, context.CancellationToken); } public override async Task GetAnalysisResult(GetAnalysisResultRequest request, IServerStreamWriter responseStream, ServerCallContext context) { - throw new NotImplementedException("TODO: T3.1"); + foreach (var response in _session.GetAnalysisResult(request, context.CancellationToken)) + { + await responseStream.WriteAsync(response); + } } } } diff --git a/src/LogAnalyzerRpc/GrpcLogEntryVisitor.cs b/src/LogAnalyzerRpc/GrpcLogEntryVisitor.cs index eb69232..2e9ec4a 100644 --- a/src/LogAnalyzerRpc/GrpcLogEntryVisitor.cs +++ b/src/LogAnalyzerRpc/GrpcLogEntryVisitor.cs @@ -30,12 +30,37 @@ public LogEntryMessage Visit(CallLogEntry entry) public LogEntryMessage Visit(RequestLogEntry entry) { - throw new NotImplementedException("TODO: T3.1"); + return new LogEntryMessage() + { + RequestLogEntry = new RequestLogEntryMessage + { + LineNo = entry.LineNo, + Timestamp = Timestamp.FromDateTimeOffset(entry.Timestamp), + PodName = entry.PodName, + Severity = GrpcTypeConverter.ConvertToGrpc(entry.Severity), + EventType = GrpcTypeConverter.ConvertToGrpc(entry.EventType), + RequestId = entry.RequestId, + Method = entry.Method, + Path = entry.Path, + StatusCode = entry.StatusCode, + } + }; } - public LogEntryMessage Visit(InternalLogEntry entry) { - throw new NotImplementedException("TODO: T3.1"); + return new LogEntryMessage() + { + InternalLogEntry = new InternalLogEntryMessage + { + LineNo = entry.LineNo, + Timestamp = Timestamp.FromDateTimeOffset(entry.Timestamp), + PodName = entry.PodName, + Severity = GrpcTypeConverter.ConvertToGrpc(entry.Severity), + EventType = GrpcTypeConverter.ConvertToGrpc(entry.EventType), + ExceptionName = entry.ExceptionName, + ExceptionMessage = entry.ExceptionMessage, + } + }; } } } diff --git a/src/LogAnalyzerRpc/GrpcTypeConverter.cs b/src/LogAnalyzerRpc/GrpcTypeConverter.cs index 029122e..9aa4791 100644 --- a/src/LogAnalyzerRpc/GrpcTypeConverter.cs +++ b/src/LogAnalyzerRpc/GrpcTypeConverter.cs @@ -20,12 +20,24 @@ public static AnalysisStateEnum ConvertToGrpc(AnalysisState state) public static LogSeverityEnum ConvertToGrpc(LogSeverity severity) { - throw new NotImplementedException("TODO: T3.1"); + return severity switch + { + LogSeverity.Info => LogSeverityEnum.Info, + LogSeverity.Warning => LogSeverityEnum.Warning, + LogSeverity.Error => LogSeverityEnum.Error, + _ => throw new ArgumentOutOfRangeException(nameof(severity), severity, null) + }; } public static LogEventTypeEnum ConvertToGrpc(LogEventType eventType) { - throw new NotImplementedException("TODO: T3.1"); + return eventType switch + { + LogEventType.Call => LogEventTypeEnum.Call, + LogEventType.Request => LogEventTypeEnum.Request, + LogEventType.Internal => LogEventTypeEnum.Internal, + _ => throw new ArgumentOutOfRangeException(nameof(eventType), eventType, null) + }; } public static LogEntryMessage ConvertToGrpc(LogEntry entry) @@ -46,12 +58,24 @@ public static AnalysisState ConvertFromGrpc(AnalysisStateEnum state) public static LogSeverity ConvertFromGrpc(LogSeverityEnum severity) { - throw new NotImplementedException("TODO: T3.1"); + return severity switch + { + LogSeverityEnum.Info => LogSeverity.Info, + LogSeverityEnum.Warning => LogSeverity.Warning, + LogSeverityEnum.Error => LogSeverity.Error, + _ => throw new ArgumentOutOfRangeException(nameof(severity), severity, null) + }; } public static LogEventType ConvertFromGrpc(LogEventTypeEnum eventType) { - throw new NotImplementedException("TODO: T3.1"); + return eventType switch + { + LogEventTypeEnum.Call => LogEventType.Call, + LogEventTypeEnum.Request => LogEventType.Request, + LogEventTypeEnum.Internal => LogEventType.Internal, + _ => throw new ArgumentOutOfRangeException(nameof(eventType), eventType, null) + }; } public static LogEntry ConvertFromGrpc(LogEntryMessage entryMessage) @@ -67,8 +91,24 @@ public static LogEntry ConvertFromGrpc(LogEntryMessage entryMessage) TargetService: entryMessage.CallLogEntry.TargetService, DurationMs: entryMessage.CallLogEntry.DurationMs ), - LogEntryMessage.EntryOneofCase.RequestLogEntry => throw new NotImplementedException("TODO: T3.1"), - LogEntryMessage.EntryOneofCase.InternalLogEntry => throw new NotImplementedException("TODO: T3.1"), + LogEntryMessage.EntryOneofCase.RequestLogEntry => new RequestLogEntry( + LineNo: entryMessage.RequestLogEntry.LineNo, + Timestamp: entryMessage.RequestLogEntry.Timestamp.ToDateTimeOffset(), + PodName: entryMessage.RequestLogEntry.PodName, + Severity: ConvertFromGrpc(entryMessage.RequestLogEntry.Severity), + RequestId: entryMessage.RequestLogEntry.RequestId, + Method: entryMessage.RequestLogEntry.Method, + Path: entryMessage.RequestLogEntry.Path, + StatusCode: entryMessage.RequestLogEntry.StatusCode + ), + LogEntryMessage.EntryOneofCase.InternalLogEntry => new InternalLogEntry( + LineNo: entryMessage.InternalLogEntry.LineNo, + Timestamp: entryMessage.InternalLogEntry.Timestamp.ToDateTimeOffset(), + PodName: entryMessage.InternalLogEntry.PodName, + Severity: ConvertFromGrpc(entryMessage.InternalLogEntry.Severity), + ExceptionName: entryMessage.InternalLogEntry.ExceptionName, + ExceptionMessage: entryMessage.InternalLogEntry.ExceptionMessage + ), _ => throw new ArgumentException($"Unknown entry type: {entryMessage.EntryCase}", nameof(entryMessage)) }; } diff --git a/src/LogParser/Models/LogEntries.cs b/src/LogParser/Models/LogEntries.cs index 17eae9b..e4e9bbc 100644 --- a/src/LogParser/Models/LogEntries.cs +++ b/src/LogParser/Models/LogEntries.cs @@ -70,7 +70,6 @@ public sealed record InternalLogEntry( public override TResult Accept(ILogEntryVisitor visitor) { return visitor.Visit(this); - return visitor.Visit(this); } } diff --git a/src/RemoteCli/Program.cs b/src/RemoteCli/Program.cs index de0ac99..5184ee3 100644 --- a/src/RemoteCli/Program.cs +++ b/src/RemoteCli/Program.cs @@ -116,32 +116,100 @@ 6. Exit. private static async Task ShowLogFiles(LogAnalyzerAgentServiceClient client) { - throw new NotImplementedException("TODO: T3.2"); + var response = await client.GetLogFilesAsync(new Empty()); + if (!response.Status.Success) + { + Console.WriteLine($"Error: {response.Status.Code}: {response.Status.Message}"); + return; + } + foreach (var fileName in response.FileNames) + { + Console.WriteLine(fileName); + } } private static int ReadDegreeOfParallelism() { - throw new NotImplementedException("TODO: T3.2"); + while (true) + { + Console.Write("Degree of paralleelism (0 = processor count): "); + if (int.TryParse(Console.ReadLine(), out var degree) && degree>=0) + return degree; + Console.WriteLine("Please enter a non-negative integer."); + } } private static List ReadFileNames() { - throw new NotImplementedException("TODO: T3.2"); + while (true) + { + Console.Write("File names, separated by commas: "); + var input = Console.ReadLine(); + if (input is null) return []; + var names = input.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).Distinct().ToList(); + if (names.Count > 0) return names; + Console.WriteLine("Please enter at least one file name."); + } } private static async Task AnalyzeFiles(LogAnalyzerAgentServiceClient client) { - throw new NotImplementedException("TODO: T3.2"); + var request = new AnalyzeFilesRequest + { + DegreeOfParallelism = ReadDegreeOfParallelism() + }; + request.FileNames.AddRange(ReadFileNames()); + var response = await client.AnalyzeFilesAsync(request); + Console.WriteLine(response.Status.Success? "Analysis completed.": $"Error: {response.Status.Code}: {response.Status.Message}"); } private static async Task AnalyzeAll(LogAnalyzerAgentServiceClient client) { - throw new NotImplementedException("TODO: T3.2"); + var response = await client.AnalyzeAllAsync(new AnalyzeAllRequest + { + DegreeOfParallelism = ReadDegreeOfParallelism() + }); + Console.WriteLine(response.Status.Success? "Analysis completed.": $"Error: {response.Status.Code}: {response.Status.Message}"); } private static async Task GetAnalysisResult(LogAnalyzerAgentServiceClient client) { - throw new NotImplementedException("TODO: T3.2"); + Console.Write("File name: "); + var fileName = Console.ReadLine(); + if (string.IsNullOrWhiteSpace(fileName)) + { + Console.WriteLine("File name connot be empty."); + return; + } + using var call = client.GetAnalysisResult(new GetAnalysisResultRequest {FileName = fileName}); + await foreach (var response in call.ResponseStream.ReadAllAsync()) + { + if (!response.Status.Success) + { + Console.WriteLine($"Error: {response.Status.Code}: {response.Status.Message}"); + return; + } + switch (response.PayloadCase) + { + case GetAnalysisResultResponse.PayloadOneofCase.Header: + var header = response.Header; + Console.WriteLine($"File: {header.FileName}"); + Console.WriteLine($"Path: {header.FullName}"); + Console.WriteLine($"State: {header.State}, worker: {header.WorkerId}"); + if (header.HasErrorMessage) + Console.WriteLine($"Error message: {header.ErrorMessage}"); + break; + case GetAnalysisResultResponse.PayloadOneofCase.LogEntry: + var entry = GrpcTypeConverter.ConvertFromGrpc(response.LogEntry); + foreach (var pair in new KeyValueVisitor().Dump(entry)) + Console.WriteLine($"{pair.Key}: {pair.Value}"); + Console.WriteLine(); + break; + default: + Console.WriteLine("Received a response without payload."); + break; + } + } } } }