<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>oracle-watchdog Go API :: oracle-watchdog</title><link>https://oracle-watchdog.munchbox.cc/godoc/index.html</link><description>Auto-generated reference documentation from the Go source code. agent Agent mode: monitors Consul for missing Oracle node sessions and orchestrates OCI restart cycles.
monitor Monitor mode: maintains Consul session heartbeat on each Oracle node with state machine lifecycle.
config YAML configuration loading and validation for agent mode node mappings and timeouts.
oci OCI SDK wrapper for instance stop/start lifecycle with state polling and timeout handling.
metrics Prometheus metric definitions for monitor and agent modes: connection status, session health, restart tracking.</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://oracle-watchdog.munchbox.cc/godoc/index.xml" rel="self" type="application/rss+xml"/><item><title>agent</title><link>https://oracle-watchdog.munchbox.cc/godoc/agent/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/agent/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/agent" Index type Agent func New(cfg *config.Config) *Agent func (a *Agent) Run(ctx context.Context) error type Agent Agent monitors Oracle nodes and restarts unresponsive instances.
type Agent struct { // contains filtered or unexported fields }</description></item><item><title>config</title><link>https://oracle-watchdog.munchbox.cc/godoc/config/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/config/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/config" Index type CloudflareConfig type Config func LoadAgent(path string) (*Config, error) func LoadMonitor(path string) (*Config, error) type NodeConfig type OCIConfig type TracingConfig type WanDNSConfig type WireguardConfig type CloudflareConfig CloudflareConfig identifies the Cloudflare API token env var and target zone used by the WAN DNS updater.</description></item><item><title>metrics</title><link>https://oracle-watchdog.munchbox.cc/godoc/metrics/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/metrics/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/metrics" Index Variables func RegisterAgent() func RegisterMonitor() func Serve(ctx context.Context, port string) Variables var ( MonitorConsulConnected = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "oracle_watchdog_consul_connected", Help: "Whether the monitor is connected to Consul (1=connected, 0=disconnected)", }) MonitorSessionActive = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "oracle_watchdog_session_active", Help: "Whether the Consul session is active (1=active, 0=inactive)", }) MonitorReconnectAttempts = prometheus.NewCounter(prometheus.CounterOpts{ Name: "oracle_watchdog_reconnect_attempts_total", Help: "Total number of Consul reconnection attempts", }) MonitorSessionRenewals = prometheus.NewCounter(prometheus.CounterOpts{ Name: "oracle_watchdog_session_renewals_total", Help: "Total number of successful session renewals", }) MonitorSessionFailures = prometheus.NewCounter(prometheus.CounterOpts{ Name: "oracle_watchdog_session_failures_total", Help: "Total number of session failures (creation or renewal)", }) )</description></item><item><title>monitor</title><link>https://oracle-watchdog.munchbox.cc/godoc/monitor/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/monitor/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/monitor" Index type Monitor func New(nodeName string, opts …Option) *Monitor func (m *Monitor) Run(ctx context.Context) error type Option func WithWireguard(cfg config.WireguardConfig) Option type Monitor Monitor maintains a Consul session heartbeat for an Oracle node and optionally drives the WireGuard endpoint resolver alongside it.</description></item><item><title>oci</title><link>https://oracle-watchdog.munchbox.cc/godoc/oci/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/oci/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/oci" Index type Client func NewClient(configPath, profile string) (*Client, error) func (c *Client) RestartInstance(ctx context.Context, instanceID, compartmentID string) error type Client Client provides OCI instance management operations.
type Client struct { // contains filtered or unexported fields }</description></item><item><title>tracing</title><link>https://oracle-watchdog.munchbox.cc/godoc/tracing/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/tracing/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/tracing" Index Variables func DurationAttr(name string, seconds float64) attribute.KeyValue func ErrorAttr(err error) attribute.KeyValue func Init(ctx context.Context, mode, endpoint string) (func(context.Context) error, error) func InstanceAttr(id string) attribute.KeyValue func NodeAttr(name string) attribute.KeyValue func PeerServiceAttr(name string) attribute.KeyValue func ServerAddressAttr(addr string) attribute.KeyValue func StartClientSpan(ctx context.Context, name string, attrs …attribute.KeyValue) (context.Context, trace.Span) func StartSpan(ctx context.Context, name string, attrs …attribute.KeyValue) (context.Context, trace.Span) func StateAttr(state string) attribute.KeyValue func StatusAttr(status string) attribute.KeyValue func Tracer() trace.Tracer Variables Version of the service for trace metadata. Set at build time via -ldflags “-X github.com/afreidah/oracle-watchdog/internal/tracing.Version=…”</description></item><item><title>wandns</title><link>https://oracle-watchdog.munchbox.cc/godoc/wandns/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/wandns/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/wandns" Index Variables type HTTPDoer type Option func WithBaseURL(url string) Option func WithHTTPClient(c HTTPDoer) Option func WithLogger(l *slog.Logger) Option func WithToken(token string) Option type Updater func New(cfg config.WanDNSConfig, opts …Option) (*Updater, error) func (u *Updater) Run(ctx context.Context) Variables ErrAllProvidersFailed is returned when every configured detection provider failed to return a parseable IPv4 address on a single tick.</description></item><item><title>wgresolver</title><link>https://oracle-watchdog.munchbox.cc/godoc/wgresolver/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://oracle-watchdog.munchbox.cc/godoc/wgresolver/index.html</guid><description>import "github.com/afreidah/oracle-watchdog/internal/wgresolver" Index Variables type EndpointResolver func New(cfg config.WireguardConfig, opts …Option) (*EndpointResolver, error) func (r *EndpointResolver) Close() error func (r *EndpointResolver) Run(ctx context.Context) type Option func WithLogger(l *slog.Logger) Option func WithResolver(d Resolver) Option func WithWGClient(c WGClient) Option type Resolver type WGClient Variables ErrNoIPv4 is returned when DNS resolution returns no IPv4 addresses for the configured endpoint hostname.</description></item></channel></rss>