Skip to content

Commit 7bc4c4e

Browse files
committed
feat: add post download hook for ebpf agent type
1 parent 53b2356 commit 7bc4c4e

5 files changed

Lines changed: 79 additions & 50 deletions

File tree

.github/workflows/component_onhost_e2e.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ permissions:
3030
env:
3131
HOST_E2E_INFRA_AGENT_VERSION: "1.77.1"
3232
HOST_E2E_NRDOT_VERSION: "1.17.0"
33+
HOST_E2E_EBPF_AGENT_VERSION: "1.4.3"
3334

3435
jobs:
3536
build-packages:
@@ -81,7 +82,8 @@ jobs:
8182
--agent-control-version "0.900.${{ github.run_id }}" \
8283
--recipes-repo-branch "main" \
8384
--infra-agent-version "${{ env.HOST_E2E_INFRA_AGENT_VERSION }}" \
84-
--nrdot-version "${{ env.HOST_E2E_NRDOT_VERSION }}"
85+
--nrdot-version "${{ env.HOST_E2E_NRDOT_VERSION }}" \
86+
--ebpf-agent-version "${{ env.HOST_E2E_EBPF_AGENT_VERSION }}"
8587
8688
- name: Report test result to New Relic
8789
if: always()

.github/workflows/on_demand_staging_e2e.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ permissions:
1313
env:
1414
HOST_E2E_INFRA_AGENT_VERSION: "1.72.4"
1515
HOST_E2E_NRDOT_VERSION: "1.8.0"
16+
HOST_E2E_EBPF_AGENT_VERSION: "1.4.3"
1617

1718
jobs:
1819
build-packages:
@@ -64,7 +65,8 @@ jobs:
6465
--agent-control-version "0.600.${{ github.run_id }}" \
6566
--recipes-repo-branch "main" \
6667
--infra-agent-version "${{ env.HOST_E2E_INFRA_AGENT_VERSION }}" \
67-
--nrdot-version "${{ env.HOST_E2E_NRDOT_VERSION }}"
68+
--nrdot-version "${{ env.HOST_E2E_NRDOT_VERSION }}" \
69+
--ebpf-agent-version "${{ env.HOST_E2E_EBPF_AGENT_VERSION }}"
6870
6971
- name: Report test result to New Relic
7072
if: always()

agent-control/agent-type-registry/newrelic/host-linux-com.newrelic.ebpf-0.1.0.yaml

Lines changed: 62 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ variables:
1111
type: string
1212
required: true
1313
OTLP_ENDPOINT:
14-
description: "Endpoint to export data to Newrelic."
14+
description: "Endpoint to export data to New Relic. US: otlp.nr-data.net:443, EU: otlp.eu01.nr-data.net:443, Staging: staging-otlp.nr-data.net:443."
1515
type: string
1616
required: false
17-
default: otlp.nr-data.net:4317
17+
default: otlp.nr-data.net:443
1818
LOG_LEVEL:
1919
description: "To configure the log level in increasing order of verboseness."
2020
type: string
@@ -195,6 +195,36 @@ variables:
195195
type: string
196196
required: false
197197
default: ""
198+
PROXY_URL:
199+
description: "Full proxy URL for exporting data to New Relic (format '<scheme>://<user>:<pass>@<host>:<port>'). Empty = no proxy. Maps to NEW_RELIC_PROXY_URL."
200+
type: string
201+
required: false
202+
default: ""
203+
LABELS:
204+
description: "Custom labels applied to all entities. Format 'key1:value1;key2:value2'. Maps to NEW_RELIC_LABELS."
205+
type: string
206+
required: false
207+
default: ""
208+
REPORT_APM_DATA:
209+
description: "eBPF APM data reporting: 'true' (always), 'false' (never), or 'auto' (only if no APM/OTel agent detected)."
210+
type: string
211+
required: false
212+
default: "true"
213+
REPORT_NETWORK_METRICS:
214+
description: "Network metrics reporting: 'true', 'false', or 'auto'."
215+
type: string
216+
required: false
217+
default: "true"
218+
JVM_METRICS_REPORTING:
219+
description: "Enable/disable JVM metrics collection and reporting."
220+
type: string
221+
required: false
222+
default: "true"
223+
REPORT_AI_METRICS:
224+
description: "AI monitoring: 'true' (always), 'false' (never), or 'auto' (only if no APM/OTel agent detected)."
225+
type: string
226+
required: false
227+
default: "false"
198228
backoff_delay:
199229
description: "seconds until next retry if agent fails to start"
200230
type: string
@@ -205,55 +235,33 @@ variables:
205235
type: bool
206236
required: false
207237
default: false
238+
oci:
239+
repository:
240+
description: "Package repository name"
241+
type: string
242+
required: false
243+
default: newrelic/ebpf-agent-artifacts
244+
variants:
245+
ac_config_field: "oci_repository_urls"
246+
values: [ "newrelic/ebpf-agent-artifacts" ]
247+
version:
248+
description: "Agent version"
249+
type: string
250+
required: true
208251
deployment:
209252
enable_file_logging: ${nr-var:enable_file_logging}
253+
packages:
254+
ebpf-agent:
255+
download:
256+
oci:
257+
repository: ${nr-var:oci.repository}
258+
version: ${nr-var:version}
259+
public_key_url: https://publickeys.newrelic.com/g/agent-control-oci/global/nrebpfagent/jwks.json
260+
post_download_hook:
261+
path: /bin/bash
262+
args:
263+
- post_download.sh
210264
executables:
211-
- id: nr-ebpf-agent-client
212-
path: /usr/bin/nr-ebpf-agent-client
213-
env:
214-
NEW_RELIC_LICENSE_KEY: "${nr-env:NEW_RELIC_LICENSE_KEY}"
215-
DEPLOYMENT_NAME: "${nr-var:config_agent.DEPLOYMENT_NAME}"
216-
OTLP_ENDPOINT: "${nr-var:config_agent.OTLP_ENDPOINT}"
217-
NEW_RELIC_LOG_LEVEL: "${nr-var:config_agent.LOG_LEVEL}"
218-
NEW_RELIC_LOG_FILE_PATH: "${nr-var:config_agent.LOG_FILE_PATH}"
219-
DROP_DATA_FOR_ENTITY: "${nr-var:config_agent.DROP_DATA_FOR_ENTITY}"
220-
TLS_ENABLED: "${nr-var:config_agent.TLS_ENABLED}"
221-
TLS_AUTOGENERATE_CERT_ENABLED: "${nr-var:config_agent.TLS_AUTOGENERATE_CERT_ENABLED}"
222-
TLS_CERT_PATH: "${nr-var:config_agent.TLS_CERT_PATH}"
223-
TLS_CERT_FILE: "${nr-var:config_agent.TLS_CERT_FILE}"
224-
TLS_KEY_FILE: "${nr-var:config_agent.TLS_KEY_FILE}"
225-
TLS_CA_FILE: "${nr-var:config_agent.TLS_CA_FILE}"
226-
TABLE_STORE_DATA_LIMIT_MB: "${nr-var:config_agent.TABLE_STORE_DATA_LIMIT_MB}"
227-
PROTOCOLS_HTTP_ENABLED: "${nr-var:config_agent.PROTOCOLS_HTTP_ENABLED}"
228-
PROTOCOLS_HTTP_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_HTTP_SPANS_ENABLED}"
229-
PROTOCOLS_HTTP_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_HTTP_SPANS_SAMPLING_LATENCY}"
230-
PROTOCOLS_HTTP_SPANS_SAMPLING_ERROR_RATE: "${nr-var:config_agent.PROTOCOLS_HTTP_SPANS_SAMPLING_ERROR_RATE}"
231-
PROTOCOLS_MYSQL_ENABLED: "${nr-var:config_agent.PROTOCOLS_MYSQL_ENABLED}"
232-
PROTOCOLS_MYSQL_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_MYSQL_SPANS_ENABLED}"
233-
PROTOCOLS_MYSQL_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_MYSQL_SPANS_SAMPLING_LATENCY}"
234-
PROTOCOLS_PGSQL_ENABLED: "${nr-var:config_agent.PROTOCOLS_PGSQL_ENABLED}"
235-
PROTOCOLS_PGSQL_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_PGSQL_SPANS_ENABLED}"
236-
PROTOCOLS_PGSQL_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_PGSQL_SPANS_SAMPLING_LATENCY}"
237-
PROTOCOLS_CASS_ENABLED: "${nr-var:config_agent.PROTOCOLS_CASS_ENABLED}"
238-
PROTOCOLS_CASS_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_CASS_SPANS_ENABLED}"
239-
PROTOCOLS_CASS_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_CASS_SPANS_SAMPLING_LATENCY}"
240-
PROTOCOLS_REDIS_ENABLED: "${nr-var:config_agent.PROTOCOLS_REDIS_ENABLED}"
241-
PROTOCOLS_REDIS_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_REDIS_SPANS_ENABLED}"
242-
PROTOCOLS_REDIS_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_REDIS_SPANS_SAMPLING_LATENCY}"
243-
PROTOCOLS_MONGODB_ENABLED: "${nr-var:config_agent.PROTOCOLS_MONGODB_ENABLED}"
244-
PROTOCOLS_MONGODB_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_MONGODB_SPANS_ENABLED}"
245-
PROTOCOLS_MONGODB_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_MONGODB_SPANS_SAMPLING_LATENCY}"
246-
PROTOCOLS_KAFKA_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_KAFKA_SPANS_ENABLED}"
247-
PROTOCOLS_KAFKA_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_KAFKA_SPANS_SAMPLING_LATENCY}"
248-
PROTOCOLS_AMQP_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_AMQP_SPANS_ENABLED}"
249-
PROTOCOLS_AMQP_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_AMQP_SPANS_SAMPLING_LATENCY}"
250-
PROTOCOLS_DNS_ENABLED: "${nr-var:config_agent.PROTOCOLS_DNS_ENABLED}"
251-
PROTOCOLS_DNS_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_DNS_SPANS_ENABLED}"
252-
PROTOCOLS_DNS_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_DNS_SPANS_SAMPLING_LATENCY}"
253-
restart_policy:
254-
backoff_strategy:
255-
type: fixed
256-
backoff_delay: ${nr-var:backoff_delay}
257265
- id: nr-ebpf-agent
258266
path: /usr/bin/nr-ebpf-agent
259267
env:
@@ -296,6 +304,12 @@ deployment:
296304
PROTOCOLS_DNS_ENABLED: "${nr-var:config_agent.PROTOCOLS_DNS_ENABLED}"
297305
PROTOCOLS_DNS_SPANS_ENABLED: "${nr-var:config_agent.PROTOCOLS_DNS_SPANS_ENABLED}"
298306
PROTOCOLS_DNS_SPANS_SAMPLING_LATENCY: "${nr-var:config_agent.PROTOCOLS_DNS_SPANS_SAMPLING_LATENCY}"
307+
NEW_RELIC_PROXY_URL: "${nr-var:config_agent.PROXY_URL}"
308+
NEW_RELIC_LABELS: "${nr-var:config_agent.LABELS}"
309+
REPORT_APM_DATA: "${nr-var:config_agent.REPORT_APM_DATA}"
310+
REPORT_NETWORK_METRICS: "${nr-var:config_agent.REPORT_NETWORK_METRICS}"
311+
JVM_METRICS_REPORTING: "${nr-var:config_agent.JVM_METRICS_REPORTING}"
312+
REPORT_AI_METRICS: "${nr-var:config_agent.REPORT_AI_METRICS}"
299313
restart_policy:
300314
backoff_strategy:
301315
type: fixed

test/e2e-runner/src/common.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ pub struct InstallationArgs {
8989
/// Version of the NRDot OCI image to use in tests
9090
#[arg(long)]
9191
pub nrdot_version: Option<String>,
92+
93+
/// Version of the eBPF agent OCI image to use in tests
94+
#[arg(long)]
95+
pub ebpf_agent_version: Option<String>,
9296
}
9397

9498
/// Arguments for Fleet Control scenarios that also install Agent Control

test/e2e-runner/src/linux/scenarios/ebpf_agent.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ pub fn test_ebpf_agent(args: InstallationArgs) {
2121
.clone()
2222
.expect("--infra-agent-version is required for this scenario");
2323

24+
let ebpf_version = args
25+
.ebpf_agent_version
26+
.clone()
27+
.expect("--ebpf-agent-version is required for this scenario");
28+
2429
let staging = args.nr_region == Region::Staging;
2530

2631
let recipe_data = RecipeData {
@@ -59,13 +64,15 @@ agents:
5964
config_agent:
6065
DEPLOYMENT_NAME: {test_id}
6166
OTLP_ENDPOINT: staging-otlp.nr-data.net:443
67+
version: {ebpf_version}
6268
"#
6369
)
6470
} else {
6571
format!(
6672
r#"
6773
config_agent:
6874
DEPLOYMENT_NAME: {test_id}
75+
version: {ebpf_version}
6976
"#
7077
)
7178
};

0 commit comments

Comments
 (0)