Skip to content

Commit e31b987

Browse files
author
Евгений Балякин
committed
removed extra comments
1 parent dc513b2 commit e31b987

File tree

22 files changed

+0
-473
lines changed

22 files changed

+0
-473
lines changed

cmd/pgkernel/main.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,6 @@ import (
1414
"github.com/spf13/cobra"
1515
)
1616

17-
// FILE:cmd/pgkernel/main.go
18-
// VERSION:1.0.1
19-
// START_MODULE_CONTRACT:
20-
// PURPOSE:Provide CLI entrypoint for pgkernel check/version commands.
21-
// SCOPE:Flag parsing, detection orchestration, policy application, output rendering, process exit.
22-
// INPUT:CLI flags and runtime host state.
23-
// OUTPUT:Terminal/JSON/Markdown reports and deterministic exit codes.
24-
// KEYWORDS:[DOMAIN(CLI): cobra commands; CONCEPT(Policy): CI thresholds; TECH(Go): single binary]
25-
// LINKS:[USES_API(internal/*): detect/check/policy/output pipeline]
26-
// END_MODULE_CONTRACT
27-
28-
// START_CHANGE_SUMMARY:
29-
// LAST_CHANGE:1.0.1 - Added runtime-error aware exit code path and merged baseline/compare regression integration.
30-
// PREV_CHANGE_SUMMARY:1.0.0 - Implemented full CLI orchestration for pgkernel v0.1.
31-
// END_CHANGE_SUMMARY
32-
3317
type checkOptions struct {
3418
format string
3519
pgConfig string
@@ -131,7 +115,6 @@ func runCheck(opts checkOptions) int {
131115
}
132116
report.Regressions = dedupeRegressions(report.Regressions)
133117

134-
// BUG_FIX_CONTEXT: Runtime checker panics were previously converted into normal check outcomes, which could hide hard failures. The runtimeError signal now propagates into exit code priority logic.
135118
exitCode := policy.DetermineExitCode(results, report.Regressions, opts.failOn, runtimeError, regressionsOnly)
136119
report.Summary = checker.BuildSummary(results)
137120
report.Summary.ExitCode = exitCode

internal/checker/checker.go

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,6 @@ import (
55
"sort"
66
)
77

8-
// FILE:internal/checker/checker.go
9-
// VERSION:1.0.1
10-
// START_MODULE_CONTRACT:
11-
// PURPOSE:Provide check interface and deterministic runner execution order.
12-
// SCOPE:Check metadata contract, runner assembly, status-to-severity mapping.
13-
// INPUT:RuntimeState snapshot and check implementations.
14-
// OUTPUT:Ordered list of CheckResult entries.
15-
// KEYWORDS:[PATTERN(Strategy): pluggable checks; PATTERN(Pipeline): evaluation runner]
16-
// LINKS:[READS_DATA_FROM(internal/checker/context.go): RuntimeState]
17-
// END_MODULE_CONTRACT
18-
19-
// START_CHANGE_SUMMARY:
20-
// LAST_CHANGE:1.0.1 - Added panic recovery, runtime failure propagation, and result normalization to preserve contract stability.
21-
// PREV_CHANGE_SUMMARY:1.0.0 - Implemented check strategy interface and deterministic execution.
22-
// END_CHANGE_SUMMARY
23-
248
type Meta struct {
259
ID string
2610
Name string
@@ -37,18 +21,6 @@ type Runner struct {
3721
runtimeError bool
3822
}
3923

40-
// START_FUNCTION_NewRunner
41-
// START_CONTRACT:
42-
// PURPOSE:Create a runner that executes checks in deterministic ID order.
43-
// INPUTS:
44-
// - provided checks => checks: []Check
45-
// OUTPUTS:
46-
// - *Runner - ready-to-run checker engine
47-
// SIDE_EFFECTS: none
48-
// KEYWORDS:[PATTERN(Sorting): stable execution; CONCEPT(Reproducibility): deterministic output]
49-
// LINKS:[USES_API(sort.Slice): ordering by check id]
50-
// COMPLEXITY_SCORE:[3][single sort operation]
51-
// END_CONTRACT
5224
func NewRunner(checks []Check) *Runner {
5325
ordered := make([]Check, len(checks))
5426
copy(ordered, checks)
@@ -58,18 +30,6 @@ func NewRunner(checks []Check) *Runner {
5830
return &Runner{checks: ordered}
5931
}
6032

61-
// START_FUNCTION_Run
62-
// START_CONTRACT:
63-
// PURPOSE:Execute all registered checks against runtime state.
64-
// INPUTS:
65-
// - runtime snapshot => state: RuntimeState
66-
// OUTPUTS:
67-
// - []CheckResult - sorted check result rows
68-
// SIDE_EFFECTS: none
69-
// KEYWORDS:[PATTERN(Pipeline): sequential execution; CONCEPT(Stateless): pure evaluation]
70-
// LINKS:[USES_API(None): none]
71-
// COMPLEXITY_SCORE:[3][single loop over checks]
72-
// END_CONTRACT
7333
func (r *Runner) Run(state RuntimeState) []CheckResult {
7434
r.runtimeError = false
7535
results := make([]CheckResult, 0, len(r.checks))
@@ -86,18 +46,6 @@ func (r *Runner) Run(state RuntimeState) []CheckResult {
8646
return results
8747
}
8848

89-
// START_FUNCTION_HasRuntimeError
90-
// START_CONTRACT:
91-
// PURPOSE:Expose whether any checker execution produced runtime failure.
92-
// INPUTS:
93-
// - none
94-
// OUTPUTS:
95-
// - bool - true when at least one checker panic was recovered
96-
// SIDE_EFFECTS: none
97-
// KEYWORDS:[CONCEPT(Reliability): runtime signal propagation]
98-
// LINKS:[USES_API(None): none]
99-
// COMPLEXITY_SCORE:[1][field accessor]
100-
// END_CONTRACT
10149
func (r *Runner) HasRuntimeError() bool {
10250
return r.runtimeError
10351
}
@@ -143,7 +91,6 @@ func runtimeFailureResult(meta Meta, details string) CheckResult {
14391
}
14492

14593
func normalizeCheckResult(meta Meta, result CheckResult) CheckResult {
146-
// BUG_FIX_CONTEXT: Earlier checker outputs could miss required contract fields, which broke JSON stability and safety classification. The normalizer guarantees complete machine-readable rows for every check.
14794
if result.ID == "" {
14895
result.ID = meta.ID
14996
}
@@ -183,18 +130,6 @@ func normalizeCheckResult(meta Meta, result CheckResult) CheckResult {
183130
return result
184131
}
185132

186-
// START_FUNCTION_SeverityFromStatus
187-
// START_CONTRACT:
188-
// PURPOSE:Normalize output severity from resulting status.
189-
// INPUTS:
190-
// - status emitted by check => status: Status
191-
// OUTPUTS:
192-
// - Severity - mapped urgency level
193-
// SIDE_EFFECTS: none
194-
// KEYWORDS:[PATTERN(Mapping): status normalization]
195-
// LINKS:[USES_API(None): none]
196-
// COMPLEXITY_SCORE:[2][constant switch]
197-
// END_CONTRACT
198133
func SeverityFromStatus(status Status) Severity {
199134
switch status {
200135
case StatusCrit:

internal/checker/context.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,5 @@
11
package checker
22

3-
// FILE:internal/checker/context.go
4-
// VERSION:1.0.0
5-
// START_MODULE_CONTRACT:
6-
// PURPOSE:Define normalized runtime state consumed by all check modules.
7-
// SCOPE:Kernel, system, and PostgreSQL signals collected by detect layer.
8-
// INPUT:System and configuration probes from detect package.
9-
// OUTPUT:Stable in-memory state for deterministic check evaluation and tests.
10-
// KEYWORDS:[DOMAIN(Diagnostics): runtime snapshot; CONCEPT(Testability): dependency isolation]
11-
// LINKS:[READS_DATA_FROM(detect): detector outputs]
12-
// END_MODULE_CONTRACT
13-
14-
// START_CHANGE_SUMMARY:
15-
// LAST_CHANGE:1.0.0 - Added strongly typed runtime state model for all checks.
16-
// PREV_CHANGE_SUMMARY:none
17-
// END_CHANGE_SUMMARY
18-
193
type KernelState struct {
204
Version string
215
Major int

internal/checker/result.go

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,6 @@ import (
66
"github.com/google/uuid"
77
)
88

9-
// FILE:internal/checker/result.go
10-
// VERSION:1.0.0
11-
// START_MODULE_CONTRACT:
12-
// PURPOSE:Define stable report contracts shared across runner, policy, and output layers.
13-
// SCOPE:Check result schema, report envelope, summary counters, compatibility declarations.
14-
// INPUT:Check evaluation artifacts from checker modules.
15-
// OUTPUT:Machine-readable report model for pretty/json/markdown renderers.
16-
// KEYWORDS:[DOMAIN(Observability): report contract; CONCEPT(Compatibility): schema stability; TECH(Go): typed enums]
17-
// LINKS:[USES_API(JSON): encoding/json; READS_DATA_FROM(Runtime): checker context]
18-
// END_MODULE_CONTRACT
19-
20-
// START_CHANGE_SUMMARY:
21-
// LAST_CHANGE:1.0.0 - Introduced canonical result and report models for pgkernel v0.1 implementation.
22-
// PREV_CHANGE_SUMMARY:none
23-
// END_CHANGE_SUMMARY
24-
25-
// START_MODULE_MAP:
26-
// TYPE [Weight 1-10][Entity description in English] =>[entity_name_latin]
27-
// FUNC [9][Build report envelope with deterministic metadata] => [NewReport]
28-
// FUNC [8][Initialize summary counters for report checks] => [BuildSummary]
29-
// END_MODULE_MAP
30-
319
const (
3210
SchemaVersion = "1.0.0"
3311
ToolVersion = "0.1.0"
@@ -149,21 +127,6 @@ type Report struct {
149127
Regressions []Regression `json:"regressions,omitempty"`
150128
}
151129

152-
// START_FUNCTION_NewReport
153-
// START_CONTRACT:
154-
// PURPOSE:Construct a complete report envelope with deterministic schema metadata.
155-
// INPUTS:
156-
// - profile runtime profile string => profile: string
157-
// - detected system facts => system: SystemInfo
158-
// - detected postgres facts => pg: PostgreSQLInfo
159-
// - evaluated check rows => checks: []CheckResult
160-
// OUTPUTS:
161-
// - Report - report with generated id and RFC3339 timestamp
162-
// SIDE_EFFECTS: none
163-
// KEYWORDS:[PATTERN(Builder): immutable report envelope; CONCEPT(Contract): stable JSON]
164-
// LINKS:[USES_API(UUID): github.com/google/uuid; USES_API(Time): time.Now]
165-
// COMPLEXITY_SCORE:[3][Linear model assembly]
166-
// END_CONTRACT
167130
func NewReport(profile string, system SystemInfo, pg PostgreSQLInfo, checks []CheckResult) Report {
168131
return Report{
169132
SchemaVersion: SchemaVersion,
@@ -182,18 +145,6 @@ func NewReport(profile string, system SystemInfo, pg PostgreSQLInfo, checks []Ch
182145
}
183146
}
184147

185-
// START_FUNCTION_BuildSummary
186-
// START_CONTRACT:
187-
// PURPOSE:Aggregate summary counters from check statuses.
188-
// INPUTS:
189-
// - checks to aggregate => checks: []CheckResult
190-
// OUTPUTS:
191-
// - Summary - counts grouped by status classes
192-
// SIDE_EFFECTS: none
193-
// KEYWORDS:[PATTERN(Reduce): status aggregation; CONCEPT(Policy): exit-code groundwork]
194-
// LINKS:[USES_API(None): none]
195-
// COMPLEXITY_SCORE:[4][Single pass over checks]
196-
// END_CONTRACT
197148
func BuildSummary(checks []CheckResult) Summary {
198149
s := Summary{Total: len(checks)}
199150
for _, check := range checks {

internal/checks/io_scheduler.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,6 @@ import (
77
"github.com/balyakin/pgkernel/internal/checker"
88
)
99

10-
// FILE:internal/checks/io_scheduler.go
11-
// VERSION:1.0.0
12-
// START_MODULE_CONTRACT:
13-
// PURPOSE:Implement storage scheduler and dirty page write-back checks.
14-
// SCOPE:IO-001, IO-002.
15-
// INPUT:System storage and vm dirty ratio state.
16-
// OUTPUT:IO-focused recommendations for PostgreSQL reliability.
17-
// KEYWORDS:[DOMAIN(IO): scheduler; DOMAIN(MemoryWriteback): dirty ratios]
18-
// LINKS:[READS_DATA_FROM(/sys/block/*/queue/scheduler): scheduler]
19-
// END_MODULE_CONTRACT
20-
21-
// START_CHANGE_SUMMARY:
22-
// LAST_CHANGE:1.0.0 - Implemented IO checks.
23-
// PREV_CHANGE_SUMMARY:none
24-
// END_CHANGE_SUMMARY
25-
2610
type io001Scheduler struct{}
2711
type io002DirtyRatios struct{}
2812

internal/checks/kern_preemption.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,6 @@ import (
66
"github.com/balyakin/pgkernel/internal/checker"
77
)
88

9-
// FILE:internal/checks/kern_preemption.go
10-
// VERSION:1.0.0
11-
// START_MODULE_CONTRACT:
12-
// PURPOSE:Implement kernel preemption and kernel-version interaction checks.
13-
// SCOPE:KERN-001, KERN-002, KERN-003.
14-
// INPUT:checker.RuntimeState kernel attributes.
15-
// OUTPUT:Structured check results with remediation metadata.
16-
// KEYWORDS:[DOMAIN(Kernel): preemption model; DOMAIN(PostgreSQL): throughput risk]
17-
// LINKS:[READS_DATA_FROM(internal/detect/kernel.go): KernelState]
18-
// END_MODULE_CONTRACT
19-
20-
// START_CHANGE_SUMMARY:
21-
// LAST_CHANGE:1.0.0 - Implemented KERN check family according to specification.
22-
// PREV_CHANGE_SUMMARY:none
23-
// END_CHANGE_SUMMARY
24-
259
type kern001PreemptionModel struct{}
2610
type kern002KernelVersionRisk struct{}
2711
type kern003RSEQSupport struct{}

internal/checks/mem_hugepages.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,6 @@ import (
88
"github.com/balyakin/pgkernel/internal/checker"
99
)
1010

11-
// FILE:internal/checks/mem_hugepages.go
12-
// VERSION:1.0.1
13-
// START_MODULE_CONTRACT:
14-
// PURPOSE:Implement huge pages and THP checks for PostgreSQL workloads.
15-
// SCOPE:MEM-001, MEM-002.
16-
// INPUT:System THP/hugepages and PostgreSQL settings.
17-
// OUTPUT:Actionable results with safety-aware remediation.
18-
// KEYWORDS:[DOMAIN(Memory): THP and HugePages; CONCEPT(Latency): compaction spikes]
19-
// LINKS:[READS_DATA_FROM(/sys/kernel/mm/transparent_hugepage/enabled): THP]
20-
// END_MODULE_CONTRACT
21-
22-
// START_CHANGE_SUMMARY:
23-
// LAST_CHANGE:1.0.1 - Fixed shared_buffers-to-hugepages estimate to use PostgreSQL unit semantics with dynamic huge page size.
24-
// PREV_CHANGE_SUMMARY:1.0.0 - Implemented memory hugepage checks.
25-
// END_CHANGE_SUMMARY
26-
2711
type mem001THP struct{}
2812
type mem002StaticHugePages struct{}
2913

internal/checks/mem_swap.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,6 @@ import (
66
"github.com/balyakin/pgkernel/internal/checker"
77
)
88

9-
// FILE:internal/checks/mem_swap.go
10-
// VERSION:1.0.0
11-
// START_MODULE_CONTRACT:
12-
// PURPOSE:Implement memory pressure and OOM sensitivity checks.
13-
// SCOPE:MEM-003, MEM-004, MEM-005.
14-
// INPUT:sysctl values and PostgreSQL process metadata.
15-
// OUTPUT:Structured memory risk assessment.
16-
// KEYWORDS:[DOMAIN(Memory): swappiness and overcommit; DOMAIN(Reliability): OOM resilience]
17-
// LINKS:[READS_DATA_FROM(/proc/sys/vm/*): sysctl]
18-
// END_MODULE_CONTRACT
19-
20-
// START_CHANGE_SUMMARY:
21-
// LAST_CHANGE:1.0.0 - Added swap and OOM checks.
22-
// PREV_CHANGE_SUMMARY:none
23-
// END_CHANGE_SUMMARY
24-
259
type mem003Swappiness struct{}
2610
type mem004Overcommit struct{}
2711
type mem005OOMAdj struct{}

internal/checks/net_tcp.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,6 @@ import (
66
"github.com/balyakin/pgkernel/internal/checker"
77
)
88

9-
// FILE:internal/checks/net_tcp.go
10-
// VERSION:1.0.0
11-
// START_MODULE_CONTRACT:
12-
// PURPOSE:Implement networking baseline checks relevant for remote PostgreSQL clients.
13-
// SCOPE:NET-001.
14-
// INPUT:TCP keepalive sysctl values.
15-
// OUTPUT:Informational or pass state with recommended tuning range.
16-
// KEYWORDS:[DOMAIN(Networking): tcp keepalive; CONCEPT(Resilience): stale connection detection]
17-
// LINKS:[READS_DATA_FROM(/proc/sys/net/ipv4/*): keepalive knobs]
18-
// END_MODULE_CONTRACT
19-
20-
// START_CHANGE_SUMMARY:
21-
// LAST_CHANGE:1.0.0 - Added TCP keepalive check.
22-
// PREV_CHANGE_SUMMARY:none
23-
// END_CHANGE_SUMMARY
24-
259
type net001TCPKeepalive struct{}
2610

2711
func NetworkChecks() []checker.Check {

internal/checks/pg_config.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,6 @@ import (
88
"github.com/balyakin/pgkernel/internal/checker"
99
)
1010

11-
// FILE:internal/checks/pg_config.go
12-
// VERSION:1.0.1
13-
// START_MODULE_CONTRACT:
14-
// PURPOSE:Implement PostgreSQL configuration sanity checks.
15-
// SCOPE:PG-001, PG-002, PG-003.
16-
// INPUT:Parsed postgresql.conf settings and system RAM.
17-
// OUTPUT:PostgreSQL tuning diagnostics aligned with host resources.
18-
// KEYWORDS:[DOMAIN(PostgreSQL): memory and WAL tuning; CONCEPT(Capacity): headroom]
19-
// LINKS:[READS_DATA_FROM(postgresql.conf): shared_buffers/work_mem/wal settings]
20-
// END_MODULE_CONTRACT
21-
22-
// START_CHANGE_SUMMARY:
23-
// LAST_CHANGE:1.0.1 - Fixed PostgreSQL memory unit normalization for shared_buffers/work_mem/wal_buffers calculations.
24-
// PREV_CHANGE_SUMMARY:1.0.0 - Implemented PostgreSQL sanity checks.
25-
// END_CHANGE_SUMMARY
26-
2711
type pg001SharedBuffers struct{}
2812
type pg002WorkMem struct{}
2913
type pg003WAL struct{}

0 commit comments

Comments
 (0)