Documentation ¶
Index ¶
- Constants
- func ReadFileByLines(filename string) ([]string, error)
- func SendCnsTelemetry(interval int, reports chan interface{}, service *restserver.HTTPRestService, ...)
- type BridgeInfo
- type CNIReport
- type CNSReport
- type ClusterState
- type DNCReport
- type DiskInfo
- type InterfaceInfo
- type MemInfo
- type Metadata
- type NPMReport
- type OSInfo
- type OrchestratorInfo
- type Payload
- type ReportManager
- func (reportMgr *ReportManager) GetHostMetadata() error
- func (reportMgr *ReportManager) GetKernelVersion()
- func (reportMgr *ReportManager) GetReportState(telemetryFile string) bool
- func (reportMgr *ReportManager) ReportToBytes() (report []byte, err error)
- func (reportMgr *ReportManager) SendReport() error
- func (reportMgr *ReportManager) SetReportState(telemetryFile string) error
- type SystemInfo
- type TelemetryBuffer
Constants ¶
const ( // NPMTelemetryFile Path. NPMTelemetryFile = platform.NPMRuntimePath + "AzureNPMTelemetry.json" // CNITelemetryFile Path. CNITelemetryFile = platform.CNIRuntimePath + "AzureCNITelemetry.json" ContentType = "application/json" )
const ( MB = 1048576 KB = 1024 )
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
const ( // CNSTelemetryFile - telemetry file path. CNSTelemetryFile = platform.CNSRuntimePath + "AzureCNSTelemetry.json" )
Variables ¶
This section is empty.
Functions ¶
func ReadFileByLines ¶ added in v1.0.0
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 ¶
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
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 ¶
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
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 InterfaceInfo ¶
type InterfaceInfo struct { InterfaceType string Subnet string PrimaryCA string MAC string Name string SecondaryCATotalCount int SecondaryCAUsedCount int ErrorMessage string }
Interface Details 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 ¶
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