Documentation ¶
Index ¶
- func GetRegisteredFactoryKeys() []string
- func RegisterCheck(name string, checkFactory optional.Option[func() check.Check])
- type CheckBase
- func (c *CheckBase) BuildID(integrationConfigDigest uint64, instance, initConfig integration.Data)
- func (c *CheckBase) Cancel()
- func (c *CheckBase) CommonConfigure(senderManager sender.SenderManager, ...) error
- func (c *CheckBase) ConfigSource() string
- func (c *CheckBase) Configure(senderManager sender.SenderManager, _ uint64, data integration.Data, ...) error
- func (c *CheckBase) GetDiagnoses() ([]diagnosis.Diagnosis, error)
- func (c *CheckBase) GetRawSender() (sender.Sender, error)
- func (c *CheckBase) GetSender() (sender.Sender, error)
- func (c *CheckBase) GetSenderStats() (stats.SenderStats, error)
- func (c *CheckBase) GetWarnings() []error
- func (c *CheckBase) ID() checkid.ID
- func (c *CheckBase) InitConfig() string
- func (c *CheckBase) InstanceConfig() string
- func (c *CheckBase) Interval() time.Duration
- func (c *CheckBase) IsTelemetryEnabled() bool
- func (c *CheckBase) Stop()
- func (c *CheckBase) String() string
- func (c *CheckBase) Version() string
- func (c *CheckBase) Warn(v ...interface{}) error
- func (c *CheckBase) Warnf(format string, params ...interface{}) error
- type CheckFactory
- type GoCheckLoader
- type LongRunningCheck
- type LongRunningCheckWrapper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetRegisteredFactoryKeys ¶
func GetRegisteredFactoryKeys() []string
GetRegisteredFactoryKeys get the keys for all registered factories
Types ¶
type CheckBase ¶
type CheckBase struct {
// contains filtered or unexported fields
}
CheckBase provides default implementations for most of the check.Check interface to make it easier to bootstrap a new corecheck.
To use it, you need to embed it in your check struct, by calling NewCheckBase() in your factory, plus: - long-running checks must override Stop() and Interval() - checks supporting multiple instances must call BuildID() from their Configure() method - after optionally building a unique ID, CommonConfigure() must be called from the Config() method to handle the common instance fields
Integration warnings are handled via the Warn and Warnf methods that forward the warning to the logger and send the warning to the collector for display in the status page and the web UI.
If custom tags are set in the instance configuration, they will be automatically appended to each send done by this check.
func NewCheckBase ¶
NewCheckBase returns a check base struct with a given check name
func NewCheckBaseWithInterval ¶
NewCheckBaseWithInterval returns a check base struct with a given check name and interval
func (*CheckBase) BuildID ¶
func (c *CheckBase) BuildID(integrationConfigDigest uint64, instance, initConfig integration.Data)
BuildID is to be called by the check's Config() method to generate the unique check ID.
func (*CheckBase) Cancel ¶ added in v0.9.0
func (c *CheckBase) Cancel()
Cancel does nothing by default. Override it if your check has background resources that need to be cleaned up when the check is unscheduled.
func (*CheckBase) CommonConfigure ¶
func (c *CheckBase) CommonConfigure(senderManager sender.SenderManager, initConfig, instanceConfig integration.Data, source string) error
CommonConfigure is called when checks implement their own Configure method, in order to setup common options (run interval, empty hostname)
func (*CheckBase) ConfigSource ¶
ConfigSource returns an empty string as Go check can't be updated independently from the agent
func (*CheckBase) Configure ¶
func (c *CheckBase) Configure(senderManager sender.SenderManager, _ uint64, data integration.Data, initConfig integration.Data, source string) error
Configure is provided for checks that require no config. If overridden, the call to CommonConfigure must be preserved.
func (*CheckBase) GetDiagnoses ¶
GetDiagnoses returns the diagnoses cached in last run or diagnose explicitly
func (*CheckBase) GetRawSender ¶
GetRawSender is similar to GetSender, but does not provide the safety wrapper.
func (*CheckBase) GetSender ¶
GetSender gets the object to which metrics for this check should be sent.
This is a "safe" sender, specialized to avoid some common errors, at a very small cost to performance. Performance-sensitive checks can use GetRawSender() to avoid this performance cost, as long as they are careful to avoid errors.
See `safesender.go` for details on the managed errors.
func (*CheckBase) GetSenderStats ¶ added in v0.9.0
func (c *CheckBase) GetSenderStats() (stats.SenderStats, error)
GetSenderStats returns the stats from the last run of the check.
func (*CheckBase) GetWarnings ¶
GetWarnings grabs the latest integration warnings for the check.
func (*CheckBase) ID ¶
ID returns a unique ID for that check instance
For checks that only support one instance, the default value is the check name. Regular checks must call BuildID() from Config() to build their ID.
func (*CheckBase) InitConfig ¶
InitConfig returns the init_config configuration for the check.
func (*CheckBase) InstanceConfig ¶
InstanceConfig returns the instance configuration for the check.
func (*CheckBase) Interval ¶
Interval returns the scheduling time for the check. Long-running checks should override to return 0.
func (*CheckBase) IsTelemetryEnabled ¶
IsTelemetryEnabled returns if the telemetry is enabled for this check.
func (*CheckBase) Stop ¶
func (c *CheckBase) Stop()
Stop does nothing by default, you need to implement it in long-running checks (persisting after Run() exits)
func (*CheckBase) Version ¶
Version returns an empty string as Go check can't be updated independently from the agent
type CheckFactory ¶
CheckFactory factory function type to instantiate checks
type GoCheckLoader ¶
type GoCheckLoader struct{}
GoCheckLoader is a specific loader for checks living in this package
func NewGoCheckLoader ¶
func NewGoCheckLoader() (*GoCheckLoader, error)
NewGoCheckLoader creates a loader for go checks
func (*GoCheckLoader) Load ¶
func (gl *GoCheckLoader) Load(senderManger sender.SenderManager, config integration.Config, instance integration.Data) (check.Check, error)
Load returns a Go check
func (*GoCheckLoader) Name ¶ added in v0.9.0
func (gl *GoCheckLoader) Name() string
Name return returns Go loader name
func (*GoCheckLoader) String ¶
func (gl *GoCheckLoader) String() string
type LongRunningCheck ¶
LongRunningCheck is a wrapper that converts a long running check (with Run never terminating) to a typical check in order to be handled in the agent status.
type LongRunningCheckWrapper ¶
type LongRunningCheckWrapper struct { LongRunningCheck // contains filtered or unexported fields }
LongRunningCheckWrapper provides a wrapper for long running checks that will be used by the collector to handle the check lifecycle.
func NewLongRunningCheckWrapper ¶
func NewLongRunningCheckWrapper(check LongRunningCheck) *LongRunningCheckWrapper
NewLongRunningCheckWrapper returns a new LongRunningCheckWrapper
func (*LongRunningCheckWrapper) Cancel ¶
func (cw *LongRunningCheckWrapper) Cancel()
Cancel calls the cancel method of the check. It makes sure it is called only once.
func (*LongRunningCheckWrapper) GetSenderStats ¶
func (cw *LongRunningCheckWrapper) GetSenderStats() (stats.SenderStats, error)
GetSenderStats returns the stats from the last run of the check and sets the field LongRunningCheck to true. It is necessary for formatting the stats in the status page.
func (*LongRunningCheckWrapper) Interval ¶
func (cw *LongRunningCheckWrapper) Interval() time.Duration
Interval defines how frequently we should update the metrics. It can't be 0 otherwise the check will be considered as a long running check, Run() will be called only once and the metrics won't be collected.
func (*LongRunningCheckWrapper) Run ¶
func (cw *LongRunningCheckWrapper) Run() error
Run runs the check in a goroutine if it is not already running. If the check is already running, it will commit the sender.
Directories ¶
Path | Synopsis |
---|---|
Package cluster provides core checks for cluster level checks, used by the Datadog Cluster Agent.
|
Package cluster provides core checks for cluster level checks, used by the Datadog Cluster Agent. |
ksm
Package ksm implements the Kubernetes State Core cluster check.
|
Package ksm implements the Kubernetes State Core cluster check. |
ksm/customresources
Package customresources implements custom resources that are not yet supported in the kube-state-metrics library or that were supported at some point, but now they're not, and we still want to keep backwards compatibility.
|
Package customresources implements custom resources that are not yet supported in the kube-state-metrics library or that were supported at some point, but now they're not, and we still want to keep backwards compatibility. |
Package containerimage implements the container image check.
|
Package containerimage implements the container image check. |
Package containerlifecycle implements the container lifecycle check.
|
Package containerlifecycle implements the container lifecycle check. |
Package containers provides core checks for containers and orchestrators
|
Package containers provides core checks for containers and orchestrators |
generic
Package generic implements the container check.
|
Package generic implements the container check. |
Package ebpf contains all the ebpf-based checks.
|
Package ebpf contains all the ebpf-based checks. |
oomkill
Package oomkill contains the OOMKill check.
|
Package oomkill contains the OOMKill check. |
probe/ebpfcheck
Package ebpfcheck is the system-probe side of the eBPF check
|
Package ebpfcheck is the system-probe side of the eBPF check |
probe/ebpfcheck/model
Package model is the types for the eBPF check
|
Package model is the types for the eBPF check |
probe/oomkill
Package oomkill is the system-probe side of the OOM Kill check
|
Package oomkill is the system-probe side of the OOM Kill check |
probe/oomkill/model
Package model is the types for the OOM Kill check
|
Package model is the types for the OOM Kill check |
probe/tcpqueuelength
Package tcpqueuelength is the system-probe side of the TCP Queue Length check
|
Package tcpqueuelength is the system-probe side of the TCP Queue Length check |
probe/tcpqueuelength/model
Package model is the types for the TCP Queue Length check
|
Package model is the types for the TCP Queue Length check |
embed
|
|
apm
Package apm provides a stub for the APM check
|
Package apm provides a stub for the APM check |
Package gpu defines the agent corecheck for the GPU integration
|
Package gpu defines the agent corecheck for the GPU integration |
model
Package model contains the model for the GPU check, with types shared between the system-probe GPU probe and the gpu core agent check
|
Package model contains the model for the GPU check, with types shared between the system-probe GPU probe and the gpu core agent check |
nvidia
Package nvidia holds the logic to collect metrics from the NVIDIA Management Library (NVML).
|
Package nvidia holds the logic to collect metrics from the NVIDIA Management Library (NVML). |
Package net provides core checks for networking
|
Package net provides core checks for networking |
network-devices
|
|
cisco-sdwan
Package ciscosdwan implements NDM Cisco SD-WAN corecheck
|
Package ciscosdwan implements NDM Cisco SD-WAN corecheck |
cisco-sdwan/client
Package client implements a Cisco SD-WAN API client
|
Package client implements a Cisco SD-WAN API client |
cisco-sdwan/payload
Package payload implement processing of Cisco SD-WAN api responses
|
Package payload implement processing of Cisco SD-WAN api responses |
cisco-sdwan/report
Package report implements Cisco SD-WAN metadata and metrics reporting
|
Package report implements Cisco SD-WAN metadata and metrics reporting |
Package networkpath defines the agent corecheck for the Network Path integration
|
Package networkpath defines the agent corecheck for the Network Path integration |
nvidia
|
|
jetson
Package nvidia provides core checks for Nvidia's jetson device family
|
Package nvidia provides core checks for Nvidia's jetson device family |
Package systemd provides core checks for oracle
|
Package systemd provides core checks for oracle |
Package orchestrator holds orchestrator checks ourside the cluster agent
|
Package orchestrator holds orchestrator checks ourside the cluster agent |
ecs
Package ecs is used for the orchestrator ECS check
|
Package ecs is used for the orchestrator ECS check |
pod
Package pod is used for the orchestrator pod check
|
Package pod is used for the orchestrator pod check |
Package sbom provides core checks for SBOM generation
|
Package sbom provides core checks for SBOM generation |
Package servicediscovery contains the Service Discovery corecheck.
|
Package servicediscovery contains the Service Discovery corecheck. |
apm
Package apm provides functionality to detect the type of APM instrumentation a service is using.
|
Package apm provides functionality to detect the type of APM instrumentation a service is using. |
apm/testutil/instrumented
Package main is a go application which use dd-trace-go, in order to test static APM instrumentation detection.
|
Package main is a go application which use dd-trace-go, in order to test static APM instrumentation detection. |
envs
Package envs provides target environment variables of interest.
|
Package envs provides target environment variables of interest. |
language
Package language provides functionality to detect the programming language for a given process.
|
Package language provides functionality to detect the programming language for a given process. |
language/reader
Package reader provides utils around io.Reader.
|
Package reader provides utils around io.Reader. |
model
Package model contains types for service discovery.
|
Package model contains types for service discovery. |
module
Package module implements a system-probe Module interface for the discovery component.
|
Package module implements a system-probe Module interface for the discovery component. |
module/testutil/fake_server
Package main is a simple TCP server which accepts any command line arguments, in order to test service discovery which uses the command line for detection.
|
Package main is a simple TCP server which accepts any command line arguments, in order to test service discovery which uses the command line for detection. |
servicetype
Package servicetype provides functionality to detect the service type for a given process.
|
Package servicetype provides functionality to detect the service type for a given process. |
usm
Package usm provides functionality to detect the most appropriate service name for a process.
|
Package usm provides functionality to detect the most appropriate service name for a process. |
Package snmp contains the SNMP corecheck integration
|
Package snmp contains the SNMP corecheck integration |
internal/common
Package common contains constants and basic structures used in snmp integration
|
Package common contains constants and basic structures used in snmp integration |
internal/configvalidation
Package configvalidation contains validation and enrichment functions
|
Package configvalidation contains validation and enrichment functions |
internal/profile
Package profile contains profile related code
|
Package profile contains profile related code |
internal/report
Package report is a package that reports metrics for the device check
|
Package report is a package that reports metrics for the device check |
status
Package status contains the SNMP Profiles status provider
|
Package status contains the SNMP Profiles status provider |
Package system provides core checks for OS-level system metrics
|
Package system provides core checks for OS-level system metrics |
filehandles
Package filehandles defines the file_handle core check
|
Package filehandles defines the file_handle core check |
wincrashdetect
Package wincrashdetect implements the windows crash detection on windows.
|
Package wincrashdetect implements the windows crash detection on windows. |
wincrashdetect/probe
Package probe parses Windows crash dumps.
|
Package probe parses Windows crash dumps. |
Package systemd provides core checks for systemd
|
Package systemd provides core checks for systemd |
Package telemetry is a check to collect and send limited subset of internal telemetry from the core agent.
|
Package telemetry is a check to collect and send limited subset of internal telemetry from the core agent. |