From 6ce3441f96c8d575517d23be09fd7ef61745cd8a Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Mon, 2 Mar 2026 14:39:25 -0500 Subject: [PATCH 01/17] add experiment for memory bounding ADP to compare to DDOT --- .../experiment.yaml | 43 +++++++++ .../lading/lading.yaml | 77 ++++++++++++++++ test/smp/regression/adp/config.yaml | 2 +- test/smp/regression/adp/experiments.yaml | 89 +++++++++++++++++++ 4 files changed, 210 insertions(+), 1 deletion(-) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml new file mode 100644 index 0000000000..6d07200e8b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 4 + memory_allotment: 500 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 500MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic. + bounds: + series: total_rss_bytes + upper_bound: 400 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml new file mode 100644 index 0000000000..aacc0ffc48 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml @@ -0,0 +1,77 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/config.yaml b/test/smp/regression/adp/config.yaml index 9097e05848..a325bb1893 100644 --- a/test/smp/regression/adp/config.yaml +++ b/test/smp/regression/adp/config.yaml @@ -1,5 +1,5 @@ lading: - version: sha-d608ffbce8f8c77b147d6750b3bb6d6948af239a + version: sha-4f6598ac060672a873a07eacde66072b1888e1c2 target: ddprof_replicas: 0 diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index 9c3717104f..2c63d2c15a 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -332,6 +332,95 @@ experiments: bytes_per_second: "100 MiB" maximum_prebuild_cache_size_bytes: "768 Mb" + - name: quality_gates_rss_otlp_traces_10mb_bounded + extends: otlp_base + optimization_goal: memory + + target: + memory_allotment: 500 MiB + environment: + DD_MEMORY_LIMIT: "500MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic." + bounds: + series: total_rss_bytes + upper_bound: "400 MiB" + + lading: + generator: + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + # ============================================================================ # OTLP Experiments # ============================================================================ From c7ef53b954eabed8a3b96c6b077321444ec37749 Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Mon, 2 Mar 2026 14:39:41 -0500 Subject: [PATCH 02/17] empty.yaml --- .../agent-data-plane/empty.yaml | 1 + 1 file changed, 1 insertion(+) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} From 713205eb1eabb4dbc9b69090764e23deaa20987b Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Mon, 2 Mar 2026 14:58:29 -0500 Subject: [PATCH 03/17] modify experiemnt to match DDOT --- .../experiment.yaml | 4 ++-- test/smp/regression/adp/experiments.yaml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml index 6d07200e8b..a92d136fac 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml @@ -3,7 +3,7 @@ erratic: false target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 4 + cpu_allotment: 2 memory_allotment: 500 MiB environment: DD_HOSTNAME: smp-regression @@ -28,7 +28,7 @@ checks: - name: memory_usage description: Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic. bounds: - series: total_rss_bytes + series: total_pss_bytes upper_bound: 400 MiB report_links: - text: (metrics) diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index 2c63d2c15a..802a182c68 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -337,6 +337,7 @@ experiments: optimization_goal: memory target: + cpu_allotment: 2 memory_allotment: 500 MiB environment: DD_MEMORY_LIMIT: "500MiB" @@ -346,7 +347,7 @@ experiments: - name: memory_usage description: "Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic." bounds: - series: total_rss_bytes + series: total_pss_bytes upper_bound: "400 MiB" lading: From fe7f073514aa1f7b3d077a86ca7bc096098304d1 Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Mon, 2 Mar 2026 15:42:26 -0500 Subject: [PATCH 04/17] align ADP bounded OTLP trace memory gating with DDOT baseline --- .../quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml | 2 +- test/smp/regression/adp/experiments.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml index a92d136fac..af2352e2b0 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml @@ -16,7 +16,7 @@ target: DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 DD_DATA_PLANE_OTLP_ENABLED: "true" DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 500MiB + DD_MEMORY_LIMIT: 400MiB DD_MEMORY_SLOP_FACTOR: "0.2" profiling_environment: SMP_PROFILING_ENABLED: "true" diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index 802a182c68..b72aca93b4 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -340,7 +340,7 @@ experiments: cpu_allotment: 2 memory_allotment: 500 MiB environment: - DD_MEMORY_LIMIT: "500MiB" + DD_MEMORY_LIMIT: "400MiB" DD_MEMORY_SLOP_FACTOR: "0.2" checks: From 672100ff6d93619abde9dedf3dd2ea1e1d175ead Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Mon, 2 Mar 2026 16:00:16 -0500 Subject: [PATCH 05/17] add cert.pem --- .../agent-data-plane/cert.pem | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- From 7747720886a31a4173606d1df69bc1c3b1ae167e Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Thu, 5 Mar 2026 11:00:43 -0500 Subject: [PATCH 06/17] 90 MiB bounded experiment --- .../agent-data-plane/cert.pem | 51 ++++++++++++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 +++++++++++ .../lading/lading.yaml | 77 +++++++++++++++++++ 4 files changed, 172 insertions(+) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml new file mode 100644 index 0000000000..1d9eba44db --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 2 + memory_allotment: 500 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 400MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 90 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml new file mode 100644 index 0000000000..aacc0ffc48 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml @@ -0,0 +1,77 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 From 20696d01ea7ff99788c502b4f4ad8509f628e57c Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Thu, 5 Mar 2026 14:53:16 -0500 Subject: [PATCH 07/17] remove 90mib experiment --- .../agent-data-plane/cert.pem | 51 ------------ .../agent-data-plane/empty.yaml | 1 - .../experiment.yaml | 43 ----------- .../lading/lading.yaml | 77 ------------------- 4 files changed, 172 deletions(-) delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem deleted file mode 100644 index 50ae35ddf3..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/cert.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL -BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv -cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T -aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw -CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 -YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp -Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 -JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ -KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS -IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 -mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz -/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk -73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 -Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE -AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR -GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV -zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF -n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL -BxX9Nnk= ------END CERTIFICATE----- ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb -mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 -lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 -f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg -vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 -7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X -mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 -hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 -cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx -ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 -migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w -266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo -Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 -f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l -Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D -FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 -lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw -bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z -Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 -6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l -rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J -2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW -okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 -BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr -UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y -R5Ivn5V7QPeMY56Uzr2fJQ== ------END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml deleted file mode 100644 index 0967ef424b..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/agent-data-plane/empty.yaml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml deleted file mode 100644 index 1d9eba44db..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/experiment.yaml +++ /dev/null @@ -1,43 +0,0 @@ -optimization_goal: memory -erratic: false -target: - name: agent-data-plane - command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 2 - memory_allotment: 500 MiB - environment: - DD_HOSTNAME: smp-regression - DD_API_KEY: foo00000001 - DD_DD_URL: http://127.0.0.1:9091 - DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem - DD_LOG_FORMAT_JSON: "true" - DD_DATA_PLANE_STANDALONE_MODE: "true" - DD_DATA_PLANE_TELEMETRY_ENABLED: "true" - DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 - DD_DATA_PLANE_OTLP_ENABLED: "true" - DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 400MiB - DD_MEMORY_SLOP_FACTOR: "0.2" - profiling_environment: - SMP_PROFILING_ENABLED: "true" - DD_SERVICE: agent-data-plane - DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket - DD_PROFILING_NATIVE_PRESET: cpu_live_heap - DD_PROFILING_INLINED_FUNCTIONS: "true" -checks: -- name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic. - bounds: - series: total_pss_bytes - upper_bound: 90 MiB -report_links: -- text: (metrics) - link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id - }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false -- text: (profiles) - link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ - job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ - filter_start }}&end={{ filter_end }}&paused=true -- text: (logs) - link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ - filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml deleted file mode 100644 index aacc0ffc48..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded_90mib/lading/lading.yaml +++ /dev/null @@ -1,77 +0,0 @@ -blackhole: -- http: - binding_addr: 127.0.0.1:9091 -target_metrics: -- prometheus: - uri: http://127.0.0.1:5102/scrape -generator: -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 From 953cef5e0ceff077556dc79a69e7f3d36c10e530 Mon Sep 17 00:00:00 2001 From: andrewqian2001datadog Date: Thu, 5 Mar 2026 14:53:35 -0500 Subject: [PATCH 08/17] modify values to match DDOT --- .../quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml | 2 +- test/smp/regression/adp/experiments.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml index af2352e2b0..26a3f06a77 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml @@ -16,7 +16,7 @@ target: DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 DD_DATA_PLANE_OTLP_ENABLED: "true" DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 400MiB + DD_MEMORY_LIMIT: 300MiB DD_MEMORY_SLOP_FACTOR: "0.2" profiling_environment: SMP_PROFILING_ENABLED: "true" diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index b72aca93b4..a40d134c7e 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -340,7 +340,7 @@ experiments: cpu_allotment: 2 memory_allotment: 500 MiB environment: - DD_MEMORY_LIMIT: "400MiB" + DD_MEMORY_LIMIT: "300MiB" DD_MEMORY_SLOP_FACTOR: "0.2" checks: From 8c5c540861bde3a807867e016617a0c32f8f6af4 Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Thu, 12 Mar 2026 15:35:17 -0400 Subject: [PATCH 09/17] tweak memory limits and add higher throughput variant of bounded experiment --- .../experiment.yaml | 6 +- .../agent-data-plane/cert.pem | 51 ++++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 ++++ .../lading/lading.yaml | 217 ++++++++++++++++ test/smp/regression/adp/experiments.yaml | 233 +++++++++++++++++- 6 files changed, 545 insertions(+), 6 deletions(-) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml index 26a3f06a77..fc775205f3 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml @@ -4,7 +4,7 @@ target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run cpu_allotment: 2 - memory_allotment: 500 MiB + memory_allotment: 256 MiB environment: DD_HOSTNAME: smp-regression DD_API_KEY: foo00000001 @@ -16,7 +16,7 @@ target: DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 DD_DATA_PLANE_OTLP_ENABLED: "true" DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 300MiB + DD_MEMORY_LIMIT: 190MiB DD_MEMORY_SLOP_FACTOR: "0.2" profiling_environment: SMP_PROFILING_ENABLED: "true" @@ -29,7 +29,7 @@ checks: description: Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic. bounds: series: total_pss_bytes - upper_bound: 400 MiB + upper_bound: 190 MiB report_links: - text: (metrics) link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml new file mode 100644 index 0000000000..a373ba98e1 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 2 + memory_allotment: 500 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 190MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 190 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml new file mode 100644 index 0000000000..e6f367053a --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml @@ -0,0 +1,217 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 132] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 133] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index a40d134c7e..4ce3e59487 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -338,9 +338,9 @@ experiments: target: cpu_allotment: 2 - memory_allotment: 500 MiB + memory_allotment: 256 MiB environment: - DD_MEMORY_LIMIT: "300MiB" + DD_MEMORY_LIMIT: "190MiB" DD_MEMORY_SLOP_FACTOR: "0.2" checks: @@ -348,7 +348,7 @@ experiments: description: "Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic." bounds: series: total_pss_bytes - upper_bound: "400 MiB" + upper_bound: "190 MiB" lading: generator: @@ -422,6 +422,233 @@ experiments: table: products query: "SELECT * FROM products LIMIT 50" + - name: quality_gates_rss_otlp_traces_30mb_bounded + extends: otlp_base + optimization_goal: memory + + target: + cpu_allotment: 2 + memory_allotment: 500 MiB + environment: + DD_MEMORY_LIMIT: "190MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "190 MiB" + + lading: + generator: + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" # ============================================================================ # OTLP Experiments # ============================================================================ From b8e5736b054484c2b907841951480260f5c04fbf Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Thu, 12 Mar 2026 16:12:19 -0400 Subject: [PATCH 10/17] add additional 30mb bounded experiment with higher memory limit --- .../agent-data-plane/cert.pem | 51 ---- .../agent-data-plane/empty.yaml | 1 - .../experiment.yaml | 43 ---- .../lading/lading.yaml | 217 ---------------- test/smp/regression/adp/experiments.yaml | 231 +++++++++++++++++- 5 files changed, 230 insertions(+), 313 deletions(-) delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem deleted file mode 100644 index 50ae35ddf3..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/cert.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL -BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv -cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T -aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw -CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 -YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp -Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 -JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ -KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS -IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 -mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz -/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk -73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 -Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE -AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR -GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV -zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF -n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL -BxX9Nnk= ------END CERTIFICATE----- ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb -mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 -lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 -f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg -vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 -7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X -mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 -hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 -cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx -ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 -migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w -266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo -Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 -f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l -Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D -FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 -lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw -bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z -Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 -6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l -rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J -2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW -okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 -BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr -UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y -R5Ivn5V7QPeMY56Uzr2fJQ== ------END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml deleted file mode 100644 index 0967ef424b..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/agent-data-plane/empty.yaml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml deleted file mode 100644 index a373ba98e1..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/experiment.yaml +++ /dev/null @@ -1,43 +0,0 @@ -optimization_goal: memory -erratic: false -target: - name: agent-data-plane - command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 2 - memory_allotment: 500 MiB - environment: - DD_HOSTNAME: smp-regression - DD_API_KEY: foo00000001 - DD_DD_URL: http://127.0.0.1:9091 - DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem - DD_LOG_FORMAT_JSON: "true" - DD_DATA_PLANE_STANDALONE_MODE: "true" - DD_DATA_PLANE_TELEMETRY_ENABLED: "true" - DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 - DD_DATA_PLANE_OTLP_ENABLED: "true" - DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 190MiB - DD_MEMORY_SLOP_FACTOR: "0.2" - profiling_environment: - SMP_PROFILING_ENABLED: "true" - DD_SERVICE: agent-data-plane - DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket - DD_PROFILING_NATIVE_PRESET: cpu_live_heap - DD_PROFILING_INLINED_FUNCTIONS: "true" -checks: -- name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. - bounds: - series: total_pss_bytes - upper_bound: 190 MiB -report_links: -- text: (metrics) - link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id - }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false -- text: (profiles) - link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ - job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ - filter_start }}&end={{ filter_end }}&paused=true -- text: (logs) - link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ - filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml deleted file mode 100644 index e6f367053a..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded/lading/lading.yaml +++ /dev/null @@ -1,217 +0,0 @@ -blackhole: -- http: - binding_addr: 127.0.0.1:9091 -target_metrics: -- prometheus: - uri: http://127.0.0.1:5102/scrape -generator: -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 132] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 133] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index 4ce3e59487..9cf4aee9e4 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -422,7 +422,7 @@ experiments: table: products query: "SELECT * FROM products LIMIT 50" - - name: quality_gates_rss_otlp_traces_30mb_bounded + - name: quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit extends: otlp_base optimization_goal: memory @@ -649,6 +649,235 @@ experiments: - id: select-products table: products query: "SELECT * FROM products LIMIT 50" + + - name: quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit + extends: otlp_base + optimization_goal: memory + + target: + cpu_allotment: 2 + memory_allotment: 500 MiB + environment: + DD_MEMORY_LIMIT: "250MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "250 MiB" + + lading: + generator: + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + # ============================================================================ # OTLP Experiments # ============================================================================ From eccdc9f3bd8f2eab7b5ed7796a10c9a94c2d80f8 Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Thu, 12 Mar 2026 16:19:51 -0400 Subject: [PATCH 11/17] missed a spot --- .../agent-data-plane/cert.pem | 51 ++++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 ++++ .../lading/lading.yaml | 217 ++++++++++++++++++ .../agent-data-plane/cert.pem | 51 ++++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 ++++ .../lading/lading.yaml | 217 ++++++++++++++++++ 8 files changed, 624 insertions(+) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml new file mode 100644 index 0000000000..a373ba98e1 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 2 + memory_allotment: 500 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 190MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 190 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml new file mode 100644 index 0000000000..e6f367053a --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml @@ -0,0 +1,217 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 132] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 133] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml new file mode 100644 index 0000000000..a9e0eec944 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 2 + memory_allotment: 500 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 250MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 250 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml new file mode 100644 index 0000000000..e6f367053a --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml @@ -0,0 +1,217 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 132] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 133] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 From 3d3243428928a67e6c956301c0d0418596a84e3d Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Fri, 13 Mar 2026 06:51:06 -0400 Subject: [PATCH 12/17] 4 cpus + higher mem limit variant --- .../experiment.yaml | 2 +- .../experiment.yaml | 2 +- .../agent-data-plane/cert.pem | 51 ++++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 ++++ .../lading/lading.yaml | 217 ++++++++++++++++ test/smp/regression/adp/experiments.yaml | 232 +++++++++++++++++- 7 files changed, 544 insertions(+), 4 deletions(-) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml index a373ba98e1..c89e646238 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml @@ -3,7 +3,7 @@ erratic: false target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 2 + cpu_allotment: 4 memory_allotment: 500 MiB environment: DD_HOSTNAME: smp-regression diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml index a9e0eec944..6a746ac333 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml @@ -3,7 +3,7 @@ erratic: false target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 2 + cpu_allotment: 4 memory_allotment: 500 MiB environment: DD_HOSTNAME: smp-regression diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml new file mode 100644 index 0000000000..cba6bb2171 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 4 + memory_allotment: 600 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 300MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 300 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml new file mode 100644 index 0000000000..e6f367053a --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml @@ -0,0 +1,217 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 132] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 133] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 10 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index 9cf4aee9e4..d2266f19d7 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -427,7 +427,7 @@ experiments: optimization_goal: memory target: - cpu_allotment: 2 + cpu_allotment: 4 memory_allotment: 500 MiB environment: DD_MEMORY_LIMIT: "190MiB" @@ -655,7 +655,7 @@ experiments: optimization_goal: memory target: - cpu_allotment: 2 + cpu_allotment: 4 memory_allotment: 500 MiB environment: DD_MEMORY_LIMIT: "250MiB" @@ -878,6 +878,234 @@ experiments: table: products query: "SELECT * FROM products LIMIT 50" + - name: quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit + extends: otlp_base + optimization_goal: memory + + target: + cpu_allotment: 4 + memory_allotment: 600 MiB + environment: + DD_MEMORY_LIMIT: "300MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "300 MiB" + + lading: + generator: + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + - grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] + target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + bytes_per_second: "10 MiB" + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: "16 MiB" + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: "/api/v1/products/{id}" + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: "/api/v1/products" + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: "GET products:by_id:$1" + - id: get-products + query: "GET products:full" + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: "SELECT * FROM products WHERE id = $1" + - id: select-products + table: products + query: "SELECT * FROM products LIMIT 50" + # ============================================================================ # OTLP Experiments # ============================================================================ From c916c18a97a7f4c4944fa01068ac411afd4e2768 Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Fri, 13 Mar 2026 08:57:05 -0400 Subject: [PATCH 13/17] tweak tests for more load and gradual increase of memory limit --- .../agent-data-plane/cert.pem | 51 -- .../agent-data-plane/empty.yaml | 1 - .../experiment.yaml | 43 - .../lading/lading.yaml | 77 -- .../experiment.yaml | 2 +- .../lading/lading.yaml | 216 ++++- .../agent-data-plane/cert.pem | 51 -- .../agent-data-plane/empty.yaml | 1 - .../experiment.yaml | 43 - .../lading/lading.yaml | 217 ----- .../agent-data-plane/cert.pem | 51 -- .../agent-data-plane/empty.yaml | 1 - .../experiment.yaml | 43 - .../lading/lading.yaml | 217 ----- test/smp/regression/adp/experiments.yaml | 793 ++++++------------ 15 files changed, 461 insertions(+), 1346 deletions(-) delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml delete mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem deleted file mode 100644 index 50ae35ddf3..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/cert.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL -BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv -cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T -aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw -CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 -YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp -Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 -JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ -KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS -IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 -mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz -/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk -73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 -Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE -AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR -GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV -zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF -n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL -BxX9Nnk= ------END CERTIFICATE----- ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb -mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 -lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 -f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg -vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 -7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X -mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 -hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 -cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx -ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 -migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w -266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo -Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 -f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l -Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D -FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 -lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw -bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z -Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 -6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l -rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J -2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW -okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 -BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr -UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y -R5Ivn5V7QPeMY56Uzr2fJQ== ------END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml deleted file mode 100644 index 0967ef424b..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/agent-data-plane/empty.yaml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml deleted file mode 100644 index fc775205f3..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/experiment.yaml +++ /dev/null @@ -1,43 +0,0 @@ -optimization_goal: memory -erratic: false -target: - name: agent-data-plane - command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 2 - memory_allotment: 256 MiB - environment: - DD_HOSTNAME: smp-regression - DD_API_KEY: foo00000001 - DD_DD_URL: http://127.0.0.1:9091 - DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem - DD_LOG_FORMAT_JSON: "true" - DD_DATA_PLANE_STANDALONE_MODE: "true" - DD_DATA_PLANE_TELEMETRY_ENABLED: "true" - DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 - DD_DATA_PLANE_OTLP_ENABLED: "true" - DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 190MiB - DD_MEMORY_SLOP_FACTOR: "0.2" - profiling_environment: - SMP_PROFILING_ENABLED: "true" - DD_SERVICE: agent-data-plane - DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket - DD_PROFILING_NATIVE_PRESET: cpu_live_heap - DD_PROFILING_INLINED_FUNCTIONS: "true" -checks: -- name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic. - bounds: - series: total_pss_bytes - upper_bound: 190 MiB -report_links: -- text: (metrics) - link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id - }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false -- text: (profiles) - link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ - job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ - filter_start }}&end={{ filter_end }}&paused=true -- text: (logs) - link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ - filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml deleted file mode 100644 index aacc0ffc48..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_10mb_bounded/lading/lading.yaml +++ /dev/null @@ -1,77 +0,0 @@ -blackhole: -- http: - binding_addr: 127.0.0.1:9091 -target_metrics: -- prometheus: - uri: http://127.0.0.1:5102/scrape -generator: -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml index c89e646238..816ed82942 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml @@ -4,7 +4,7 @@ target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run cpu_allotment: 4 - memory_allotment: 500 MiB + memory_allotment: 600 MiB environment: DD_HOSTNAME: smp-regression DD_API_KEY: foo00000001 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml index e6f367053a..f9fa19116c 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml @@ -9,7 +9,7 @@ generator: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB + bytes_per_second: 5 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -79,7 +79,7 @@ generator: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB + bytes_per_second: 5 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -149,7 +149,217 @@ generator: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 134] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 135] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 136] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem deleted file mode 100644 index 50ae35ddf3..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/cert.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL -BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv -cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T -aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw -CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 -YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp -Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 -JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ -KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS -IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 -mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz -/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk -73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 -Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE -AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR -GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV -zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF -n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL -BxX9Nnk= ------END CERTIFICATE----- ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb -mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 -lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 -f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg -vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 -7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X -mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 -hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 -cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx -ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 -migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w -266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo -Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 -f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l -Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D -FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 -lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw -bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z -Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 -6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l -rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J -2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW -okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 -BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr -UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y -R5Ivn5V7QPeMY56Uzr2fJQ== ------END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml deleted file mode 100644 index 0967ef424b..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/agent-data-plane/empty.yaml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml deleted file mode 100644 index 6a746ac333..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/experiment.yaml +++ /dev/null @@ -1,43 +0,0 @@ -optimization_goal: memory -erratic: false -target: - name: agent-data-plane - command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 4 - memory_allotment: 500 MiB - environment: - DD_HOSTNAME: smp-regression - DD_API_KEY: foo00000001 - DD_DD_URL: http://127.0.0.1:9091 - DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem - DD_LOG_FORMAT_JSON: "true" - DD_DATA_PLANE_STANDALONE_MODE: "true" - DD_DATA_PLANE_TELEMETRY_ENABLED: "true" - DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 - DD_DATA_PLANE_OTLP_ENABLED: "true" - DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 250MiB - DD_MEMORY_SLOP_FACTOR: "0.2" - profiling_environment: - SMP_PROFILING_ENABLED: "true" - DD_SERVICE: agent-data-plane - DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket - DD_PROFILING_NATIVE_PRESET: cpu_live_heap - DD_PROFILING_INLINED_FUNCTIONS: "true" -checks: -- name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. - bounds: - series: total_pss_bytes - upper_bound: 250 MiB -report_links: -- text: (metrics) - link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id - }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false -- text: (profiles) - link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ - job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ - filter_start }}&end={{ filter_end }}&paused=true -- text: (logs) - link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ - filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml deleted file mode 100644 index e6f367053a..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit/lading/lading.yaml +++ /dev/null @@ -1,217 +0,0 @@ -blackhole: -- http: - binding_addr: 127.0.0.1:9091 -target_metrics: -- prometheus: - uri: http://127.0.0.1:5102/scrape -generator: -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 132] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 133] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem deleted file mode 100644 index 50ae35ddf3..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/cert.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL -BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv -cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T -aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw -CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 -YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp -Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 -JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ -KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS -IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 -mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz -/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk -73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 -Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE -AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR -GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV -zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF -n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL -BxX9Nnk= ------END CERTIFICATE----- ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb -mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 -lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 -f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg -vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 -7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X -mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 -hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 -cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx -ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 -migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w -266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo -Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 -f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l -Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D -FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 -lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw -bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z -Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 -6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l -rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J -2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW -okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 -BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr -UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y -R5Ivn5V7QPeMY56Uzr2fJQ== ------END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml deleted file mode 100644 index 0967ef424b..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/agent-data-plane/empty.yaml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml deleted file mode 100644 index cba6bb2171..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/experiment.yaml +++ /dev/null @@ -1,43 +0,0 @@ -optimization_goal: memory -erratic: false -target: - name: agent-data-plane - command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run - cpu_allotment: 4 - memory_allotment: 600 MiB - environment: - DD_HOSTNAME: smp-regression - DD_API_KEY: foo00000001 - DD_DD_URL: http://127.0.0.1:9091 - DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem - DD_LOG_FORMAT_JSON: "true" - DD_DATA_PLANE_STANDALONE_MODE: "true" - DD_DATA_PLANE_TELEMETRY_ENABLED: "true" - DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 - DD_DATA_PLANE_OTLP_ENABLED: "true" - DD_OTLP_CONFIG: "{}" - DD_MEMORY_LIMIT: 300MiB - DD_MEMORY_SLOP_FACTOR: "0.2" - profiling_environment: - SMP_PROFILING_ENABLED: "true" - DD_SERVICE: agent-data-plane - DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket - DD_PROFILING_NATIVE_PRESET: cpu_live_heap - DD_PROFILING_INLINED_FUNCTIONS: "true" -checks: -- name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. - bounds: - series: total_pss_bytes - upper_bound: 300 MiB -report_links: -- text: (metrics) - link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id - }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false -- text: (profiles) - link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ - job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ - filter_start }}&end={{ filter_end }}&paused=true -- text: (logs) - link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ - filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml deleted file mode 100644 index e6f367053a..0000000000 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit/lading/lading.yaml +++ /dev/null @@ -1,217 +0,0 @@ -blackhole: -- http: - binding_addr: 127.0.0.1:9091 -target_metrics: -- prometheus: - uri: http://127.0.0.1:5102/scrape -generator: -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 132] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 133] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 10 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index d2266f19d7..324e1f57f7 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -134,228 +134,22 @@ templates: DD_DATA_PLANE_OTLP_ENABLED: "true" DD_OTLP_CONFIG: "{}" -experiments: - # ============================================================================ - # DogStatsD: basic regression (CPU, memory, throughput) - # ============================================================================ - - - name: dsd_uds_512kb_3k_contexts - extends: dsd_base - optimization_goals: - - cpu - - memory - - ingress_throughput - lading: - generator: - - unix_datagram: - bytes_per_second: "512 KiB" - - - name: dsd_uds_1mb_3k_contexts - extends: dsd_base - optimization_goals: - - cpu - - memory - - ingress_throughput - lading: - generator: - - unix_datagram: - bytes_per_second: "1 MiB" - - - name: dsd_uds_10mb_3k_contexts - extends: dsd_base - optimization_goals: - - cpu - - memory - - ingress_throughput - lading: - generator: - - unix_datagram: - bytes_per_second: "10 MiB" - - - name: dsd_uds_100mb_3k_contexts - extends: dsd_base - optimization_goals: - - cpu - - memory - - ingress_throughput - lading: - generator: - - unix_datagram: - bytes_per_second: "100 MiB" - - - name: dsd_uds_500mb_3k_contexts - extends: dsd_base - optimization_goals: - - cpu - - memory - - ingress_throughput - lading: - generator: - - unix_datagram: - bytes_per_second: "500 MiB" - - # ============================================================================ - # DogStatsD: quality gates (memory) - # ============================================================================ - - - name: quality_gates_rss_idle - optimization_goal: memory - - # We manually configure the DogStatsD pipeline so that ADP starts up and stays running, - # but we don't actually send anything, which is why we don't extend from `dsd_base` here. - target: - environment: - # Enable the DogStatsD pipeline. - DD_DATA_PLANE_DOGSTATSD_ENABLED: "true" - - # Disables UDP and enables listening on UDS in SOCK_DGRAM mode. - DD_DOGSTATSD_PORT: "0" - DD_DOGSTATSD_SOCKET: /tmp/adp-dogstatsd-dgram.sock - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when idle." - bounds: - series: total_rss_bytes - upper_bound: "40.0 MiB" - - lading: - generator: [] - - - name: quality_gates_rss_dsd_low - extends: dsd_base - optimization_goal: memory - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling 'low' DSD traffic." - bounds: - series: total_rss_bytes - upper_bound: "50.0 MiB" - - lading: - generator: - - unix_datagram: - bytes_per_second: "1 MiB" - maximum_prebuild_cache_size_bytes: "100 Mb" - - - name: quality_gates_rss_dsd_medium - extends: dsd_base - optimization_goal: memory - - target: - environment: - # Set the context limit in the aggregator to right above 10K, which matches the maximum number of contexts we expect - # to generate. We essentially don't want the aggregator to be a limiting factor. - DD_AGGREGATE_CONTEXT_LIMIT: "10100" - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling 'medium' DSD traffic." - bounds: - series: total_rss_bytes - upper_bound: "75.0 MiB" - - lading: - generator: - - unix_datagram: - variant: - dogstatsd: - contexts: - inclusive: - min: 10000 - max: 10001 - bytes_per_second: "10 MiB" - maximum_prebuild_cache_size_bytes: "500 Mb" - - - name: quality_gates_rss_dsd_heavy - extends: dsd_base - optimization_goal: memory - - target: - environment: - # Sets the context resolver's string interner size. - DD_DOGSTATSD_STRING_INTERNER_SIZE: "32MiB" - - # Set the context limit in the aggregator to right above 100K, which matches the maximum number of contexts we expect - # to generate. We essentially don't want the aggregator to be a limiting factor. - DD_AGGREGATE_CONTEXT_LIMIT: "100100" - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling 'heavy' DSD traffic." - bounds: - series: total_rss_bytes - upper_bound: "140.0 MiB" - - lading: - generator: - - unix_datagram: - variant: - dogstatsd: - contexts: - inclusive: - min: 99000 - max: 101000 - bytes_per_second: "50 MiB" - maximum_prebuild_cache_size_bytes: "512 Mb" - - - name: quality_gates_rss_dsd_ultraheavy - extends: dsd_base - optimization_goal: memory - - target: - environment: - # Sets the context resolver's string interner size. - DD_DOGSTATSD_STRING_INTERNER_SIZE: "64MiB" - - # Set the context limit in the aggregator to right above 250K, which matches the maximum number of contexts we - # expect to generate. We essentially don't want the aggregator to be a limiting factor. - DD_AGGREGATE_CONTEXT_LIMIT: "250100" - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling 'ultraheavy' DSD traffic." - bounds: - series: total_rss_bytes - upper_bound: "200.0 MiB" - - lading: - generator: - - unix_datagram: - variant: - dogstatsd: - contexts: - inclusive: - min: 249000 - max: 251000 - bytes_per_second: "100 MiB" - maximum_prebuild_cache_size_bytes: "768 Mb" - - - name: quality_gates_rss_otlp_traces_10mb_bounded - extends: otlp_base - optimization_goal: memory - + # Base template for bounded OTLP experiments (30MiB/s total, 6 clients) + otlp_base_bounded_30mb_6_clients: target: - cpu_allotment: 2 - memory_allotment: 256 MiB + cpu_allotment: 4 + memory_allotment: 600 MiB environment: - DD_MEMORY_LIMIT: "190MiB" - DD_MEMORY_SLOP_FACTOR: "0.2" - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling bounded 10 MiB OTLP traces traffic." - bounds: - series: total_pss_bytes - upper_bound: "190 MiB" + # Enable the OTLP pipeline. + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" lading: generator: - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" + bytes_per_second: "5 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -421,31 +215,10 @@ experiments: - id: select-products table: products query: "SELECT * FROM products LIMIT 50" - - - name: quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit - extends: otlp_base - optimization_goal: memory - - target: - cpu_allotment: 4 - memory_allotment: 500 MiB - environment: - DD_MEMORY_LIMIT: "190MiB" - DD_MEMORY_SLOP_FACTOR: "0.2" - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." - bounds: - series: total_pss_bytes - upper_bound: "190 MiB" - - lading: - generator: - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" + bytes_per_second: "5 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -512,9 +285,9 @@ experiments: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" + bytes_per_second: "5 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -581,9 +354,9 @@ experiments: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 134] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" + bytes_per_second: "5 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -649,31 +422,10 @@ experiments: - id: select-products table: products query: "SELECT * FROM products LIMIT 50" - - - name: quality_gates_rss_otlp_traces_30mb_bounded_250mib_limit - extends: otlp_base - optimization_goal: memory - - target: - cpu_allotment: 4 - memory_allotment: 500 MiB - environment: - DD_MEMORY_LIMIT: "250MiB" - DD_MEMORY_SLOP_FACTOR: "0.2" - - checks: - - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." - bounds: - series: total_pss_bytes - upper_bound: "250 MiB" - - lading: - generator: - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 135] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" + bytes_per_second: "5 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -740,9 +492,9 @@ experiments: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 136] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" + bytes_per_second: "5 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -808,303 +560,252 @@ experiments: - id: select-products table: products query: "SELECT * FROM products LIMIT 50" - - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] - target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + +experiments: + # ============================================================================ + # DogStatsD: basic regression (CPU, memory, throughput) + # ============================================================================ + + - name: dsd_uds_512kb_3k_contexts + extends: dsd_base + optimization_goals: + - cpu + - memory + - ingress_throughput + lading: + generator: + - unix_datagram: + bytes_per_second: "512 KiB" + + - name: dsd_uds_1mb_3k_contexts + extends: dsd_base + optimization_goals: + - cpu + - memory + - ingress_throughput + lading: + generator: + - unix_datagram: + bytes_per_second: "1 MiB" + + - name: dsd_uds_10mb_3k_contexts + extends: dsd_base + optimization_goals: + - cpu + - memory + - ingress_throughput + lading: + generator: + - unix_datagram: bytes_per_second: "10 MiB" - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: "16 MiB" - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: "/api/v1/products/{id}" - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: "/api/v1/products" - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: "GET products:by_id:$1" - - id: get-products - query: "GET products:full" - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: "SELECT * FROM products WHERE id = $1" - - id: select-products - table: products - query: "SELECT * FROM products LIMIT 50" - - name: quality_gates_rss_otlp_traces_30mb_bounded_300mib_limit - extends: otlp_base + - name: dsd_uds_100mb_3k_contexts + extends: dsd_base + optimization_goals: + - cpu + - memory + - ingress_throughput + lading: + generator: + - unix_datagram: + bytes_per_second: "100 MiB" + + - name: dsd_uds_500mb_3k_contexts + extends: dsd_base + optimization_goals: + - cpu + - memory + - ingress_throughput + lading: + generator: + - unix_datagram: + bytes_per_second: "500 MiB" + + # ============================================================================ + # DogStatsD: quality gates (memory) + # ============================================================================ + + - name: quality_gates_rss_idle optimization_goal: memory + # We manually configure the DogStatsD pipeline so that ADP starts up and stays running, + # but we don't actually send anything, which is why we don't extend from `dsd_base` here. target: - cpu_allotment: 4 - memory_allotment: 600 MiB environment: - DD_MEMORY_LIMIT: "300MiB" - DD_MEMORY_SLOP_FACTOR: "0.2" + # Enable the DogStatsD pipeline. + DD_DATA_PLANE_DOGSTATSD_ENABLED: "true" + + # Disables UDP and enables listening on UDS in SOCK_DGRAM mode. + DD_DOGSTATSD_PORT: "0" + DD_DOGSTATSD_SOCKET: /tmp/adp-dogstatsd-dgram.sock checks: - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + description: "Acceptable upper bound on the memory used by ADP when idle." bounds: - series: total_pss_bytes - upper_bound: "300 MiB" + series: total_rss_bytes + upper_bound: "40.0 MiB" + + lading: + generator: [] + + - name: quality_gates_rss_dsd_low + extends: dsd_base + optimization_goal: memory + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling 'low' DSD traffic." + bounds: + series: total_rss_bytes + upper_bound: "50.0 MiB" lading: generator: - - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] - target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: "16 MiB" + - unix_datagram: + bytes_per_second: "1 MiB" + maximum_prebuild_cache_size_bytes: "100 Mb" + + - name: quality_gates_rss_dsd_medium + extends: dsd_base + optimization_goal: memory + + target: + environment: + # Set the context limit in the aggregator to right above 10K, which matches the maximum number of contexts we expect + # to generate. We essentially don't want the aggregator to be a limiting factor. + DD_AGGREGATE_CONTEXT_LIMIT: "10100" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling 'medium' DSD traffic." + bounds: + series: total_rss_bytes + upper_bound: "75.0 MiB" + + lading: + generator: + - unix_datagram: variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: "/api/v1/products/{id}" - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: "/api/v1/products" - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: "GET products:by_id:$1" - - id: get-products - query: "GET products:full" - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: "SELECT * FROM products WHERE id = $1" - - id: select-products - table: products - query: "SELECT * FROM products LIMIT 50" - - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] - target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" + dogstatsd: + contexts: + inclusive: + min: 10000 + max: 10001 bytes_per_second: "10 MiB" - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: "16 MiB" + maximum_prebuild_cache_size_bytes: "500 Mb" + + - name: quality_gates_rss_dsd_heavy + extends: dsd_base + optimization_goal: memory + + target: + environment: + # Sets the context resolver's string interner size. + DD_DOGSTATSD_STRING_INTERNER_SIZE: "32MiB" + + # Set the context limit in the aggregator to right above 100K, which matches the maximum number of contexts we expect + # to generate. We essentially don't want the aggregator to be a limiting factor. + DD_AGGREGATE_CONTEXT_LIMIT: "100100" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling 'heavy' DSD traffic." + bounds: + series: total_rss_bytes + upper_bound: "140.0 MiB" + + lading: + generator: + - unix_datagram: variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: "/api/v1/products/{id}" - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: "/api/v1/products" - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: "GET products:by_id:$1" - - id: get-products - query: "GET products:full" - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: "SELECT * FROM products WHERE id = $1" - - id: select-products - table: products - query: "SELECT * FROM products LIMIT 50" - - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] - target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "10 MiB" - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: "16 MiB" + dogstatsd: + contexts: + inclusive: + min: 99000 + max: 101000 + bytes_per_second: "50 MiB" + maximum_prebuild_cache_size_bytes: "512 Mb" + + - name: quality_gates_rss_dsd_ultraheavy + extends: dsd_base + optimization_goal: memory + + target: + environment: + # Sets the context resolver's string interner size. + DD_DOGSTATSD_STRING_INTERNER_SIZE: "64MiB" + + # Set the context limit in the aggregator to right above 250K, which matches the maximum number of contexts we + # expect to generate. We essentially don't want the aggregator to be a limiting factor. + DD_AGGREGATE_CONTEXT_LIMIT: "250100" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling 'ultraheavy' DSD traffic." + bounds: + series: total_rss_bytes + upper_bound: "200.0 MiB" + + lading: + generator: + - unix_datagram: variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: "/api/v1/products/{id}" - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: "/api/v1/products" - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: "GET products:by_id:$1" - - id: get-products - query: "GET products:full" - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: "SELECT * FROM products WHERE id = $1" - - id: select-products - table: products - query: "SELECT * FROM products LIMIT 50" + dogstatsd: + contexts: + inclusive: + min: 249000 + max: 251000 + bytes_per_second: "100 MiB" + maximum_prebuild_cache_size_bytes: "768 Mb" + + - name: quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit + extends: otlp_base_bounded_30mb_6_clients + optimization_goal: memory + + target: + environment: + DD_MEMORY_LIMIT: "190MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "190 MiB" + + - name: quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit + extends: otlp_base_bounded_30mb_6_clients + optimization_goal: memory + + target: + environment: + DD_MEMORY_LIMIT: "215MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "215 MiB" + + - name: quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit + extends: otlp_base_bounded_30mb_6_clients + optimization_goal: memory + + target: + environment: + DD_MEMORY_LIMIT: "240MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "240 MiB" # ============================================================================ # OTLP Experiments From b0c6b2ca6057119c2c3b83a9c4607cb3dba566cd Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Fri, 13 Mar 2026 10:45:46 -0400 Subject: [PATCH 14/17] woops --- .../agent-data-plane/cert.pem | 51 +++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 ++ .../lading/lading.yaml | 427 ++++++++++++++++++ .../agent-data-plane/cert.pem | 51 +++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 ++ .../lading/lading.yaml | 427 ++++++++++++++++++ 8 files changed, 1044 insertions(+) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/lading/lading.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/experiment.yaml new file mode 100644 index 0000000000..5e8dc5825c --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 4 + memory_allotment: 600 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 215MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 215 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/lading/lading.yaml new file mode 100644 index 0000000000..f9fa19116c --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/lading/lading.yaml @@ -0,0 +1,427 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 132] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 133] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 134] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 135] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 136] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/experiment.yaml new file mode 100644 index 0000000000..099d339045 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 4 + memory_allotment: 600 MiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 240MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 240 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/lading/lading.yaml new file mode 100644 index 0000000000..f9fa19116c --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/lading/lading.yaml @@ -0,0 +1,427 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 132] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 133] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 134] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 135] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 136] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 5 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 From 93b7fec56b88b7e4d600bcbf6434172a11b66ec7 Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Fri, 13 Mar 2026 12:55:24 -0400 Subject: [PATCH 15/17] more bounded experiment variants --- .../agent-data-plane/cert.pem | 0 .../agent-data-plane/empty.yaml | 0 .../experiment.yaml | 4 +- .../lading/lading.yaml | 88 +---- .../agent-data-plane/cert.pem | 0 .../agent-data-plane/empty.yaml | 0 .../experiment.yaml | 4 +- .../lading/lading.yaml | 88 +---- .../agent-data-plane/cert.pem | 0 .../agent-data-plane/empty.yaml | 0 .../experiment.yaml | 4 +- .../lading/lading.yaml | 88 +---- .../agent-data-plane/cert.pem | 51 +++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 +++ .../lading/lading.yaml | 357 ++++++++++++++++++ .../agent-data-plane/cert.pem | 51 +++ .../agent-data-plane/empty.yaml | 1 + .../experiment.yaml | 43 +++ .../lading/lading.yaml | 357 ++++++++++++++++++ test/smp/regression/adp/experiments.yaml | 144 +++---- 21 files changed, 991 insertions(+), 333 deletions(-) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_190mb}/agent-data-plane/cert.pem (100%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_190mb}/agent-data-plane/empty.yaml (100%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_190mb}/experiment.yaml (96%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_190mb}/lading/lading.yaml (81%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_215mb}/agent-data-plane/cert.pem (100%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_215mb}/agent-data-plane/empty.yaml (100%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_215mb}/experiment.yaml (96%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_215mb}/lading/lading.yaml (81%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_240mb}/agent-data-plane/cert.pem (100%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_240mb}/agent-data-plane/empty.yaml (100%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_240mb}/experiment.yaml (96%) rename test/smp/regression/adp/cases/{quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit => quality_gates_rss_otlp_traces_15mb_bounded_240mb}/lading/lading.yaml (81%) create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/cert.pem create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/empty.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/experiment.yaml create mode 100644 test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/agent-data-plane/cert.pem similarity index 100% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/cert.pem rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/agent-data-plane/cert.pem diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/agent-data-plane/empty.yaml similarity index 100% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/agent-data-plane/empty.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/agent-data-plane/empty.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/experiment.yaml similarity index 96% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/experiment.yaml index 816ed82942..7426c27a50 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/experiment.yaml @@ -4,7 +4,7 @@ target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run cpu_allotment: 4 - memory_allotment: 600 MiB + memory_allotment: 1 GiB environment: DD_HOSTNAME: smp-regression DD_API_KEY: foo00000001 @@ -26,7 +26,7 @@ target: DD_PROFILING_INLINED_FUNCTIONS: "true" checks: - name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + description: Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic. bounds: series: total_pss_bytes upper_bound: 190 MiB diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/lading/lading.yaml similarity index 81% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/lading/lading.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/lading/lading.yaml index f9fa19116c..a0e4e6e88b 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/lading/lading.yaml @@ -9,7 +9,7 @@ generator: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -77,79 +77,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 132] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 133] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -217,9 +147,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 134] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -287,9 +217,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 135] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -357,9 +287,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 136] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/agent-data-plane/cert.pem similarity index 100% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/cert.pem rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/agent-data-plane/cert.pem diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/agent-data-plane/empty.yaml similarity index 100% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/agent-data-plane/empty.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/agent-data-plane/empty.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/experiment.yaml similarity index 96% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/experiment.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/experiment.yaml index 5e8dc5825c..134cd73a3e 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/experiment.yaml @@ -4,7 +4,7 @@ target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run cpu_allotment: 4 - memory_allotment: 600 MiB + memory_allotment: 1 GiB environment: DD_HOSTNAME: smp-regression DD_API_KEY: foo00000001 @@ -26,7 +26,7 @@ target: DD_PROFILING_INLINED_FUNCTIONS: "true" checks: - name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + description: Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic. bounds: series: total_pss_bytes upper_bound: 215 MiB diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/lading/lading.yaml similarity index 81% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/lading/lading.yaml index f9fa19116c..a0e4e6e88b 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/lading/lading.yaml @@ -9,7 +9,7 @@ generator: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -77,79 +77,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 132] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 133] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -217,9 +147,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 134] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -287,9 +217,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 135] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -357,9 +287,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 136] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/agent-data-plane/cert.pem similarity index 100% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/cert.pem rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/agent-data-plane/cert.pem diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/agent-data-plane/empty.yaml similarity index 100% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/agent-data-plane/empty.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/agent-data-plane/empty.yaml diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/experiment.yaml similarity index 96% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/experiment.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/experiment.yaml index 099d339045..b0932346be 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit/experiment.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/experiment.yaml @@ -4,7 +4,7 @@ target: name: agent-data-plane command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run cpu_allotment: 4 - memory_allotment: 600 MiB + memory_allotment: 1 GiB environment: DD_HOSTNAME: smp-regression DD_API_KEY: foo00000001 @@ -26,7 +26,7 @@ target: DD_PROFILING_INLINED_FUNCTIONS: "true" checks: - name: memory_usage - description: Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic. + description: Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic. bounds: series: total_pss_bytes upper_bound: 240 MiB diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/lading/lading.yaml similarity index 81% rename from test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/lading/lading.yaml rename to test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/lading/lading.yaml index f9fa19116c..a0e4e6e88b 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/lading/lading.yaml @@ -9,7 +9,7 @@ generator: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -77,79 +77,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 132] - target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: 16 MiB - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: /api/v1/products/{id} - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: /api/v1/products - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: GET products:by_id:$1 - - id: get-products - query: GET products:full - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: SELECT * FROM products WHERE id = $1 - - id: select-products - table: products - query: SELECT * FROM products LIMIT 50 -- grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 133] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -217,9 +147,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 134] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -287,9 +217,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 135] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: @@ -357,9 +287,9 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 136] + 109, 113, 127, 131] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export - bytes_per_second: 5 MiB + bytes_per_second: 3 MiB parallel_connections: 1 maximum_prebuild_cache_size_bytes: 16 MiB variant: diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/experiment.yaml new file mode 100644 index 0000000000..9fdd0ef6e0 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 4 + memory_allotment: 1 GiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 265MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 265 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml new file mode 100644 index 0000000000..a0e4e6e88b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml @@ -0,0 +1,357 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/cert.pem b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/cert.pem new file mode 100644 index 0000000000..50ae35ddf3 --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/cert.pem @@ -0,0 +1,51 @@ +-----BEGIN CERTIFICATE----- +MIIDwTCCAqmgAwIBAgIUGNrRiJ81arCE1jTvLRoxxuLVoHAwDQYJKoZIhvcNAQEL +BQAwgYgxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlv +cmsgQ2l0eTEWMBQGA1UECgwNRGF0YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1T +aWduZWQgVGVzdGluZyBDZXJ0aWZpY2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MB4X +DTI1MTExMzE4NDAxMFoXDTM1MTExMTE4NDAxMFowgYgxCzAJBgNVBAYTAlVTMQsw +CQYDVQQIDAJOWTEWMBQGA1UEBwwNTmV3IFlvcmsgQ2l0eTEWMBQGA1UECgwNRGF0 +YWRvZywgSW5jLjEoMCYGA1UECwwfU2VsZi1TaWduZWQgVGVzdGluZyBDZXJ0aWZp +Y2F0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAs9oaPxXZ5t2725jEWJ+kLMbH6tFzKIgGEG2wpzJik1AumsSeax40 +JvA6W20Gyb73KkbCWM7Hm83++5QesDllpIvK0QNlDsz9VzQtiMCRZQ5Dfuw6stl+ +KQaCFvaEXBwvz/kfrIBLDeww9H9VL3YP2JnHIcA4Y5bvdIrSr3q59n7nd9exBtjS +IZxLHxf44/yQMIUcmPESnLNGYLxqIYuHvre+t1CrWduzHwKtsSIP1qy3U2YCRQW6 +mxDaZ+aI0BY8vYNX1w4XEeW8NO1HEu25DPXPWGbcSgHVk2VnQKtMIoVjuCGZGbBz +/TFJo69KoW/3CH3WHpT2JVKPV5itxkP68QIDAQABoyEwHzAdBgNVHQ4EFgQUFHdk +73oIdZ7CkilNi96SveiH/OcwDQYJKoZIhvcNAQELBQADggEBAEMd7CiZkIqtE+O4 +Nj19xiTflKyw0EBklwlq1NrFb6VpGN3vPcu5X2CNH9p+c+zPYgDSTf+IFBYXO/zE +AzNYjFeUQf6Hsh0fTLqaiaueiAZw1o6QJp7/xFdwFcUFJM72lIlgndkoffEJCLOR +GcjAYD2Qv/oCjQ2B5xeHT9Sk4t85dhiK0aLbeSi+9yqtHis15OW8vqVFJXh1SxMV +zSKN9C4Yw0JKMNqlmePjQIc3d28tm4sUOzD2+qF+mSTSZqvAEuO3loQJPexfsDsF +n929iEzFbOshRpjKp/mZ1jzZewDOIg5Zek1UmbqIHf9MHfpdDYA0zcEnzTQqGFtL +BxX9Nnk= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCz2ho/Fdnm3bvb +mMRYn6Qsxsfq0XMoiAYQbbCnMmKTUC6axJ5rHjQm8DpbbQbJvvcqRsJYzsebzf77 +lB6wOWWki8rRA2UOzP1XNC2IwJFlDkN+7Dqy2X4pBoIW9oRcHC/P+R+sgEsN7DD0 +f1Uvdg/YmcchwDhjlu90itKvern2fud317EG2NIhnEsfF/jj/JAwhRyY8RKcs0Zg +vGohi4e+t763UKtZ27MfAq2xIg/WrLdTZgJFBbqbENpn5ojQFjy9g1fXDhcR5bw0 +7UcS7bkM9c9YZtxKAdWTZWdAq0wihWO4IZkZsHP9MUmjr0qhb/cIfdYelPYlUo9X +mK3GQ/rxAgMBAAECggEAFPVEe7d7JfkOzB84Oi+YPROI9mcj6UQ4mK9/l2w6qnn8 +hFKHN2pUn3j9A+xnjxjuyoFmYlzuS8ysevqevOBjZNJZdxPTMe9XUlMlPztZdhI8 +cUzr5i2MExHMFQrzD5zFQZIBS+PDW0L7zXINJjO20wHQf7FboNdU3hrTRFmj1AJx +ExWk+vnY2YrzQLewsbPtK1FX6wqKhYuOSUOjpNJmf+2+aGfR+Bxx2NBF4marJoj3 +migN1pThUQAoPXX5qRoX3VpEEZEOMycuSXp+raqcBqSFfv8gz/iM6tLfctRgqe0w +266oxipeLLXLmffYvnXrYXwK4Jl5M6Zd9TVjf6GDBQKBgQD+FSW+YEp6l4Zz5Rwo +Xrb104ILMHsd5V59KyNcd2c3mxMEhodN3sQDEd4OQRmMGIfcivb9Sn49GRBMTu29 +f4ax6+F0Su66MOikgdhOYyNWI3TfMbsY/zCyXiGU9MiWVNDzx1nQj8sG7h36dK1l +Yxv6xx/a857kbZYnB53DCQ3dmwKBgQC1NY09e3Qq+hXyuZEJSsHE5LAYd9TeWs+D +FuUmL8FQkGCihQz/fX3+yJar4oXDoIHnhEwGEEKkOoT9EJ4uzW9L0WSy6fopjRs2 +lXTnQBbB7414ZYkTM/oanTh7dBVG307oyb6d5+Jl0NPxs5Fomh6xOMWD8hB0+CTw +bAaO/c5YYwKBgATdlM5ze5mjYzC+924SekB0322lbQYiiU+uTswLgU+ASbnxdY/Z +Lzm70tvFBV84bQmdI6OwFIDJBRXhAQ567bJkiPm4IaAxJZNY5TKDFX8lyKwpgKK2 +6FDSGqSGl3zBfQreC2tCBapJTwunxlZFsph3zbVcqvNG4fQ3Yh8FAl33AoGADR9l +rRAlp38Y280Ibc3WHnYZMoxrA/c7k9iym4NV0onCFcLg4BesaikIkEYFPdd/0M5J +2x6OVOpP+yua6PTDnI/7ZOGA1kV7tQY5ww1nGIBKlG9178gR0p+UGYychddiFYWW +okTKpmjrEFPaseKHWnosA5QiEPZvZmHMT8qdiNUCgYAweUc7+5slfxKYVLUo34p9 +BiED632dV2YA7CYf+iEjXoFjCOH+ZqzI7OGfODpSMpjim3Fxt++UWbJscbNmtCZr +UeNDsJxiC+eksGWqpu0QoKdNPYRBB2QQFcvTT0AVt6PTzKaFVBvF/dnLuODjXp9Y +R5Ivn5V7QPeMY56Uzr2fJQ== +-----END PRIVATE KEY----- diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/empty.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/empty.yaml new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/agent-data-plane/empty.yaml @@ -0,0 +1 @@ +{} diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/experiment.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/experiment.yaml new file mode 100644 index 0000000000..968e25e1ac --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/experiment.yaml @@ -0,0 +1,43 @@ +optimization_goal: memory +erratic: false +target: + name: agent-data-plane + command: /maybe-profile.sh /usr/local/bin/agent-data-plane --config /etc/agent-data-plane/empty.yaml run + cpu_allotment: 4 + memory_allotment: 1 GiB + environment: + DD_HOSTNAME: smp-regression + DD_API_KEY: foo00000001 + DD_DD_URL: http://127.0.0.1:9091 + DD_IPC_CERT_FILE_PATH: /etc/agent-data-plane/cert.pem + DD_LOG_FORMAT_JSON: "true" + DD_DATA_PLANE_STANDALONE_MODE: "true" + DD_DATA_PLANE_TELEMETRY_ENABLED: "true" + DD_DATA_PLANE_TELEMETRY_LISTEN_ADDR: tcp://127.0.0.1:5102 + DD_DATA_PLANE_OTLP_ENABLED: "true" + DD_OTLP_CONFIG: "{}" + DD_MEMORY_LIMIT: 290MiB + DD_MEMORY_SLOP_FACTOR: "0.2" + profiling_environment: + SMP_PROFILING_ENABLED: "true" + DD_SERVICE: agent-data-plane + DD_TRACE_AGENT_URL: unix:///smp-host/apm.socket + DD_PROFILING_NATIVE_PRESET: cpu_live_heap + DD_PROFILING_INLINED_FUNCTIONS: "true" +checks: +- name: memory_usage + description: Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic. + bounds: + series: total_pss_bytes + upper_bound: 290 MiB +report_links: +- text: (metrics) + link: https://app.datadoghq.com/dashboard/4br-nxz-khi?fromUser=true&refresh_mode=paused&tpl_var_adp-run-id%5B0%5D={{ job_id + }}&tpl_var_experiment%5B0%5D={{ experiment }}&view=spans&from_ts={{ start_time_ms }}&to_ts={{ end_time_ms }}&live=false +- text: (profiles) + link: https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Aagent-data-plane%20job_id%3A{{ + job_id }}%20experiment%3A{{ experiment }}&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start={{ + filter_start }}&end={{ filter_end }}&paused=true +- text: (logs) + link: https://app.datadoghq.com/logs?query=experiment%3A{{ experiment }}%20run_id%3A{{ job_id }}&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts={{ + filter_start }}&to_ts={{ filter_end }}&live=false diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml new file mode 100644 index 0000000000..a0e4e6e88b --- /dev/null +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml @@ -0,0 +1,357 @@ +blackhole: +- http: + binding_addr: 127.0.0.1:9091 +target_metrics: +- prometheus: + uri: http://127.0.0.1:5102/scrape +generator: +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 +- grpc: + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, + 109, 113, 127, 131] + target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export + bytes_per_second: 3 MiB + parallel_connections: 1 + maximum_prebuild_cache_size_bytes: 16 MiB + variant: + opentelemetry_traces: + error_rate: 0.01 + services: + - name: api-gateway + service_type: http + scope_name: com.example.gateway + resource_attributes: + - key: deployment.environment + value: production + - key: cloud.region + value: + dictionary: cloud_regions + operations: + - id: get-product + method: GET + route: /api/v1/products/{id} + suboperations: + - to: product-service/get-product + - id: list-products + method: GET + route: /api/v1/products + suboperations: + - to: product-service/list-products + - name: product-service + service_type: grpc + grpc: + service: ProductService + scope_name: com.example.products + operations: + - id: get-product + method: GetProduct + suboperations: + - to: product-cache/get-product-by-id + - to: product-db/select-product-by-id + rate: 0.1 + - id: list-products + method: ListProducts + suboperations: + - to: product-cache/get-products + - to: product-db/select-products + rate: 0.1 + - name: product-cache + service_type: database + database: + system: redis + operations: + - id: get-product-by-id + query: GET products:by_id:$1 + - id: get-products + query: GET products:full + - name: product-db + service_type: database + database: + system: postgresql + name: products + operations: + - id: select-product-by-id + table: products + query: SELECT * FROM products WHERE id = $1 + - id: select-products + table: products + query: SELECT * FROM products LIMIT 50 diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index 324e1f57f7..4afa02750d 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -134,11 +134,11 @@ templates: DD_DATA_PLANE_OTLP_ENABLED: "true" DD_OTLP_CONFIG: "{}" - # Base template for bounded OTLP experiments (30MiB/s total, 6 clients) - otlp_base_bounded_30mb_6_clients: + # Base template for bounded OTLP experiments (15MiB/s total, 5 clients) + otlp_base_bounded_15mb_5_clients: target: cpu_allotment: 4 - memory_allotment: 600 MiB + memory_allotment: 1 GiB environment: # Enable the OTLP pipeline. DD_DATA_PLANE_OTLP_ENABLED: "true" @@ -149,76 +149,7 @@ templates: - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "5 MiB" - parallel_connections: 1 - maximum_prebuild_cache_size_bytes: "16 MiB" - variant: - opentelemetry_traces: - error_rate: 0.01 - services: - - name: api-gateway - service_type: http - scope_name: com.example.gateway - resource_attributes: - - key: deployment.environment - value: production - - key: cloud.region - value: - dictionary: cloud_regions - operations: - - id: get-product - method: GET - route: "/api/v1/products/{id}" - suboperations: - - to: product-service/get-product - - id: list-products - method: GET - route: "/api/v1/products" - suboperations: - - to: product-service/list-products - - name: product-service - service_type: grpc - grpc: - service: ProductService - scope_name: com.example.products - operations: - - id: get-product - method: GetProduct - suboperations: - - to: product-cache/get-product-by-id - - to: product-db/select-product-by-id - rate: 0.1 - - id: list-products - method: ListProducts - suboperations: - - to: product-cache/get-products - - to: product-db/select-products - rate: 0.1 - - name: product-cache - service_type: database - database: - system: redis - operations: - - id: get-product-by-id - query: "GET products:by_id:$1" - - id: get-products - query: "GET products:full" - - name: product-db - service_type: database - database: - system: postgresql - name: products - operations: - - id: select-product-by-id - table: products - query: "SELECT * FROM products WHERE id = $1" - - id: select-products - table: products - query: "SELECT * FROM products LIMIT 50" - - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] - target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "5 MiB" + bytes_per_second: "3 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -285,9 +216,9 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "5 MiB" + bytes_per_second: "3 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -354,9 +285,9 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 134] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "5 MiB" + bytes_per_second: "3 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -423,9 +354,9 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 135] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "5 MiB" + bytes_per_second: "3 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -492,9 +423,9 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 136] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" - bytes_per_second: "5 MiB" + bytes_per_second: "3 MiB" parallel_connections: 1 maximum_prebuild_cache_size_bytes: "16 MiB" variant: @@ -759,8 +690,8 @@ experiments: bytes_per_second: "100 MiB" maximum_prebuild_cache_size_bytes: "768 Mb" - - name: quality_gates_rss_otlp_traces_30mb_bounded_190mib_limit - extends: otlp_base_bounded_30mb_6_clients + - name: quality_gates_rss_otlp_traces_15mb_bounded_190mb + extends: otlp_base_bounded_15mb_5_clients optimization_goal: memory target: @@ -770,13 +701,13 @@ experiments: checks: - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + description: "Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic." bounds: series: total_pss_bytes upper_bound: "190 MiB" - - name: quality_gates_rss_otlp_traces_30mb_bounded_215mib_limit - extends: otlp_base_bounded_30mb_6_clients + - name: quality_gates_rss_otlp_traces_15mb_bounded_215mb + extends: otlp_base_bounded_15mb_5_clients optimization_goal: memory target: @@ -786,13 +717,13 @@ experiments: checks: - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + description: "Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic." bounds: series: total_pss_bytes upper_bound: "215 MiB" - - name: quality_gates_rss_otlp_traces_30mb_bounded_240mib_limit - extends: otlp_base_bounded_30mb_6_clients + - name: quality_gates_rss_otlp_traces_15mb_bounded_240mb + extends: otlp_base_bounded_15mb_5_clients optimization_goal: memory target: @@ -802,11 +733,44 @@ experiments: checks: - name: memory_usage - description: "Acceptable upper bound on the memory used by ADP when handling bounded 30 MiB OTLP traces traffic." + description: "Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic." bounds: series: total_pss_bytes upper_bound: "240 MiB" + - name: quality_gates_rss_otlp_traces_15mb_bounded_265mb + extends: otlp_base_bounded_15mb_5_clients + optimization_goal: memory + + target: + environment: + DD_MEMORY_LIMIT: "265MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "265 MiB" + + - name: quality_gates_rss_otlp_traces_15mb_bounded_290mb + extends: otlp_base_bounded_15mb_5_clients + optimization_goal: memory + + target: + environment: + DD_MEMORY_LIMIT: "290MiB" + DD_MEMORY_SLOP_FACTOR: "0.2" + + checks: + - name: memory_usage + description: "Acceptable upper bound on the memory used by ADP when handling bounded 15 MiB OTLP traces traffic." + bounds: + series: total_pss_bytes + upper_bound: "290 MiB" + + # ============================================================================ # OTLP Experiments # ============================================================================ From b1301d5137f6861b34b1cc102fffefa285fe86e7 Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Fri, 13 Mar 2026 15:41:41 -0400 Subject: [PATCH 16/17] different seed per generator to actually drive more load --- test/smp/regression/adp/experiments.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/smp/regression/adp/experiments.yaml b/test/smp/regression/adp/experiments.yaml index 4afa02750d..5accc7e7fd 100644 --- a/test/smp/regression/adp/experiments.yaml +++ b/test/smp/regression/adp/experiments.yaml @@ -216,7 +216,7 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 132] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" bytes_per_second: "3 MiB" parallel_connections: 1 @@ -285,7 +285,7 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 133] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" bytes_per_second: "3 MiB" parallel_connections: 1 @@ -354,7 +354,7 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 134] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" bytes_per_second: "3 MiB" parallel_connections: 1 @@ -423,7 +423,7 @@ templates: table: products query: "SELECT * FROM products LIMIT 50" - grpc: - seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131] + seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 135] target_uri: "http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export" bytes_per_second: "3 MiB" parallel_connections: 1 From bad8851561ebab0ab40394de2d7de9a442274565 Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Fri, 20 Mar 2026 05:37:28 -0400 Subject: [PATCH 17/17] synchronize smp experiments --- .../lading/lading.yaml | 8 ++++---- .../lading/lading.yaml | 8 ++++---- .../lading/lading.yaml | 8 ++++---- .../lading/lading.yaml | 8 ++++---- .../lading/lading.yaml | 8 ++++---- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/lading/lading.yaml index a0e4e6e88b..c1ef9c6316 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_190mb/lading/lading.yaml @@ -77,7 +77,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 132] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -147,7 +147,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 133] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -217,7 +217,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 134] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -287,7 +287,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 135] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/lading/lading.yaml index a0e4e6e88b..c1ef9c6316 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_215mb/lading/lading.yaml @@ -77,7 +77,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 132] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -147,7 +147,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 133] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -217,7 +217,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 134] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -287,7 +287,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 135] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/lading/lading.yaml index a0e4e6e88b..c1ef9c6316 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_240mb/lading/lading.yaml @@ -77,7 +77,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 132] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -147,7 +147,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 133] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -217,7 +217,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 134] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -287,7 +287,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 135] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml index a0e4e6e88b..c1ef9c6316 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_265mb/lading/lading.yaml @@ -77,7 +77,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 132] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -147,7 +147,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 133] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -217,7 +217,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 134] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -287,7 +287,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 135] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 diff --git a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml index a0e4e6e88b..c1ef9c6316 100644 --- a/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml +++ b/test/smp/regression/adp/cases/quality_gates_rss_otlp_traces_15mb_bounded_290mb/lading/lading.yaml @@ -77,7 +77,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 132] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -147,7 +147,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 133] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -217,7 +217,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 134] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1 @@ -287,7 +287,7 @@ generator: query: SELECT * FROM products LIMIT 50 - grpc: seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, - 109, 113, 127, 131] + 109, 113, 127, 135] target_uri: http://127.0.0.1:4317/opentelemetry.proto.collector.trace.v1.TraceService/Export bytes_per_second: 3 MiB parallel_connections: 1