nsmcp::QuestionBackend object method reportingInstructions (public)

 nsmcp::QuestionBackend[i] reportingInstructions base

Defined in /usr/local/ns/tcl/nsmcp/question-backend.tcl

Parameters:
base (required)

Testcases:
No testcase defined.
Source code:
append base " For system-log warning analysis use log_error_summary with severities [list {["Warning"]}]; the default selects Error/Fatal/Bug only. Mixed warning/error analysis can select all four. To inspect individual warning records use log_errors with severity Warning. Failure to request a severity is not evidence that it is absent or disabled. Treat severity as the emitter's classification and assess operational significance from the actual message, counts and context."
append base " For mutex diagnostics, use coverage.mutexTraceGroups and mutexTraceUngroupedRecords for full-scan categorization, never extrapolate the first five examples. Expected ns:sched unlock/hold traces are omitted. Report wait versus hold durations separately and their scanned-file scope; untimestamped traces cannot be assigned to today's time window. Long durations alone do not establish contention or an incident; retain thread/offset evidence and distinguish observations from interpretation."
return "$base Use one timezone consistently for window bounds, group occurrence times and commentary: honor the requested timezone, otherwise UTC. Convert epoch timestamps rather than copying local timestamps from log examples. For error summaries, report every returned group (count and description), severityTotals and ungroupedRecords; do not silently omit groups. Groups count log records, not unique incidents. Correlate records only with supporting request/thread identifiers and timing; separately timestamped Error records are not continuation lines merely because their messages match. Report coverage.logBounds as observed file times, never as a rotation time or proof of a complete day. Distinguish configured rotation settings from verified rotation; unknown schedule or lastVerifiedAt remains unknown. Do not assume the current file covers the UTC day, even with local midnight rotation. Untimestamped/inferred diagnostics remain separate from windowed severity totals. For address-free source diversity and User-Agent rankings, use access_bot_routing mode scan with aggregateTraffic true, includePeerAddresses false and the exact path when requested. Aggregates count all selected scanned records before evidence truncation; inspect observed completeness, unknown fields, cardinality limits and time-window coverage separately. Do not request address disclosure just to measure source counts or concentration. Deliberate fast-pool overrides such as /robots.txt are not evidence of failed bot isolation; inspect effective mappings. Before recommending admission or concurrency controls, establish what controls already exist from user-provided facts and configuration. Registered filters alone do not reveal their implementation. Do not propose an existing two-concurrent-anonymous-request limit again; assess its effect using authenticationStates counts, 503 counts and successful handler time, and identify unmeasured enforcement details. High 503 counts can indicate successful protection, not worker overload. Logged authentication state is not a verified session identity; old cached rows may be unknown. Inspect process.cpuCapacity: effectiveCores is the minimum visible CPU ceiling, constraintsComplete and incompleteReasons qualify it. Compare sampled core consumption with that ceiling; inspect cgroup throttling deltas across the same interval. Cgroup counters include other processes and ancestors may include siblings; do not sum ancestor counters or attribute all throttling to NaviServer. Hidden limits, shares and host contention can reduce actual availability. Do not call CPU capacity unknown when a usable qualified value is reported. For performance advice, inspect server_request_routing and access_bot_routing before claiming bot isolation failed or proposing new filters. Filter registrations do not establish filter purpose or implementation. Use slow_requests to investigate slow access records; do not infer individual SQL plans or query timings from access timing data. In explicit manual page mode follow diagnostic nextArguments and report page-local counts and unknown rule semantics. access_bot_routing.lookupMode distinguishes native-context precedence resolution from fallback-rule-membership; expectedPool describes current routing only, and contextComplete=false means insufficient logged inputs. Do not interpret fallback membership candidates or bot-like heuristics as verified historical routing failures. To inspect routing candidates, use access_bot_routing category for the exact reported category and obey limit maximum 100. Distinguish filteredOutRecords from omittedRecords and use omittedCategoryTotals to identify missing candidate evidence. If includePeerAddresses is denied, retry without it and provide authorized redacted evidence rather than abandoning the investigation. A rescan is a new observation, not recovered retained evidence. omittedRecords and omittedCategoryTotals count log records, not groups. Choose the category appropriate to the current lookupMode, especially after a core upgrade. access_bot_routing defaults to a background scan: wait for the completed job result and use its aggregate counts. Do not request mode page or manually paginate unless the user explicitly wants byte-page inspection. Timeout preserves the jobHandle for log_results; do not start a duplicate scan. For server_history, use the default page size of 100 (maximum 100); do not choose small pages unless explicitly requested. Follow nextArguments unchanged until history.more=false, preserving the window and cursor; do not restart the same history query. For broad performance investigations start with a bounded recent window, normally 10 completed minutes; expand only when evidence or the user requires it. Budget history pages against the 32-call question limit and reserve calls for other diagnostics and a final answer. If the requested window cannot fit the remaining call budget, report partial coverage and the exact continuation arguments rather than silently shortening the requested window, claiming complete coverage, or exhausting the tool-call limit."
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: