Documentation ¶
Index ¶
- Constants
- func CopyDir(src, dst string) error
- func CopyFile(src, dst string) error
- func CopyFileAll(src, dst string) error
- func DetectCloudProvider(ctx context.Context)
- func EnsureParentDirsExist(p string) error
- func Fqdn(hostname string) string
- func GetAgentNetworkMode(context.Context) (string, error)
- func GetAgentUTSMode(context.Context) (containers.UTSMode, error)
- func GetCloudProviderNTPHosts(ctx context.Context) []string
- func GetFileModTime(path string) (time.Time, error)
- func GetFileSize(path string) (int64, error)
- func GetGoRoutinesDump() (string, error)
- func GetHostname(ctx context.Context) (string, error)
- func GetJSONSerializableMap(m interface{}) interface{}
- func GetNetworkID(ctx context.Context) (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 PollingFunc
- type SlidingWindow
- type Stat
- type Stats
- type StatsTracker
- type StatsUpdateFunc
- type WinNamedPipe
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 ¶
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(context.Context) (containers.UTSMode, error)
GetAgentUTSMode retrieves from Docker the UTS mode of the Agent container
func GetCloudProviderNTPHosts ¶ added in v0.9.0
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(ctx context.Context) (HostnameData, error)
GetHostnameData retrieves the host name for the Agent and hostname provider, trying to query these environments/api, in order: * Config (`hostname') * Config (`hostname_file') * 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 PollingFunc ¶ added in v0.9.0
type PollingFunc func() (value float64)
PollingFunc is polled at specified intervals to collect the value that should be included in the slidingWindow data
type SlidingWindow ¶ added in v0.9.0
type SlidingWindow interface { // Start validates the parameters of a SlidingWindow object and starts the // ticker. Start can only be invoked once on an instance. Start(PollingFunc, StatsUpdateFunc) error // Stop stops the polling and processing of the data. Stop() // Average returns an average of all the polled values collected so far over // the sliding window range. Average() float64 // WindowSize returns the amount of time that the SlidingWindow will keep // the polled values before evicting them. WindowSize() time.Duration }
SlidingWindow is the public API that we expose from the slidingWindow object
func NewSlidingWindow ¶ added in v0.9.0
func NewSlidingWindow(windowSize time.Duration, pollingInterval time.Duration) (SlidingWindow, error)
NewSlidingWindow creates a new instance of a slidingWindow
func NewSlidingWindowWithClock ¶ added in v0.9.0
func NewSlidingWindowWithClock(windowSize time.Duration, pollingInterval time.Duration, clock clock.Clock) (SlidingWindow, error)
NewSlidingWindowWithClock creates a new instance of a slidingWindow but with a custom clock implementation
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 StatsUpdateFunc ¶ added in v0.9.0
type StatsUpdateFunc func(SlidingWindow)
StatsUpdateFunc is invoked when the polling function finishes collecting the data and the internal stats are updated.
type WinNamedPipe ¶
type WinNamedPipe struct {
// contains filtered or unexported fields
}
WinNamedPipe holds the named pipe configuration
func (*WinNamedPipe) Ready ¶
func (p *WinNamedPipe) Ready() bool
Ready returns whether the pipe is ready to read and write
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
buf
module
|
|
Package cachedfetch provides a read-through cache for fetched values.
|
Package cachedfetch provides a read-through cache for fetched values. |
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 and utils to find other executables on the system
|
Package executable provides information on the executable that started the process and utils to find other executables on the system |
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
|
|