Documentation ¶
Index ¶
- Constants
- func CopyDir(src, dst string) error
- func CopyFile(src, dst string) error
- func CopyFileAll(src, dst string) error
- func DetectCloudProvider()
- func EnsureParentDirsExist(p string) error
- func Fqdn(hostname string) string
- func GetAgentNetworkMode() (string, error)
- func GetAgentUTSMode() (containers.UTSMode, error)
- func GetCloudProviderNTPHosts() []string
- func GetFileModTime(path string) (time.Time, error)
- func GetFileSize(path string) (int64, error)
- func GetGoRoutinesDump() (string, error)
- func GetHostname() (string, error)
- func GetJSONSerializableMap(m interface{}) interface{}
- func GetNetworkID() (string, error)
- func HTTPHeaders() map[string]string
- func InsertionSort(elements []string)
- func LogVersionHistory()
- func SetupCoreDump() error
- func SortUniqInPlace(elements []string) []string
- func Wait(d time.Duration)
- type BiMap
- func (b *BiMap) AddKV(k, v interface{}) error
- func (b *BiMap) GetKV(key interface{}) (interface{}, error)
- func (b *BiMap) GetKVBimap(key interface{}) (interface{}, error)
- func (b *BiMap) GetKVReverse(key interface{}) (interface{}, error)
- func (b *BiMap) Keys() []interface{}
- func (b *BiMap) Values() []interface{}
- type HostnameData
- type NamedPipe
- type Stat
- type Stats
- type StatsTracker
- type TagsBuilder
- type UnixNamedPipe
Constants ¶
const HostnameProviderConfiguration = "configuration"
HostnameProviderConfiguration is the key for the hostname provider associated to datadog.yaml
const InsertionSortThreshold = 40
InsertionSortThreshold is the slice size after which we should consider using the stdlib sort method instead of the InsertionSort implemented below.
Variables ¶
This section is empty.
Functions ¶
func CopyFileAll ¶
CopyFileAll calls CopyFile, but will create necessary directories for `dst`.
func DetectCloudProvider ¶
func DetectCloudProvider()
DetectCloudProvider detects the cloud provider where the agent is running in order: * AWS ECS/Fargate * AWS EC2 * GCE * Azure * Alibaba * Tencent
func EnsureParentDirsExist ¶
EnsureParentDirsExist makes a path immediately available for writing by creating the necessary parent directories.
func GetAgentNetworkMode ¶
GetAgentNetworkMode retrieves from Docker the network mode of the Agent container
func GetAgentUTSMode ¶
func GetAgentUTSMode() (containers.UTSMode, error)
GetAgentUTSMode retrieves from Docker the UTS mode of the Agent container
func GetCloudProviderNTPHosts ¶ added in v0.9.0
func GetCloudProviderNTPHosts() []string
GetCloudProviderNTPHosts detects the cloud provider where the agent is running in order and returns its NTP host name.
func GetFileModTime ¶ added in v0.9.0
GetFileModTime gets the modification time
func GetFileSize ¶ added in v0.9.0
GetFileSize gets the file size
func GetGoRoutinesDump ¶
GetGoRoutinesDump returns the stack trace of every Go routine of a running Agent.
func GetHostname ¶
GetHostname retrieves the host name from GetHostnameData
func GetJSONSerializableMap ¶
func GetJSONSerializableMap(m interface{}) interface{}
GetJSONSerializableMap returns a JSON serializable map from a raw map
func GetNetworkID ¶
GetNetworkID retrieves the network_id which can be used to improve network connection resolution. This can be configured or detected. The following sources will be queried: * configuration * GCE * EC2
func HTTPHeaders ¶
HTTPHeaders returns a http headers including various basic information (User-Agent, Content-Type...).
func InsertionSort ¶
func InsertionSort(elements []string)
InsertionSort sorts in-place the given elements, not doing any allocation. It is very efficient for on slices but if memory allocation is not an issue, consider using the stdlib `sort.Sort` method on slices having a size > InsertionSortThreshold. See `pkg/util/sort_benchmarks_note.md` for more details.
func LogVersionHistory ¶
func LogVersionHistory()
LogVersionHistory loads version history file, append new entry if agent version is different than the last entry in the JSON file, trim the file if too many entries then save the file.
func SetupCoreDump ¶ added in v0.9.0
func SetupCoreDump() error
SetupCoreDump enables core dumps and sets the core dump size limit based on configuration
func SortUniqInPlace ¶
SortUniqInPlace sorts and remove duplicates from elements in place The returned slice is a subslice of elements
Types ¶
type BiMap ¶
type BiMap struct {
// contains filtered or unexported fields
}
BiMap provides a bidirectional map of keys and values.
func (*BiMap) GetKVBimap ¶
GetKVBimap looks for the provided key both for keys and values in the map.
The first occurrence will be returned.
func (*BiMap) GetKVReverse ¶
GetKVReverse gets key provided the value.
type HostnameData ¶
HostnameData contains hostname and the hostname provider
func GetHostnameData ¶
func GetHostnameData() (HostnameData, error)
GetHostnameData retrieves the host name for the Agent and hostname provider, trying to query these environments/api, in order: * GCE * Docker * kubernetes * os * EC2
type NamedPipe ¶
type NamedPipe interface { Open() error Ready() bool Read(b []byte) (int, error) Write(b []byte) (int, error) Close() error }
NamedPipe interface to NamedPipes (multi-platform)
type Stats ¶
type Stats struct { Aggregated chan Stat // contains filtered or unexported fields }
Stats type structure enabling statting facilities.
type StatsTracker ¶ added in v0.9.0
type StatsTracker struct {
// contains filtered or unexported fields
}
StatsTracker Keeps track of simple stats over its lifetime and a configurable time range. StatsTracker is designed to be memory efficient by aggregating data into buckets. For example a time frame of 24 hours with a bucketFrame of 1 hour will ensure that only 24 points are ever kept in memory. New data is considered in the stats immediately while old data is removed by dropping expired aggregated buckets.
func NewStatsTracker ¶ added in v0.9.0
func NewStatsTracker(timeFrame time.Duration, bucketSize time.Duration) *StatsTracker
NewStatsTracker Creates a new StatsTracker instance
func NewStatsTrackerWithTimeProvider ¶ added in v0.9.0
func NewStatsTrackerWithTimeProvider(timeFrame time.Duration, bucketSize time.Duration, timeProvider timeProvider) *StatsTracker
NewStatsTrackerWithTimeProvider Creates a new StatsTracker instance with a time provider closure (mostly for testing)
func (*StatsTracker) Add ¶ added in v0.9.0
func (s *StatsTracker) Add(value int64)
Add Records a new value to the stats tracker
func (*StatsTracker) AllTimeAvg ¶ added in v0.9.0
func (s *StatsTracker) AllTimeAvg() int64
AllTimeAvg Gets the all time average of values seen so far
func (*StatsTracker) AllTimePeak ¶ added in v0.9.0
func (s *StatsTracker) AllTimePeak() int64
AllTimePeak Gets the largest value seen so far
func (*StatsTracker) MovingAvg ¶ added in v0.9.0
func (s *StatsTracker) MovingAvg() int64
MovingAvg Gets the moving average of values within the time frame
func (*StatsTracker) MovingPeak ¶ added in v0.9.0
func (s *StatsTracker) MovingPeak() int64
MovingPeak Gets the largest value seen within the time frame
type TagsBuilder ¶
type TagsBuilder struct {
// contains filtered or unexported fields
}
TagsBuilder allows to build a slice of tags to generate the context while reusing the same internal slice.
func NewTagsBuilder ¶
func NewTagsBuilder() *TagsBuilder
NewTagsBuilder returns a new empty TagsBuilder.
func NewTagsBuilderFromSlice ¶
func NewTagsBuilderFromSlice(tags []string) *TagsBuilder
NewTagsBuilderFromSlice return a new TagsBuilder with the input slice for it's internal buffer.
func (*TagsBuilder) Append ¶
func (tb *TagsBuilder) Append(tags ...string)
Append appends tags to the builder
func (*TagsBuilder) Copy ¶
func (tb *TagsBuilder) Copy() []string
Copy makes a copy of the internal slice
func (*TagsBuilder) Reset ¶
func (tb *TagsBuilder) Reset()
Reset resets the size of the builder to 0 without discaring the internal buffer
func (*TagsBuilder) SortUniq ¶
func (tb *TagsBuilder) SortUniq()
SortUniq sorts and remove duplicate in place
type UnixNamedPipe ¶
type UnixNamedPipe struct {
// contains filtered or unexported fields
}
UnixNamedPipe unix abstraction to named pipes
func NewUnixNamedPipe ¶
func NewUnixNamedPipe(path string) (*UnixNamedPipe, error)
NewUnixNamedPipe UnixNamedPipe constructor
func (*UnixNamedPipe) Open ¶
func (p *UnixNamedPipe) Open() error
Open opens named pipe - will create it if doesn't exist
func (*UnixNamedPipe) Ready ¶
func (p *UnixNamedPipe) Ready() bool
Ready is the pipe ready to read/write?
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
buf
module
|
|
cgroups
module
|
|
providers/windows
Package windows We need a file in this package as it's referenced by a file built on windows
|
Package windows We need a file in this package as it's referenced by a file built on windows |
image
Module
|
|
defaultpaths
module
|
|
Package ecs provides metadata collection when the Agent runs on the ECS platform
|
Package ecs provides metadata collection when the Agent runs on the ECS platform |
metadata
Package metadata provides clients for Metadata APIs exposed by the ECS agent.
|
Package metadata provides clients for Metadata APIs exposed by the ECS agent. |
Package executable provides information on the executable that started the process
|
Package executable provides information on the executable that started the process |
fxutil
module
|
|
go_routines
module
|
|
validate
Package validate provides hostname validation helpers
|
Package validate provides hostname validation helpers |
log
module
|
|
setup
Module
|
|
option
module
|
|
optional
module
|
|
pointer
module
|
|
scrubber
module
|
|
sort
module
|
|
startstop
module
|
|
stats_tracker
module
|
|
statstracker
module
|
|
socket
Module
|
|
tagger
module
|
|
utilizationtracker
module
|
|
uuid
module
|
|
winutil
module
|
|