Skip to content

Commit

Permalink
Enabling APM by default (#1006) (#1011)
Browse files Browse the repository at this point in the history
Co-authored-by: Charly Fontaine <[email protected]>
  • Loading branch information
levan-m and Charly Fontaine authored Dec 6, 2023
1 parent 3346daf commit 55f7d91
Show file tree
Hide file tree
Showing 6 changed files with 125 additions and 10 deletions.
12 changes: 9 additions & 3 deletions apis/datadoghq/v2alpha1/datadogagent_default.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const (
// defaultOOMKillEnabled bool = false
// defaultTCPQueueLengthEnabled bool = false

// defaultAPMEnabled bool = false
defaultAPMEnabled bool = true
defaultAPMHostPortEnabled bool = false
defaultAPMHostPort int32 = 8126
defaultAPMSocketEnabled bool = true
Expand Down Expand Up @@ -162,8 +162,14 @@ func defaultFeaturesConfig(ddaSpec *DatadogAgentSpec) {
}
}

// APM Feature
if ddaSpec.Features.APM != nil && ddaSpec.Features.APM.Enabled != nil && *ddaSpec.Features.APM.Enabled {
// APM is enabled by default
if ddaSpec.Features.APM == nil {
ddaSpec.Features.APM = &APMFeatureConfig{}
}

apiutils.DefaultBooleanIfUnset(&ddaSpec.Features.APM.Enabled, defaultAPMEnabled)

if *ddaSpec.Features.APM.Enabled {
if ddaSpec.Features.APM.HostPortConfig == nil {
ddaSpec.Features.APM.HostPortConfig = &HostPortConfig{}
}
Expand Down
115 changes: 112 additions & 3 deletions apis/datadoghq/v2alpha1/datadogagent_default_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveContainerCollection: &LiveContainerCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultLiveContainerCollectionEnabled),
},
Expand Down Expand Up @@ -322,6 +333,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveProcessCollection: &LiveProcessCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(valueTrue),
},
Expand Down Expand Up @@ -386,6 +408,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LogCollection: &LogCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(valueTrue),
ContainerCollectUsingFiles: apiutils.NewBoolPointer(defaultLogContainerCollectUsingFiles),
Expand Down Expand Up @@ -525,6 +558,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveContainerCollection: &LiveContainerCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultLiveContainerCollectionEnabled),
},
Expand Down Expand Up @@ -597,6 +641,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveContainerCollection: &LiveContainerCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultLiveContainerCollectionEnabled),
},
Expand Down Expand Up @@ -657,6 +712,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveContainerCollection: &LiveContainerCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultLiveContainerCollectionEnabled),
},
Expand Down Expand Up @@ -723,6 +789,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveContainerCollection: &LiveContainerCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultLiveContainerCollectionEnabled),
},
Expand Down Expand Up @@ -784,6 +861,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveContainerCollection: &LiveContainerCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultLiveContainerCollectionEnabled),
},
Expand Down Expand Up @@ -845,6 +933,17 @@ func Test_defaultFeatures(t *testing.T) {
},
want: &DatadogAgentSpec{
Features: &DatadogFeatures{
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
LiveContainerCollection: &LiveContainerCollectionFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultLiveContainerCollectionEnabled),
},
Expand Down Expand Up @@ -929,9 +1028,19 @@ func Test_defaultFeatures(t *testing.T) {
ProcessDiscovery: &ProcessDiscoveryFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultProcessDiscoveryEnabled),
},
OOMKill: &OOMKillFeatureConfig{},
TCPQueueLength: &TCPQueueLengthFeatureConfig{},
APM: &APMFeatureConfig{},
OOMKill: &OOMKillFeatureConfig{},
TCPQueueLength: &TCPQueueLengthFeatureConfig{},
APM: &APMFeatureConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMEnabled),
HostPortConfig: &HostPortConfig{
Port: apiutils.NewInt32Pointer(defaultAPMHostPort),
Enabled: apiutils.NewBoolPointer(defaultAPMHostPortEnabled),
},
UnixDomainSocketConfig: &UnixDomainSocketConfig{
Enabled: apiutils.NewBoolPointer(defaultAPMSocketEnabled),
Path: apiutils.NewStringPointer(defaultAPMSocketHostPath),
},
},
CSPM: &CSPMFeatureConfig{},
CWS: &CWSFeatureConfig{},
NPM: &NPMFeatureConfig{},
Expand Down
2 changes: 1 addition & 1 deletion apis/datadoghq/v2alpha1/datadogagent_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ type DatadogFeatures struct {
// APM runs in the Trace Agent.
type APMFeatureConfig struct {
// Enabled enables Application Performance Monitoring.
// Default: false
// Default: true
// +optional
Enabled *bool `json:"enabled,omitempty"`

Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/v1/datadoghq.com_datadogagents.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7826,7 +7826,7 @@ spec:
description: APM (Application Performance Monitoring) configuration.
properties:
enabled:
description: 'Enabled enables Application Performance Monitoring. Default: false'
description: 'Enabled enables Application Performance Monitoring. Default: true'
type: boolean
hostPortConfig:
description: 'HostPortConfig contains host port configuration. Enabled Default: false Port Default: 8126'
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/v1beta1/datadoghq.com_datadogagents.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15376,7 +15376,7 @@ spec:
description: APM (Application Performance Monitoring) configuration.
properties:
enabled:
description: 'Enabled enables Application Performance Monitoring. Default: false'
description: 'Enabled enables Application Performance Monitoring. Default: true'
type: boolean
hostPortConfig:
description: 'HostPortConfig contains host port configuration. Enabled Default: false Port Default: 8126'
Expand Down
2 changes: 1 addition & 1 deletion docs/configuration.v2alpha1.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ spec:
| features.admissionController.mutateUnlabelled | MutateUnlabelled enables config injection without the need of pod label 'admission.datadoghq.com/enabled="true"'. Default: false |
| features.admissionController.serviceName | ServiceName corresponds to the webhook service name. |
| features.admissionController.webhookName | WebhookName is a custom name for the MutatingWebhookConfiguration. Default: "datadog-webhook" |
| features.apm.enabled | Enabled enables Application Performance Monitoring. Default: false |
| features.apm.enabled | Enabled enables Application Performance Monitoring. Default: true |
| features.apm.hostPortConfig.enabled | Enabled enables host port configuration Default: false |
| features.apm.hostPortConfig.hostPort | Port takes a port number (0 < x < 65536) to expose on the host. (Most containers do not need this.) If HostNetwork is enabled, this value must match the ContainerPort. |
| features.apm.unixDomainSocketConfig.enabled | Enabled enables Unix Domain Socket. Default: true |
Expand Down

0 comments on commit 55f7d91

Please sign in to comment.