Initial commit
This commit is contained in:
commit
542ebdea34
40 changed files with 4592 additions and 0 deletions
36
checker/collector.go
Normal file
36
checker/collector.go
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
// This file is part of the happyDomain (R) project.
|
||||
// Copyright (c) 2020-2026 happyDomain
|
||||
// Authors: Pierre-Olivier Mercier, et al.
|
||||
|
||||
package checker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Target captures everything a Collector needs to probe one logical host.
|
||||
// It is built once by the orchestrator from CheckerOptions and passed to
|
||||
// every Collector, so individual collectors don't have to re-parse options
|
||||
// or re-resolve IPs.
|
||||
type Target struct {
|
||||
Host string
|
||||
IPs []string
|
||||
Timeout time.Duration
|
||||
MaxRedirects int
|
||||
UserAgent string
|
||||
}
|
||||
|
||||
// Collector contributes a typed observation about a Target. Each collector
|
||||
// owns one slice of the work (root probe, well-known endpoints, CORS
|
||||
// preflight, etc.) and writes its result under Key() in the final
|
||||
// payload's Extensions map.
|
||||
//
|
||||
// The current orchestrator wires only the root collector and writes its
|
||||
// result directly under ObservationKeyHTTP for backward compatibility.
|
||||
// Additional collectors are introduced in step 4; they will populate
|
||||
// HTTPData.Extensions[Key()] without disturbing existing rules.
|
||||
type Collector interface {
|
||||
Key() string
|
||||
Collect(ctx context.Context, t Target) (any, error)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue