telemetry

package
v0.10.3 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package telemetry builds and sends telemetry data to the Liqo telemetry server. The telemetry data contains information about the cluster and the Liqo installation. The telemetry server aggregates the collected data and provides it to the Liqo maintainers. All the transmitted data is anonymous and does not contain any sensitive information. In particular the following data is sent:

  • Cluster ID
  • Liqo version
  • Kubernetes version
  • Security mode
  • Provider (e.g. GKE, EKS, AKS, ...)
  • Peering info -- RemoteClusterID -- PeeringType (OutOfBand/InBand) -- DiscoveryType (LAN/Manual/IncomingPeering) -- Latency -- Incoming (enabled, resources) -- Outgoing (enabled, resources)
  • Namespaces info -- UID -- MappingStrategy (EnforceSameName/DefaultName) -- OffloadingStrategy (Local/Remote/LocalAndRemote) -- HasClusterSelector (true/false) -- NumOffloadedPods (map of clusterID -> number of offloaded pods)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Send

func Send(ctx context.Context, endpoint string, item *Telemetry, timeout time.Duration) error

Send sends the telemetry item to the Liqo telemetry server.

Types

type Builder

type Builder struct {
	Client            client.Client
	Namespace         string
	LiqoVersion       string
	KubernetesVersion string
	ClusterLabels     map[string]string
	SecurityMode      string
}

Builder is the constructor for the Telemetry struct.

func (*Builder) ForgeTelemetryItem

func (c *Builder) ForgeTelemetryItem(ctx context.Context) (*Telemetry, error)

ForgeTelemetryItem returns a Telemetry item with the current status of the cluster.

type NamespaceInfo

type NamespaceInfo struct {
	UID                string                                          `json:"uid,omitempty"`
	MappingStrategy    offloadingv1alpha1.NamespaceMappingStrategyType `json:"mappingStrategy,omitempty"`
	OffloadingStrategy offloadingv1alpha1.PodOffloadingStrategyType    `json:"offloadingStrategy,omitempty"`
	HasClusterSelector bool                                            `json:"hasClusterSelector,omitempty"`
	NumOffloadedPods   map[string]int64                                `json:"numOffloadedPods,omitempty"`
}

NamespaceInfo contains information about an offloaded namespace.

type PeeringDetails

type PeeringDetails struct {
	Enabled   bool                `json:"enabled"`
	Resources corev1.ResourceList `json:"resources,omitempty"`
}

PeeringDetails contains information about a peering direction.

type PeeringInfo

type PeeringInfo struct {
	RemoteClusterID string                        `json:"remoteClusterID"`
	Method          discoveryv1alpha1.PeeringType `json:"method,omitempty"`
	DiscoveryType   discovery.Type                `json:"discoveryType,omitempty"`
	Latency         time.Duration                 `json:"latency,omitempty"`
	Incoming        PeeringDetails                `json:"incoming"`
	Outgoing        PeeringDetails                `json:"outgoing"`
}

PeeringInfo contains information about a peering.

type Telemetry

type Telemetry struct {
	ClusterID         string          `json:"clusterID"`
	LiqoVersion       string          `json:"liqoVersion,omitempty"`
	KubernetesVersion string          `json:"kubernetesVersion,omitempty"`
	SecurityMode      string          `json:"securityMode,omitempty"`
	Provider          string          `json:"provider,omitempty"`
	PeeringInfo       []PeeringInfo   `json:"peeringInfo,omitempty"`
	NamespacesInfo    []NamespaceInfo `json:"namespacesInfo,omitempty"`
}

Telemetry contains information about the cluster.

Jump to

Keyboard shortcuts

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