Object ::nsmcp::logTools::errorSummary (public)
::nsmcp::LogErrorSummaryTool ::nsmcp::logTools::errorSummary
Defined in /usr/local/ns/tcl/nsmcp/log-summary.tcl
- Testcases:
- No testcase defined.
Source code: namespace eval ::nsmcp::logTools {} ::nsf::object::alloc ::nsmcp::LogErrorSummaryTool ::nsmcp::logTools::errorSummary {set :adminExample {} set :adminSummary {} set :description {Summarize selected system-log severities in a time window. Optional literal selects a case-sensitive message across the full requested window without a record-example cap and enables urlAggregation before detailed grouping limits. This returns queryless logged paths, counts, methods, authentication states, times and one representative request identifier per returned path. Up to 4096 paths are counted and maxGroups ranks at most 50; inspect unknownUrlRecords, capacityOmittedRecords, rankedOmittedRecords, scanComplete and literalSelection unknown-match counters separately. No response status is inferred from warning text. Correlate a few representative identifiers only for missing details. Current-log retention/rotation limitations still apply; defaults to Error, Fatal and Bug. Set severities to ["Warning"] for warning analysis or combine Warning with Error/Fatal/Bug. Severity labels are logging classifications, not an independent incident assessment. Combines duplicate-parameter warnings with bounded parameterCounts, normalizes scheduler lateness with timing aggregates and trailing suppression annotations, counts heuristic familyTotals for every selected record and bounded otherBreakdown source counts, reports exact overflowFamilyTotals and bounded redacted hash-priority overflowExamples/overflowSamplesByFamily across the scan with byte offsets, and ranks up to 512 counted groups before the output limit, and distinguishes ungroupedRecords from omittedGroupRecords. Reports physical repeat markers and suppressed-occurrence accounting without assigning suppressed events to the marker window. duplicateParameterOrigins aggregates authentication and redacted User-Agent counts overall and per parameter across all matching records before grouping limits, with explicit unknown, cardinality-overflow, ranked-omission and truncation counts. Samples expose direct authenticationState/authenticationSource without user IDs. Completed duplicate groups can include bounded, address-free access-cache correlation; missing evidence and User-Agents are unknown, not proof of human or bot activity. Returns grouped counts, first/last occurrence, redacted examples and coverage. Prefer this for daily error summaries instead of paging all log_errors records. Defaults to today in UTC; period today/yesterday may use an explicit timezone, or use lastMinutes or from/to (exclusive end). Current log only; rotations are not examined. coverage.logBounds reports first/last file-order and earliest/latest observed epoch timestamps and offsets across all timestamped severities, not just matching errors. coverage.rotation distinguishes configured signal/filename settings from unknown schedule and last verified rotation time. Observed bounds never certify complete window coverage. Returns explicit severityTotals independently of maxGroups. coverage.unrecognizedRecords counts unrecognized system-log entries; coverage.unrecognizedExamples provides up to five redacted examples with byte offsets. Expected ns:sched unlock/hold traces are omitted. Other stderr mutex traces have coverage.mutexTraceRecords and mutexTraceGroups with counts, minimum/maximum/mean seconds, offsets and maximum-duration thread; mutexTraceUngroupedRecords accounts for the 128-group bound. These groups aggregate all scanned traces, not just the five untimestampedExamples. Do not infer a file-wide distribution from examples or call a duration proof of contention. Short startup entries are reported separately via shortLogRecords. Recognizes PostgreSQL diagnostics with grouped DETAIL/HINT/CONTEXT via postgresRecords and postgresExamples. Neighboring timestamps are explicitly labeled inferred-neighbors; they are contextual bounds, not guaranteed event times. These diagnostic counters cover the scanned file; inferred times never enter window totals. Mutex traces are not errors; untimestamped Error/Fatal/Bug entries are reported as unknownTimeErrors rather than included in window totals. Scans the current file in resumable chunks with fixed bounds; running jobs report progress.examinedBytes and progress.sourceBytes. Runs asynchronously: poll log_results with jobHandle until complete; the completed result is the summary and has no record pages. Grouping is heuristic and bounded; report ungroupedRecords and coverage limitations.} set :inputSchema {{} object {type string object properties object {period object {type string string enum array {0 string today 1 string yesterday}} timezone object {type string string} lastMinutes object {type string integer minimum number 1 maximum number 10080} from object {type string integer minimum number 0} to object {type string integer minimum number 1} literal object {type string string minLength number 1 maxLength number 1024 description string {Case-sensitive literal in retained logical records, including continuations; up to 1024 UTF-8 bytes without CR/LF/NUL. Counts all matching records in the selected window and enables queryless URL aggregation, without an example-record cap.}} maxGroups object {type string integer minimum number 1 maximum number 50} severities object {type string array minItems number 1 maxItems number 4 uniqueItems boolean true items object {type string string enum array {0 string Warning 1 string Error 2 string Fatal 3 string Bug}}}} additionalProperties boolean false}} set :name log_error_summary set :outputSchema {} set :permission diagnostics.logs.read set :service ::nsmcp::logService}XQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)