telemetry

package
v1.0.17 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2019 License: MIT Imports: 21 Imported by: 6

Documentation

Index

Constants

View Source
const (
	// NPMTelemetryFile Path.
	NPMTelemetryFile = platform.NPMRuntimePath + "AzureNPMTelemetry.json"
	// CNITelemetryFile Path.
	CNITelemetryFile = platform.CNIRuntimePath + "AzureCNITelemetry.json"

	ContentType = "application/json"
)
View Source
const (
	MB = 1048576
	KB = 1024
)
View Source
const (
	FdName          = "azure-telemetry"
	Delimiter       = '\n'
	HostNetAgentURL = "http://169.254.169.254/machine/plugins?comp=netagent&type=payload"
	DefaultInterval = 1 * time.Minute
)

FdName - file descriptor name Delimiter - delimiter for socket reads/writes HostNetAgentURL - host net agent url of type payload DefaultDncReportsSize - default DNC report slice size DefaultCniReportsSize - default CNI report slice size DefaultNpmReportsSize - default NPM report slice size DefaultInterval - default interval for sending payload to host

View Source
const (
	// CNSTelemetryFile - telemetry file path.
	CNSTelemetryFile = platform.CNSRuntimePath + "AzureCNSTelemetry.json"
)

Variables

This section is empty.

Functions

func ReadFileByLines added in v1.0.0

func ReadFileByLines(filename string) ([]string, error)

ReadFileByLines reads file line by line and return array of lines.

func SendCnsTelemetry added in v1.0.16

func SendCnsTelemetry(interval int, reports chan interface{}, service *restserver.HTTPRestService, telemetryStopProcessing chan bool)

SendCnsTelemetry - handles cns telemetry reports

Types

type BridgeInfo

type BridgeInfo struct {
	NetworkMode  string
	BridgeName   string
	ErrorMessage string
}

CNI Bridge Details structure.

type CNIReport

type CNIReport struct {
	IsNewInstance       bool
	CniSucceeded        bool
	Name                string
	OSVersion           string
	ErrorMessage        string
	Context             string
	SubContext          string
	VnetAddressSpace    []string
	OrchestratorDetails *OrchestratorInfo
	OSDetails           *OSInfo
	SystemDetails       *SystemInfo
	InterfaceDetails    *InterfaceInfo
	BridgeDetails       *BridgeInfo
	Metadata            Metadata `json:"compute"`
}

Azure CNI Telemetry Report structure.

func (*CNIReport) GetInterfaceDetails added in v1.0.9

func (report *CNIReport) GetInterfaceDetails(queryUrl string)

GetInterfaceDetails creates a report with interface details(ip, mac, name, secondaryca count).

func (*CNIReport) GetOSDetails

func (report *CNIReport) GetOSDetails()

This function creates a report with os details(ostype, version).

func (*CNIReport) GetOrchestratorDetails added in v1.0.9

func (report *CNIReport) GetOrchestratorDetails()

GetOrchestratorDetails creates a report with orchestrator details(name, version).

func (*CNIReport) GetReport

func (report *CNIReport) GetReport(name string, version string, ipamQueryURL string)

GetReport retrieves orchestrator, system, OS and Interface details and create a report structure.

func (*CNIReport) GetSystemDetails

func (report *CNIReport) GetSystemDetails()

This function creates a report with system details(memory, disk, cpu).

type CNSReport added in v1.0.16

type CNSReport struct {
	IsNewInstance   bool
	CPUUsage        string
	MemoryUsage     string
	Processes       string
	EventMessage    string
	DncPartitionKey string
	Timestamp       string
	UUID            string
	Errorcode       string
	Metadata        Metadata `json:"compute"`
}

Azure CNS Telemetry Report structure.

type ClusterState added in v1.0.9

type ClusterState struct {
	PodCount      int
	NsCount       int
	NwPolicyCount int
}

ClusterState contains the current kubernetes cluster state.

type DNCReport added in v1.0.15

type DNCReport struct {
	IsNewInstance bool
	CPUUsage      string
	MemoryUsage   string
	Processes     string
	EventMessage  string
	PartitionKey  string
	Allocations   string
	Timestamp     string
	UUID          string
	Errorcode     string
	Metadata      Metadata `json:"compute"`
}

DNCReport structure.

type DiskInfo

type DiskInfo struct {
	DiskTotal uint64
	DiskFree  uint64
}

Disk Info structure.

type InterfaceInfo

type InterfaceInfo struct {
	InterfaceType         string
	Subnet                string
	PrimaryCA             string
	MAC                   string
	Name                  string
	SecondaryCATotalCount int
	SecondaryCAUsedCount  int
	ErrorMessage          string
}

Interface Details structure.

type MemInfo

type MemInfo struct {
	MemTotal uint64
	MemFree  uint64
}

Memory Info structure.

type Metadata added in v1.0.12

type Metadata struct {
	Location             string `json:"location"`
	VMName               string `json:"name"`
	Offer                string `json:"offer"`
	OsType               string `json:"osType"`
	PlacementGroupID     string `json:"placementGroupId"`
	PlatformFaultDomain  string `json:"platformFaultDomain"`
	PlatformUpdateDomain string `json:"platformUpdateDomain"`
	Publisher            string `json:"publisher"`
	ResourceGroupName    string `json:"resourceGroupName"`
	Sku                  string `json:"sku"`
	SubscriptionID       string `json:"subscriptionId"`
	Tags                 string `json:"tags"`
	OSVersion            string `json:"version"`
	VMID                 string `json:"vmId"`
	VMSize               string `json:"vmSize"`
	KernelVersion        string
}

Metadata retrieved from wireserver

type NPMReport added in v1.0.9

type NPMReport struct {
	IsNewInstance     bool
	ClusterID         string
	NodeName          string
	InstanceName      string
	NpmVersion        string
	KubernetesVersion string
	ErrorMessage      string
	EventMessage      string
	UpTime            string
	ClusterState      ClusterState
	Metadata          Metadata `json:"compute"`
}

NPMReport structure.

func (*NPMReport) GetReport added in v1.0.12

func (report *NPMReport) GetReport(clusterID, nodeName, npmVersion, kubernetesVersion string, clusterState ClusterState)

GetReport retrives npm and kubernetes cluster related info and create a report structure.

type OSInfo

type OSInfo struct {
	OSType         string
	OSVersion      string
	KernelVersion  string
	OSDistribution string
	ErrorMessage   string
}

OS Details structure.

type OrchestratorInfo added in v1.0.1

type OrchestratorInfo struct {
	OrchestratorName    string
	OrchestratorVersion string
	ErrorMessage        string
}

Orchestrator Details structure.

type Payload added in v1.0.15

type Payload struct {
	DNCReports []DNCReport
	CNIReports []CNIReport
	NPMReports []NPMReport
	CNSReports []CNSReport
}

Payload object holds the different types of reports

type ReportManager

type ReportManager struct {
	HostNetAgentURL string
	ContentType     string
	Report          interface{}
}

ReportManager structure.

func (*ReportManager) GetHostMetadata added in v1.0.12

func (reportMgr *ReportManager) GetHostMetadata() error

GetHostMetadata - retrieve metadata from host

func (*ReportManager) GetKernelVersion added in v1.0.12

func (reportMgr *ReportManager) GetKernelVersion()

Get kernel version

func (*ReportManager) GetReportState added in v1.0.12

func (reportMgr *ReportManager) GetReportState(telemetryFile string) bool

GetReportState will check if report is sent at least once by checking telemetry file.

func (*ReportManager) ReportToBytes

func (reportMgr *ReportManager) ReportToBytes() (report []byte, err error)

ReportToBytes - returns the report bytes

func (*ReportManager) SendReport

func (reportMgr *ReportManager) SendReport() error

SendReport will send telemetry report to HostNetAgent.

func (*ReportManager) SetReportState added in v1.0.12

func (reportMgr *ReportManager) SetReportState(telemetryFile string) error

SetReportState will save the state in file if telemetry report sent successfully.

type SystemInfo

type SystemInfo struct {
	MemVMTotal       uint64
	MemVMFree        uint64
	MemUsedByProcess uint64
	DiskVMTotal      uint64
	DiskVMFree       uint64
	CPUCount         int
	ErrorMessage     string
}

System Details structure.

type TelemetryBuffer

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

TelemetryBuffer object

func NewTelemetryBuffer

func NewTelemetryBuffer() (*TelemetryBuffer, error)

NewTelemetryBuffer - create a new TelemetryBuffer

func (*TelemetryBuffer) Cancel

func (tb *TelemetryBuffer) Cancel()

Cancel - signal to tear down telemetry buffer

func (*TelemetryBuffer) Dial

func (tb *TelemetryBuffer) Dial(name string) (err error)

Dial - try to connect to/create a socket with 'name'

func (*TelemetryBuffer) Listen

func (tb *TelemetryBuffer) Listen(name string) (err error)

Listen - try to create and listen on socket with 'name'

func (*TelemetryBuffer) Start added in v1.0.15

func (tb *TelemetryBuffer) Start(intervalms time.Duration)

Start - start running an instance if it isn't already being run elsewhere

func (*TelemetryBuffer) Write

func (tb *TelemetryBuffer) Write(b []byte) (c int, err error)

Write - write to the file descriptor

Jump to

Keyboard shortcuts

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