Documentation
¶
Overview ¶
Package utils generate host metadata payloads ready to be sent.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetPlatformName ¶
func GetPlatformName() string
GetPlatformName returns the name of the current platform
Types ¶
type CommonPayload ¶
type CommonPayload struct {
APIKey string `json:"apiKey"`
AgentVersion string `json:"agentVersion"`
UUID string `json:"uuid"`
InternalHostname string `json:"internalHostname"`
}
CommonPayload handles the JSON unmarshalling of the metadata payload
func GetCommonPayload ¶
func GetCommonPayload(hostname string, conf model.Reader) *CommonPayload
GetCommonPayload fills and return the common metadata payload
type InstallMethod ¶
type InstallMethod struct {
Tool *string `json:"tool"`
ToolVersion string `json:"tool_version"`
InstallerVersion *string `json:"installer_version"`
}
InstallMethod is metadata about the agent's installation
type LogsMeta ¶
type LogsMeta struct {
Transport string `json:"transport"`
AutoMultilineEnabled bool `json:"auto_multi_line_detection_enabled"`
}
LogsMeta is metadata about the host's logs agent
type Meta ¶
type Meta struct {
SocketHostname string `json:"socket-hostname"`
Timezones []string `json:"timezones"`
SocketFqdn string `json:"socket-fqdn"`
EC2Hostname string `json:"ec2-hostname"`
Hostname string `json:"hostname"`
HostAliases []string `json:"host_aliases"`
InstanceID string `json:"instance-id"`
AgentHostname string `json:"agent-hostname,omitempty"`
ClusterName string `json:"cluster-name,omitempty"`
LegacyResolutionHostname string `json:"legacy-resolution-hostname,omitempty"`
HostnameResolutionVersion int `json:"hostname-resolution-version,omitempty"`
CanonicalCloudResourceID string `json:"ccrid,omitempty"`
}
Meta is the metadata nested under the meta key
func GetMetaFromCache ¶
func GetMetaFromCache(ctx context.Context, conf model.Reader, hostname hostnameinterface.Component) *Meta
GetMetaFromCache returns the metadata information about the host from the cache and returns it, if the cache is empty, then it queries the information directly
type NetworkMeta ¶
type NetworkMeta struct {
ID string `json:"network-id"`
PublicIPv4 string `json:"public-ipv4,omitempty"`
}
NetworkMeta is metadata about the host's network
type OtlpMeta ¶
type OtlpMeta struct {
Enabled bool `json:"enabled"`
}
OtlpMeta is metadata about the otlp pipeline
type Payload ¶
type Payload struct {
Os string `json:"os"`
AgentFlavor string `json:"agent-flavor"`
PythonVersion string `json:"python"`
SystemStats *systemStats `json:"systemStats"`
Meta *Meta `json:"meta"`
HostTags *hosttags.Tags `json:"host-tags"`
ContainerMeta map[string]string `json:"container-meta,omitempty"`
NetworkMeta *NetworkMeta `json:"network"`
LogsMeta *LogsMeta `json:"logs"`
InstallMethod *InstallMethod `json:"install-method"`
ProxyMeta *ProxyMeta `json:"proxy-info"`
OtlpMeta *OtlpMeta `json:"otlp"`
FipsMode bool `json:"fips_mode"`
}
Payload handles the JSON unmarshalling of the metadata payload
func GetFromCache ¶
func GetFromCache(ctx context.Context, conf model.Reader, hostname hostnameinterface.Component) *Payload
GetFromCache returns the payload from the cache if it exists, otherwise it creates it. The metadata reporting should always grab it fresh. Any other uses, e.g. status, should use this
func GetPayload ¶
func GetPayload(ctx context.Context, conf model.Reader, hostname hostnameinterface.Component) *Payload
GetPayload builds a metadata payload every time is called. Some data is collected only once, some is cached, some is collected at every call.