tangled
alpha
login
or
join now
tjh.dev
/
nixpkgs
Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
0
fork
atom
overview
issues
pulls
pipelines
datadog-agent: add option to enable trace agent
Rob Vermaas
7 years ago
debbed29
e20e1e5c
+203
-1
4 changed files
expand all
collapse all
unified
split
nixos
modules
services
monitoring
datadog-agent.nix
pkgs
tools
networking
dd-agent
datadog-trace-agent-deps.nix
datadog-trace-agent.nix
top-level
all-packages.nix
+21
-1
nixos/modules/services/monitoring/datadog-agent.nix
···
7
8
ddConf = {
9
dd_url = "https://app.datadoghq.com";
10
-
skip_ssl_validation = "no";
11
confd_path = "/etc/datadog-agent/conf.d";
12
additional_checksd = "/etc/datadog-agent/checks.d";
13
use_dogstatsd = true;
···
16
// optionalAttrs (cfg.hostname != null) { inherit (cfg) hostname; }
17
// optionalAttrs (cfg.tags != null ) { tags = concatStringsSep ", " cfg.tags; }
18
// optionalAttrs (cfg.enableLiveProcessCollection) { process_config = { enabled = "true"; }; }
0
19
// cfg.extraConfig;
20
21
# Generate Datadog configuration files for each configured checks.
···
132
default = false;
133
type = types.bool;
134
};
0
0
0
0
0
0
0
0
0
135
checks = mkOption {
136
description = ''
137
Configuration for all Datadog checks. Keys of this attribute
···
244
${pkgs.datadog-process-agent}/bin/agent --config /etc/datadog-agent/datadog.yaml
245
'';
246
});
0
0
0
0
0
0
0
0
0
0
247
};
248
249
environment.etc = etcfiles;
···
7
8
ddConf = {
9
dd_url = "https://app.datadoghq.com";
10
+
skip_ssl_validation = false;
11
confd_path = "/etc/datadog-agent/conf.d";
12
additional_checksd = "/etc/datadog-agent/checks.d";
13
use_dogstatsd = true;
···
16
// optionalAttrs (cfg.hostname != null) { inherit (cfg) hostname; }
17
// optionalAttrs (cfg.tags != null ) { tags = concatStringsSep ", " cfg.tags; }
18
// optionalAttrs (cfg.enableLiveProcessCollection) { process_config = { enabled = "true"; }; }
19
+
// optionalAttrs (cfg.enableTraceAgent) { apm_config = { enabled = true; }; }
20
// cfg.extraConfig;
21
22
# Generate Datadog configuration files for each configured checks.
···
133
default = false;
134
type = types.bool;
135
};
136
+
137
+
enableTraceAgent = mkOption {
138
+
description = ''
139
+
Whether to enable the trace agent.
140
+
'';
141
+
default = false;
142
+
type = types.bool;
143
+
};
144
+
145
checks = mkOption {
146
description = ''
147
Configuration for all Datadog checks. Keys of this attribute
···
254
${pkgs.datadog-process-agent}/bin/agent --config /etc/datadog-agent/datadog.yaml
255
'';
256
});
257
+
258
+
datadog-trace-agent = lib.mkIf cfg.enableTraceAgent (makeService {
259
+
description = "Datadog Trace Agent";
260
+
path = [ ];
261
+
script = ''
262
+
export DD_API_KEY=$(head -n 1 ${cfg.apiKeyFile})
263
+
${pkgs.datadog-trace-agent}/bin/trace-agent -config /etc/datadog-agent/datadog.yaml
264
+
'';
265
+
});
266
+
267
};
268
269
environment.etc = etcfiles;
+156
pkgs/tools/networking/dd-agent/datadog-trace-agent-deps.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
2
+
[
3
+
{
4
+
goPackagePath = "github.com/DataDog/datadog-agent";
5
+
fetch = {
6
+
type = "git";
7
+
url = "https://github.com/DataDog/datadog-agent";
8
+
rev = "92733ff01547103d5286afc9e272d501cb18f761";
9
+
sha256 = "1mmb7gyin6c4l6pj0nw3kpmj8wvjm7c8n4h5frv26bhg84m15xhd";
10
+
};
11
+
}
12
+
{
13
+
goPackagePath = "github.com/DataDog/datadog-go";
14
+
fetch = {
15
+
type = "git";
16
+
url = "https://github.com/DataDog/datadog-go";
17
+
rev = "a9c7a9896c1847c9cc2b068a2ae68e9d74540a5d";
18
+
sha256 = "1m1vpi2s22dqcq0fqhfp3skzkmsbmhzyiw2kh2dw6ii7qimy8zki";
19
+
};
20
+
}
21
+
{
22
+
goPackagePath = "github.com/StackExchange/wmi";
23
+
fetch = {
24
+
type = "git";
25
+
url = "https://github.com/StackExchange/wmi";
26
+
rev = "ea383cf3ba6ec950874b8486cd72356d007c768f";
27
+
sha256 = "1x3a3rdxccrzrnkld67p9ilm086v4w195rdhyw0bq39x1v1vzbln";
28
+
};
29
+
}
30
+
{
31
+
goPackagePath = "github.com/cihub/seelog";
32
+
fetch = {
33
+
type = "git";
34
+
url = "https://github.com/cihub/seelog";
35
+
rev = "d2c6e5aa9fbfdd1c624e140287063c7730654115";
36
+
sha256 = "0ab9kyrh51x1x71z37pwjsla0qv11a1qv697xafyc4r5nq5hds6p";
37
+
};
38
+
}
39
+
{
40
+
goPackagePath = "github.com/davecgh/go-spew";
41
+
fetch = {
42
+
type = "git";
43
+
url = "https://github.com/davecgh/go-spew";
44
+
rev = "346938d642f2ec3594ed81d874461961cd0faa76";
45
+
sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
46
+
};
47
+
}
48
+
{
49
+
goPackagePath = "github.com/go-ini/ini";
50
+
fetch = {
51
+
type = "git";
52
+
url = "https://github.com/go-ini/ini";
53
+
rev = "74bdc99692c3408cb103221e38675ce8fda0a718";
54
+
sha256 = "0ad93rznilmd1hw20nlkr7ywi3sbd299mynf4db20k5yl34r3498";
55
+
};
56
+
}
57
+
{
58
+
goPackagePath = "github.com/go-ole/go-ole";
59
+
fetch = {
60
+
type = "git";
61
+
url = "https://github.com/go-ole/go-ole";
62
+
rev = "de8695c8edbf8236f30d6e1376e20b198a028d42";
63
+
sha256 = "084caxl71v8lgg475whj2pz9mij3wk3gpbh3pfyf2dm66b6xrq2k";
64
+
};
65
+
}
66
+
{
67
+
goPackagePath = "github.com/gogo/protobuf";
68
+
fetch = {
69
+
type = "git";
70
+
url = "https://github.com/gogo/protobuf";
71
+
rev = "d76fbc1373015ced59b43ac267f28d546b955683";
72
+
sha256 = "051a3imx2m7gpns8cjm1gckif9z6i4ik0svc1i8j7h86800c5rg0";
73
+
};
74
+
}
75
+
{
76
+
goPackagePath = "github.com/golang/protobuf";
77
+
fetch = {
78
+
type = "git";
79
+
url = "https://github.com/golang/protobuf";
80
+
rev = "1e59b77b52bf8e4b449a57e6f79f21226d571845";
81
+
sha256 = "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8";
82
+
};
83
+
}
84
+
{
85
+
goPackagePath = "github.com/philhofer/fwd";
86
+
fetch = {
87
+
type = "git";
88
+
url = "https://github.com/philhofer/fwd";
89
+
rev = "bb6d471dc95d4fe11e432687f8b70ff496cf3136";
90
+
sha256 = "1pg84khadh79v42y8sjsdgfb54vw2kzv7hpapxkifgj0yvcp30g2";
91
+
};
92
+
}
93
+
{
94
+
goPackagePath = "github.com/pmezard/go-difflib";
95
+
fetch = {
96
+
type = "git";
97
+
url = "https://github.com/pmezard/go-difflib";
98
+
rev = "792786c7400a136282c1664665ae0a8db921c6c2";
99
+
sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
100
+
};
101
+
}
102
+
{
103
+
goPackagePath = "github.com/shirou/gopsutil";
104
+
fetch = {
105
+
type = "git";
106
+
url = "https://github.com/shirou/gopsutil";
107
+
rev = "70a1b78fe69202d93d6718fc9e3a4d6f81edfd58";
108
+
sha256 = "04qbzj7r7ahq6s407lh9rb3xagbnaj5wp79siq49qkiz3101kfdb";
109
+
};
110
+
}
111
+
{
112
+
goPackagePath = "github.com/shirou/w32";
113
+
fetch = {
114
+
type = "git";
115
+
url = "https://github.com/shirou/w32";
116
+
rev = "bb4de0191aa41b5507caa14b0650cdbddcd9280b";
117
+
sha256 = "0xh5vqblhr2c3mlaswawx6nipi4rc2x73rbdvlkakmgi0nnl50m4";
118
+
};
119
+
}
120
+
{
121
+
goPackagePath = "github.com/stretchr/testify";
122
+
fetch = {
123
+
type = "git";
124
+
url = "https://github.com/stretchr/testify";
125
+
rev = "12b6f73e6084dad08a7c6e575284b177ecafbc71";
126
+
sha256 = "01f80s0q64pw5drfgqwwk1wfwwkvd2lhbs56lhhkff4ni83k73fd";
127
+
};
128
+
}
129
+
{
130
+
goPackagePath = "github.com/tinylib/msgp";
131
+
fetch = {
132
+
type = "git";
133
+
url = "https://github.com/tinylib/msgp";
134
+
rev = "362bfb3384d53ae4d5dd745983a4d70b6d23628c";
135
+
sha256 = "0b39cp417ndznkfwdqcbh89f9x3ml4rn7kf4l4als7vqrrwk7vrz";
136
+
};
137
+
}
138
+
{
139
+
goPackagePath = "golang.org/x/sys";
140
+
fetch = {
141
+
type = "git";
142
+
url = "https://go.googlesource.com/sys";
143
+
rev = "8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9";
144
+
sha256 = "04va4pqygfzr89fx873k44bmivk7nybqalybi6q96lnn45h2scbr";
145
+
};
146
+
}
147
+
{
148
+
goPackagePath = "gopkg.in/yaml.v2";
149
+
fetch = {
150
+
type = "git";
151
+
url = "https://github.com/go-yaml/yaml";
152
+
rev = "cd8b52f8269e0feb286dfeef29f8fe4d5b397e0b";
153
+
sha256 = "1hj2ag9knxflpjibck0n90jrhsrqz7qvad4qnif7jddyapi9bqzl";
154
+
};
155
+
}
156
+
]
+25
pkgs/tools/networking/dd-agent/datadog-trace-agent.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{ stdenv, fetchFromGitHub, buildGoPackage }:
2
+
3
+
buildGoPackage rec {
4
+
name = "datadog-trace-agent-${version}";
5
+
version = "6.5.0";
6
+
owner = "DataDog";
7
+
repo = "datadog-trace-agent";
8
+
9
+
src = fetchFromGitHub {
10
+
inherit owner repo;
11
+
rev = "6.5.0";
12
+
sha256 = "0xhhcdridilhdwpmr9h3cqg5w4fh87l1jhvzg34k30gdh0g81afw";
13
+
};
14
+
15
+
goDeps = ./datadog-trace-agent-deps.nix;
16
+
goPackagePath = "github.com/${owner}/${repo}";
17
+
18
+
meta = with stdenv.lib; {
19
+
description = "Live trace collector for the DataDog Agent v6";
20
+
homepage = https://www.datadoghq.com;
21
+
license = licenses.bsd3;
22
+
platforms = platforms.all;
23
+
maintainers = with maintainers; [ rob ];
24
+
};
25
+
}
+1
pkgs/top-level/all-packages.nix
···
16084
pythonPackages = datadog-integrations-core {};
16085
};
16086
datadog-process-agent = callPackage ../tools/networking/dd-agent/datadog-process-agent.nix { };
0
16087
datadog-integrations-core = extras: callPackage ../tools/networking/dd-agent/integrations-core.nix {
16088
python = python27;
16089
extraIntegrations = extras;
···
16084
pythonPackages = datadog-integrations-core {};
16085
};
16086
datadog-process-agent = callPackage ../tools/networking/dd-agent/datadog-process-agent.nix { };
16087
+
datadog-trace-agent = callPackage ../tools/networking/dd-agent/datadog-trace-agent.nix { };
16088
datadog-integrations-core = extras: callPackage ../tools/networking/dd-agent/integrations-core.nix {
16089
python = python27;
16090
extraIntegrations = extras;