Documentation
¶
Index ¶
- Constants
- Variables
- func Disable(dataDir string) error
- func Enable(dataDir string) error
- func GenerateBadge(repoURL string) (string, error)
- func GetStatus(dataDir string) (bool, error)
- func RecordCommand(dataDir string, command string) error
- func RecordError(dataDir string, errorType string) error
- func RecordFeatureUsage(dataDir string, feature string) error
- func SendTelemetryData(dataDir string, data *TelemetryData) error
- type Reporter
- type TelemetryCollector
- func (tc *TelemetryCollector) Flush() error
- func (tc *TelemetryCollector) GetEvents(eventType string, limit int) ([]map[string]interface{}, error)
- func (tc *TelemetryCollector) GetStats() (map[string]int, error)
- func (tc *TelemetryCollector) RecordEvent(eventType string, data map[string]interface{})
- func (tc *TelemetryCollector) Stop() error
- type TelemetryConfig
- type TelemetryData
Constants ¶
const ( // DefaultReportInterval is the default interval for sending telemetry reports DefaultReportInterval = 24 * time.Hour // MinReportInterval is the minimum allowed interval for sending telemetry reports MinReportInterval = 1 * time.Hour )
const ( // TelemetryConfigFile is the name of the telemetry configuration file TelemetryConfigFile = "telemetry.json" // DefaultTelemetryEnabled is the default telemetry setting DefaultTelemetryEnabled = true )
Variables ¶
var TelemetryFilePath = "${HOME}/.nessi/telemetry/data.json"
Default telemetry file path
Functions ¶
func GenerateBadge ¶
GenerateBadge generates a GitHub usage badge for the repository
func RecordCommand ¶
RecordCommand records a command execution for telemetry
func RecordError ¶
RecordError records an error for telemetry
func RecordFeatureUsage ¶
RecordFeatureUsage records feature usage for telemetry
func SendTelemetryData ¶
func SendTelemetryData(dataDir string, data *TelemetryData) error
SendTelemetryData writes telemetry data to a file
Types ¶
type Reporter ¶
type Reporter struct {
// contains filtered or unexported fields
}
Reporter is responsible for collecting and sending telemetry data
func NewReporter ¶
NewReporter creates a new telemetry reporter
type TelemetryCollector ¶
type TelemetryCollector struct {
// contains filtered or unexported fields
}
TelemetryCollector collects telemetry data for CLI commands
func NewTelemetryCollector ¶
func NewTelemetryCollector(dataDir string) *TelemetryCollector
NewTelemetryCollector creates a new TelemetryCollector
func (*TelemetryCollector) Flush ¶
func (tc *TelemetryCollector) Flush() error
Flush writes telemetry data to disk
func (*TelemetryCollector) GetEvents ¶
func (tc *TelemetryCollector) GetEvents(eventType string, limit int) ([]map[string]interface{}, error)
GetEvents returns the events of a specific type
func (*TelemetryCollector) GetStats ¶
func (tc *TelemetryCollector) GetStats() (map[string]int, error)
GetStats returns the current telemetry stats
func (*TelemetryCollector) RecordEvent ¶
func (tc *TelemetryCollector) RecordEvent(eventType string, data map[string]interface{})
RecordEvent records a telemetry event
func (*TelemetryCollector) Stop ¶
func (tc *TelemetryCollector) Stop() error
Stop stops the telemetry collector
type TelemetryConfig ¶
type TelemetryConfig struct {
Enabled bool `json:"enabled"`
InstallID string `json:"install_id"`
FirstRun time.Time `json:"first_run"`
LastRun time.Time `json:"last_run"`
LastSubmitted time.Time `json:"last_submitted"`
Version string `json:"version"`
}
TelemetryConfig represents the telemetry configuration
type TelemetryData ¶
type TelemetryData struct {
InstallID string `json:"install_id"`
Timestamp time.Time `json:"timestamp"`
Version string `json:"version"`
OS string `json:"os"`
Arch string `json:"arch"`
CPUCores int `json:"cpu_cores"`
MemoryTotal uint64 `json:"memory_total"`
Uptime uint64 `json:"uptime"`
CommandStats map[string]int `json:"command_stats"`
FeatureUsage map[string]int `json:"feature_usage"`
ErrorCounts map[string]int `json:"error_counts"`
CustomMetrics map[string]interface{} `json:"custom_metrics"`
}
TelemetryData represents the telemetry data sent to the server