internettelemetry

package
v0.6.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2025 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Metrics names.
	MetricNameErrors    = "doublezero_monitor_internet_telemetry_errors_total"
	MetricNameSamples   = "doublezero_monitor_internet_telemetry_samples_total"
	MetricNameSuccesses = "doublezero_monitor_internet_telemetry_successes_total"
	MetricNameLosses    = "doublezero_monitor_internet_telemetry_losses_total"

	// Labels.
	MetricLabelErrorType    = "error_type"
	MetricLabelCircuit      = "circuit"
	MetricLabelDataProvider = "data_provider"

	// Error types.
	MetricErrorTypeGetCircuits       = "get_circuits"
	MetricErrorTypeGetEpochInfo      = "get_epoch_info"
	MetricErrorTypeGetLatencySamples = "get_latency_samples"
)

Variables

View Source
var (
	MetricErrors = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: MetricNameErrors,
			Help: "Number of errors encountered",
		},
		[]string{MetricLabelErrorType},
	)

	MetricSamples = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: MetricNameSamples,
			Help: "Number of samples",
		},
		[]string{MetricLabelDataProvider, MetricLabelCircuit},
	)

	MetricSuccesses = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: MetricNameSuccesses,
			Help: "Number of successes",
		},
		[]string{MetricLabelDataProvider, MetricLabelCircuit},
	)

	MetricLosses = promauto.NewCounterVec(
		prometheus.CounterOpts{
			Name: MetricNameLosses,
			Help: "Number of losses",
		},
		[]string{MetricLabelDataProvider, MetricLabelCircuit},
	)
)

Functions

This section is empty.

Types

type CircuitTelemetryStats

type CircuitTelemetryStats struct {
	SuccessCount uint32
	LossCount    uint32
}

type Config

type Config struct {
	Logger                     *slog.Logger
	LedgerRPCClient            LedgerRPCClient
	Serviceability             ServiceabilityClient
	InternetLatencyCollectorPK solana.PublicKey
	Telemetry                  TelemetryProgramClient
	Interval                   time.Duration
	MaxConcurrency             int
}

func (*Config) Validate

func (c *Config) Validate() error

type InternetTelemetryWatcher

type InternetTelemetryWatcher struct {
	// contains filtered or unexported fields
}

func NewInternetTelemetryWatcher

func NewInternetTelemetryWatcher(cfg *Config) (*InternetTelemetryWatcher, error)

func (*InternetTelemetryWatcher) Name

func (w *InternetTelemetryWatcher) Name() string

func (*InternetTelemetryWatcher) Run

func (*InternetTelemetryWatcher) Tick

type LedgerRPCClient

type LedgerRPCClient interface {
	GetEpochInfo(ctx context.Context, commitment solanarpc.CommitmentType) (*solanarpc.GetEpochInfoResult, error)
}

type ServiceabilityClient

type ServiceabilityClient interface {
	GetProgramData(context.Context) (*serviceability.ProgramData, error)
}

type TelemetryProgramClient

type TelemetryProgramClient interface {
	GetInternetLatencySamples(ctx context.Context, dataProviderName string, originExchangePK, targetExchangePK, agentPK solana.PublicKey, epoch uint64) (*telemetry.InternetLatencySamples, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL