Documentation ¶
Overview ¶
Package telemetry contains the telemetry configuration and the hash generator that is used in other telemetry related packages.
Index ¶
- func DispatchTask(q TaskQueue, consumerID string) task.Func
- func GenerateHash(_ context.Context, elems ...string) string
- func NewRedisTaskQueue(ctx context.Context, cl *ttnredis.Client, maxLen int64, group string, ...) (TaskQueue, TaskQueueCloser, error)
- func OSTelemetryData() *models.OSTelemetry
- func PopTask(q TaskQueue, consumerID string) task.Func
- type CLI
- type Config
- type EntityCountTelemetry
- type RedisTaskQueue
- func (q *RedisTaskQueue) Add(ctx context.Context, id string, startAt time.Time, replace bool) error
- func (q *RedisTaskQueue) Close(ctx context.Context) error
- func (q *RedisTaskQueue) Dispatch(ctx context.Context, consumerID string) error
- func (q *RedisTaskQueue) Init(ctx context.Context) error
- func (q *RedisTaskQueue) Pop(ctx context.Context, consumerID string) error
- func (q *RedisTaskQueue) RegisterCallback(callbackID string, callback TaskCallback)
- type TaskCallback
- type TaskQueue
- type TaskQueueCloser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DispatchTask ¶
DispatchTask returns a task that calls Dispatch with the provided consumerID.
func GenerateHash ¶
GenerateHash receives a string slice and returns a string of a UID.
func NewRedisTaskQueue ¶
func NewRedisTaskQueue( ctx context.Context, cl *ttnredis.Client, maxLen int64, group string, streamBlockLimit time.Duration, ) (TaskQueue, TaskQueueCloser, error)
NewRedisTaskQueue returns new telemetry task queue.
func OSTelemetryData ¶
func OSTelemetryData() *models.OSTelemetry
OSTelemetryData returns the OS telemetry data which is attached to telemetry messages.
Types ¶
type CLI ¶
type CLI struct { Enable bool `name:"enable" description:"Enables telemetry for CLI"` Target string `name:"target" description:"Target to which the information will be sent to"` }
CLI contains information regarding the telemetry collection for the CLI.
type Config ¶
type Config struct { Enable bool `name:"enable" description:"Enables telemetry collection"` Target string `name:"target" description:"Target to which the information will be sent to"` // nolint:lll UIDElements []string `name:"uid-elements" description:"Elements that will be used to generate the UID"` // nolint:lll NumConsumers uint64 `name:"num-consumers" description:"Number of consumers that will be used to monitor telemetry related tasks"` // nolint:lll EntityCountTelemetry EntityCountTelemetry `name:"entity-count-telemetry"` }
Config contains information regarding the telemetry collection.
type EntityCountTelemetry ¶
type EntityCountTelemetry struct { Enable bool `name:"enable" description:"Enables entity count collection"` Interval time.Duration `name:"interval" description:"Interval between each run of the collection"` }
EntityCountTelemetry contains information regarding the telemetry collection for the amount of entities.
type RedisTaskQueue ¶
type RedisTaskQueue struct {
// contains filtered or unexported fields
}
RedisTaskQueue is an implementation of telemetry.TaskQueue.
func (*RedisTaskQueue) Close ¶
func (q *RedisTaskQueue) Close(ctx context.Context) error
Close closes the TelemetryTaskQueue.
func (*RedisTaskQueue) Dispatch ¶
func (q *RedisTaskQueue) Dispatch(ctx context.Context, consumerID string) error
Dispatch the tasks in the queue.
func (*RedisTaskQueue) Init ¶
func (q *RedisTaskQueue) Init(ctx context.Context) error
Init initializes the TelemetryTaskQueue.
func (*RedisTaskQueue) Pop ¶
func (q *RedisTaskQueue) Pop(ctx context.Context, consumerID string) error
Pop pops the most recent task in the schedule, for which timestamp is in range [0, time.Now()], the value of the queue goes through the registered callback and determines which one should be called.
func (*RedisTaskQueue) RegisterCallback ¶
func (q *RedisTaskQueue) RegisterCallback(callbackID string, callback TaskCallback)
RegisterCallback registers a callback that is called when a task is popped. All callbacks should be registered before the dispatch of the tasks in the queue, otherwise they are proned to fail within the first pop call.
type TaskCallback ¶
TaskCallback is a callback that is called when a telemetry task is popped.
func CallbackWithInterval ¶
func CallbackWithInterval(_ context.Context, interval time.Duration, callback task.Func) TaskCallback
CallbackWithInterval is a wrapper that takes a task.Func and a time.Duration and returns a TaskCallback.
type TaskQueue ¶
type TaskQueue interface { // Add telemetry task identified by `id` at time t. // Implementations must ensure that Add returns fast. Add(ctx context.Context, id string, t time.Time, replace bool) error // RegisterCallback registers a callback that is called when a task is popped. // All callbacks should be registered before the dispatch of the tasks in the queue, otherwise they are proned to // fail within the first pop call. RegisterCallback(callbackID string, callback TaskCallback) // Dispatch the tasks in the queue. Dispatch(ctx context.Context, consumerID string) error // Pop pops the most recent task in the schedule, for which timestamp is in range [0, time.Now()], the value of // the queue goes through the registered callback and determines which one should be called. Pop(ctx context.Context, consumerID string) error }
TaskQueue represents a queue of telemetry tasks.
type TaskQueueCloser ¶
TaskQueueCloser is a function that closes the task queue.
Directories ¶
Path | Synopsis |
---|---|
Package cli contains telemetry functions regarding the collection of data in the CLI.
|
Package cli contains telemetry functions regarding the collection of data in the CLI. |
Package istelemetry contains telemetry functions regarding the collection of data in the IdentityServer.
|
Package istelemetry contains telemetry functions regarding the collection of data in the IdentityServer. |
Package models contains telemetry models.
|
Package models contains telemetry models. |