-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
payload.go
83 lines (73 loc) · 2.87 KB
/
payload.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Unless explicitly stated otherwise all files in this repository are licensed
// under the Apache License Version 2.0.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2016-present Datadog, Inc.
package host
type systemStats struct {
CPUCores int32 `json:"cpuCores"`
Machine string `json:"machine"`
Platform string `json:"platform"`
Pythonv string `json:"pythonV"`
Processor string `json:"processor"`
Macver osVersion `json:"macV"`
Nixver osVersion `json:"nixV"`
Fbsdver osVersion `json:"fbsdV"`
Winver osVersion `json:"winV"`
}
// Meta is the metadata nested under the meta key
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"`
}
// NetworkMeta is metadata about the host's network
type NetworkMeta struct {
ID string `json:"network-id"`
PublicIPv4 string `json:"public-ipv4,omitempty"`
}
// LogsMeta is metadata about the host's logs agent
type LogsMeta struct {
Transport string `json:"transport"`
AutoMultilineEnabled bool `json:"auto_multi_line_detection_enabled"`
}
// Tags contains the detected host tags
type Tags struct {
System []string `json:"system"`
GoogleCloudPlatform []string `json:"google cloud platform,omitempty"`
}
// InstallMethod is metadata about the agent's installation
type InstallMethod struct {
Tool *string `json:"tool"`
ToolVersion string `json:"tool_version"`
InstallerVersion *string `json:"installer_version"`
}
// ProxyMeta is metatdata about the proxy configuration
type ProxyMeta struct {
NoProxyNonexactMatch bool `json:"no-proxy-nonexact-match"`
ProxyBehaviorChanged bool `json:"proxy-behavior-changed"`
}
// OtlpMeta is metadata about the otlp pipeline
type OtlpMeta struct {
Enabled bool `json:"enabled"`
}
// Payload handles the JSON unmarshalling of the metadata 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 *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"`
}