Skip to content

Commit 4576d09

Browse files
committed
Add converged agent deployment
1 parent 43644ae commit 4576d09

File tree

3 files changed

+201
-0
lines changed

3 files changed

+201
-0
lines changed

.gitlab-ci.yml

+12
Original file line numberDiff line numberDiff line change
@@ -320,3 +320,15 @@ staging-deploy-dd-ingest-agent-eks:
320320
REGION: us-east-1
321321
RELEASE_NAME: datadog-agent-dd
322322
NODE_GROUP: ng-7
323+
324+
# Agent env:converged-agent-staging
325+
staging-deploy-converged-agent-staging-eks:
326+
!!merge <<: *staging-deploy
327+
variables:
328+
NAMESPACE: converged-agent-staging
329+
SCRIPT: ./ci/scripts/ci-deploy-agent.sh
330+
CLUSTER_NAME: dd-otel
331+
CLUSTER_ARN: "arn:aws:eks:us-east-1:601427279990:cluster/dd-otel"
332+
REGION: us-east-1
333+
RELEASE_NAME: converged-agent-staging
334+
NODE_GROUP: ng-8

ci/converged-agent-values/values.yaml

+153
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
agents:
2+
image:
3+
tag: 7.55.0
4+
tagSuffix: jmx
5+
datadog:
6+
apiKeyExistingSecret: datadog-secrets
7+
otelCollector:
8+
enabled: true
9+
config: |
10+
receivers:
11+
otlp:
12+
protocols:
13+
grpc:
14+
endpoint: 0.0.0.0:4317
15+
http:
16+
endpoint: 0.0.0.0:4318
17+
exporters:
18+
debug:
19+
verbosity: detailed
20+
datadog:
21+
host_metadata:
22+
tags: ['env:${env:OTEL_K8S_NAMESPACE}']
23+
metrics:
24+
resource_attributes_as_tags: true
25+
histograms:
26+
mode: counters
27+
send_count_sum_metrics: true
28+
traces:
29+
span_name_as_resource_name: true
30+
compute_stats_by_span_kind: true
31+
peer_service_aggregation: true
32+
trace_buffer: 1000
33+
api:
34+
key: "$DD_API_KEY"
35+
processors:
36+
resourcedetection:
37+
# ensures host.name and other important resource tags
38+
# get picked up
39+
detectors: [env, gcp, ecs, ec2, azure, system]
40+
timeout: 5s
41+
override: false
42+
system:
43+
# Enable optional system attributes
44+
resource_attributes:
45+
os.type:
46+
enabled: true
47+
os.description:
48+
enabled: true
49+
host.ip:
50+
enabled: true
51+
host.mac:
52+
enabled: true
53+
host.arch:
54+
enabled: true
55+
host.cpu.vendor.id:
56+
enabled: true
57+
host.cpu.model.name:
58+
enabled: true
59+
host.cpu.family:
60+
enabled: true
61+
host.cpu.model.id:
62+
enabled: true
63+
host.cpu.stepping:
64+
enabled: true
65+
host.cpu.cache.l2.size:
66+
enabled: true
67+
host.id:
68+
enabled: false
69+
# adds various tags related to k8s
70+
# adds various tags related to k8s
71+
k8sattributes:
72+
passthrough: false
73+
auth_type: "serviceAccount"
74+
pod_association:
75+
- sources:
76+
- from: resource_attribute
77+
name: k8s.pod.ip
78+
extract:
79+
metadata:
80+
- k8s.pod.name
81+
- k8s.pod.uid
82+
- k8s.deployment.name
83+
- k8s.node.name
84+
- k8s.namespace.name
85+
- k8s.pod.start_time
86+
- k8s.replicaset.name
87+
- k8s.replicaset.uid
88+
- k8s.daemonset.name
89+
- k8s.daemonset.uid
90+
- k8s.job.name
91+
- k8s.job.uid
92+
- k8s.cronjob.name
93+
- k8s.statefulset.name
94+
- k8s.statefulset.uid
95+
- container.image.name
96+
- container.image.tag
97+
- container.id
98+
- k8s.container.name
99+
- container.image.name
100+
- container.image.tag
101+
- container.id
102+
labels:
103+
- tag_name: kube_app_name
104+
key: app.kubernetes.io/name
105+
from: pod
106+
- tag_name: kube_app_instance
107+
key: app.kubernetes.io/instance
108+
from: pod
109+
- tag_name: kube_app_version
110+
key: app.kubernetes.io/version
111+
from: pod
112+
- tag_name: kube_app_component
113+
key: app.kubernetes.io/component
114+
from: pod
115+
- tag_name: kube_app_part_of
116+
key: app.kubernetes.io/part-of
117+
from: pod
118+
- tag_name: kube_app_managed_by
119+
key: app.kubernetes.io/managed-by
120+
from: pod
121+
batch:
122+
send_batch_max_size: 1000
123+
send_batch_size: 100
124+
timeout: 10s
125+
probabilistic_sampler:
126+
hash_seed: 22
127+
sampling_percentage: 15.3
128+
connectors:
129+
datadog/connector:
130+
traces:
131+
span_name_as_resource_name: true
132+
service:
133+
telemetry:
134+
logs:
135+
encoding: "json"
136+
initial_fields:
137+
- service: "otel-collector"
138+
pipelines:
139+
metrics:
140+
receivers: [otlp, datadog/connector]
141+
processors: [resourcedetection, k8sattributes, batch]
142+
exporters: [datadog]
143+
traces:
144+
receivers: [otlp]
145+
processors: [resourcedetection, k8sattributes, batch]
146+
exporters: [datadog/connector]
147+
traces/sampled:
148+
receivers: [datadog/connector]
149+
processors: [probabilistic_sampler, batch]
150+
exporters: [datadog]
151+
logs:
152+
processors: [resourcedetection, k8sattributes, batch]
153+
exporters: [datadog]
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright The OpenTelemetry Authors
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# This script is used to deploy collector on demo account cluster
7+
8+
set -euo pipefail
9+
IFS=$'\n\t'
10+
11+
clusterName=$CLUSTER_NAME
12+
clusterArn=$CLUSTER_ARN
13+
region=$REGION
14+
namespace=$NAMESPACE
15+
releaseName=$RELEASE_NAME
16+
nodegroup=$NODE_GROUP
17+
18+
install_agent() {
19+
# if repo already exists, helm 3+ will skip
20+
helm repo add datadog https://helm.datadoghq.com
21+
22+
# --install will run `helm install` if not already present.
23+
helm_cmd="helm --debug upgrade "${releaseName}" -n "${namespace}" datadog/datadog --install \
24+
-f ./ci/converged-agent-values/values.yaml \
25+
--set datadog.tags=env:"${namespace}" \
26+
--set agents.nodeSelector.\"alpha\\.eksctl\\.io/nodegroup-name\"=${nodegroup}"
27+
28+
eval $helm_cmd
29+
}
30+
31+
###########################################################################################################
32+
33+
aws eks --region "${region}" update-kubeconfig --name "${clusterName}"
34+
kubectl config use-context "${clusterArn}"
35+
36+
install_agent

0 commit comments

Comments
 (0)