Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)

datadog-agent: add option to enable trace agent

+203 -1
+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"; }; } 19 // cfg.extraConfig; 20 21 # Generate Datadog configuration files for each configured checks. ··· 132 default = false; 133 type = types.bool; 134 }; 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 }); 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
···
··· 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
···
··· 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 { }; 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;