activity

package
v0.5.5 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultPrefix        = "nodeact:v1"
	DefaultRetentionDays = 7
	BucketSeconds        = 3600
	BucketsPerDay        = 24
	EventTypeCount       = 6
)

Default rollup settings and bucket layout.

Variables

This section is empty.

Functions

func DayKey

func DayKey(prefix, envUUID, nodeUUID string, day time.Time) string

DayKey returns the Redis key for one node's UTC activity day blob.

func EnvDayKey

func EnvDayKey(prefix, envUUID string, day time.Time) string

EnvDayKey returns the Redis key for one environment's UTC activity day blob.

Types

type EnvSeries

type EnvSeries = NodeTileSeries

EnvSeries is a dense activity series ready for environment-level graphs.

type Event

type Event struct {
	EnvUUID  string
	NodeUUID string
	Type     EventType
	At       time.Time
	Count    uint16
}

Event is one activity increment for a node at a specific point in time.

type EventType

type EventType uint8

EventType identifies the activity counter family stored in a bucket.

const (
	EventEnroll EventType = iota
	EventConfig
	EventStatus
	EventResult
	EventQueryRead
	EventQueryWrite
)

Supported activity event types.

type NodeTileSeries

type NodeTileSeries struct {
	Start         time.Time `json:"start"`
	BucketSeconds int       `json:"bucket_seconds"`
	Enroll        []uint16  `json:"enroll"`
	Config        []uint16  `json:"config"`
	Status        []uint16  `json:"status"`
	Result        []uint16  `json:"result"`
	QueryRead     []uint16  `json:"query_read"`
	QueryWrite    []uint16  `json:"query_write"`
	Total         []uint16  `json:"total"`
}

NodeTileSeries is a dense activity series ready for node tile rendering.

type RedisStore

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

RedisStore manages node activity rollups stored as compact Redis day blobs.

func NewRedisStore

func NewRedisStore(client *redis.Client, prefix string, retentionDays int, expireAfter time.Duration) *RedisStore

NewRedisStore builds a Redis-backed rollup store for per-node activity tiles.

func (*RedisStore) IncrementMany

func (s *RedisStore) IncrementMany(ctx context.Context, events []Event) error

IncrementMany batches activity events into hourly counters per UTC day.

func (*RedisStore) ReadEnvSeries

func (s *RedisStore) ReadEnvSeries(ctx context.Context, envUUID string, end time.Time, days int) (EnvSeries, error)

ReadEnvSeries returns a dense environment activity series for the requested day window.

func (*RedisStore) ReadSeries

func (s *RedisStore) ReadSeries(ctx context.Context, envUUID string, nodeUUIDs []string, end time.Time, days int) (map[string]NodeTileSeries, error)

ReadSeries returns dense node activity series for the requested day window.

Jump to

Keyboard shortcuts

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