From cbe07e1f63e08fe1c1d604a0aea61334af3eb2e7 Mon Sep 17 00:00:00 2001 From: Rohan Yadav Date: Tue, 7 Oct 2025 11:48:35 +0530 Subject: [PATCH 1/3] feat: deprecate legacy integration attributes * remove integration_version and integration_name * introduce a config to control if these attributes need to be set * add tests for legacy integration attribute config option --- cmd/nri-flex/nri-flex_test.go | 24 +++-- docs/apis/commands.md | 2 - docs/apis/url.md | 2 - docs/basics/functions.md | 16 +--- docs/experimental/functions.md | 2 - docs/experimental/git_sync.md | 1 - docs/troubleshooting.md | 9 -- examples/Oracle/SiebelCRM/README.md | 10 -- examples/linux/netdiscover.yml | 2 - go.mod | 6 +- go.sum | 70 ++------------ integration-test/http_linux_test.go | 4 - internal/load/load.go | 27 +++--- internal/processor/create.go | 21 ++-- .../json-read-cmd-example-legacy.yml | 10 ++ .../v4-integrations-example-legacy.yml | 25 +++++ test/configs/json-read-cmd-example-legacy.yml | 10 ++ test/configs/json-read-cmd-example.yml | 2 +- .../v4-integrations-example-legacy.yml | 19 ++++ test/payloadsExpected/configDir.json | 22 ++++- test/payloadsExpected/configFile.json | 2 - test/payloadsExpected/configFileV4.json | 4 - test/payloadsExpected/ecsTaskStateChange.json | 96 +++++++++---------- test/payloadsExpected/squidMgrTest.json | 2 - .../testbed/scenarios/fixtures/command_api.go | 22 ++--- test/testbed/scenarios/fixtures/file_api.go | 22 ++--- test/testbed/scenarios/fixtures/url_api.go | 4 +- 27 files changed, 214 insertions(+), 222 deletions(-) create mode 100644 test/config_windows/json-read-cmd-example-legacy.yml create mode 100644 test/config_windows/v4-integrations-example-legacy.yml create mode 100644 test/configs/json-read-cmd-example-legacy.yml create mode 100644 test/configs/v4-integrations-example-legacy.yml diff --git a/cmd/nri-flex/nri-flex_test.go b/cmd/nri-flex/nri-flex_test.go index a4b994d1..3afef249 100644 --- a/cmd/nri-flex/nri-flex_test.go +++ b/cmd/nri-flex/nri-flex_test.go @@ -1,4 +1,5 @@ -//+build linux darwin +//go:build linux || darwin +// +build linux darwin /* * Copyright 2019 New Relic Corporation. All rights reserved. @@ -57,11 +58,20 @@ func TestConfigDir(t *testing.T) { r := fintegration.GetTestRuntime() fintegration.RunFlex(r) expectedSamples := []string{ - `{"event_type":"flexStatusSample","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":3,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.MessageSample":2,"flex.counter.commandJsonOutSample":1}`, - `{"error":"true","event_type":"MessageSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","message":"bye","value":20.9}`, - `{"error":"false","event_type":"MessageSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","message":"hello","value":100}`, + `{"event_type":"flexStatusSample","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":6,` + + `"flex.counter.EventCount":6,"flex.counter.EventDropCount":0,"flex.counter.MessageLegacySample":2,` + + `"flex.counter.MessageSample":2,"flex.counter.commandJsonOutSample":2}`, + `{"error":"true","event_type":"MessageSample","message":"bye","value":20.9}`, + `{"error":"false","event_type":"MessageSample","message":"hello","value":100}`, + `{"error":"true","event_type":"MessageLegacySample","integration_name":"com.newrelic.nri-flex",` + + `"integration_version":"Unknown-SNAPSHOT","message":"bye","value":20.9}`, + `{"error":"false","event_type":"MessageLegacySample","integration_name":"com.newrelic.nri-flex",` + + `"integration_version":"Unknown-SNAPSHOT","message":"hello","value":100}`, + `{"completed":"false","event_type":"commandJsonOutSample","id":1,` + + `"myCustomAttr":"theValue","title":"delectus aut autem","userId":1}`, `{"completed":"false","event_type":"commandJsonOutSample","id":1,"integration_name":"com.newrelic.nri-flex",` + - `"integration_version":"Unknown-SNAPSHOT","myCustomAttr":"theValue","title":"delectus aut autem","userId":1}`} + `"integration_version":"Unknown-SNAPSHOT","myCustomAttr":"theValue","title":"delectus aut autem","userId":1}`, + } testSamples(expectedSamples, load.Entity.Metrics, t) } @@ -74,7 +84,7 @@ func TestConfigFile(t *testing.T) { fintegration.RunFlex(r) expectedSamples := []string{ `{"event_type":"flexStatusSample","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.commandJsonOutSample":1}`, - `{"completed":"false","event_type":"commandJsonOutSample","id":1,"integration_name":"com.newrelic.nri-flex",` + - `"integration_version":"Unknown-SNAPSHOT","myCustomAttr":"theValue","title":"delectus aut autem","userId":1}`} + `{"completed":"false","event_type":"commandJsonOutSample","id":1,` + + `"myCustomAttr":"theValue","title":"delectus aut autem","userId":1}`} testSamples(expectedSamples, load.Entity.Metrics, t) } diff --git a/docs/apis/commands.md b/docs/apis/commands.md index 6aca875e..aba7534f 100644 --- a/docs/apis/commands.md +++ b/docs/apis/commands.md @@ -201,12 +201,10 @@ The `split_output` command as defined above gets two blocks of data to which Fle [ { "event_type": "splitOutputSample", - "integration_name": "com.newrelic.nri-flex", "value": "value" }, { "event_type": "splitOutputSample", - "integration_name": "com.newrelic.nri-flex", "value": "otherValue" } ] diff --git a/docs/apis/url.md b/docs/apis/url.md index 1233828a..adb137a8 100644 --- a/docs/apis/url.md +++ b/docs/apis/url.md @@ -139,8 +139,6 @@ Given the following output for each metric: ```json { "event_type": "ExampleSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "version-number", "id": 1, "completed": "true", "api.StatusCode": 200, diff --git a/docs/basics/functions.md b/docs/basics/functions.md index abe3bb79..c15fe3da 100644 --- a/docs/basics/functions.md +++ b/docs/basics/functions.md @@ -771,8 +771,6 @@ Which would return the following: "api.StatusCode": 200, "customerId": "abc", "event_type": "usageInfoSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", "quantities": 10 }, ] @@ -820,8 +818,6 @@ Which would return the following: "api.StatusCode": 200, "customerId": "xyz", "event_type": "usageInfoSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", "quantities": 20 }, ] @@ -1015,27 +1011,21 @@ Which would return the following: "Value": 200, "accountid": "AccountA", "event_type": "myMetricsSample", - "index": 0, - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT" + "index": 0 }, { "Timestamp": 1585662958000, "Value": 190, "accountid": "AccountA", "event_type": "myMetricsSample", - "index": 1, - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT" + "index": 1 }, { "Timestamp": 1585662959000, "Value": 180, "accountid": "AccountA", "event_type": "myMetricsSample", - "index": 2, - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT" + "index": 2 } ] ``` diff --git a/docs/experimental/functions.md b/docs/experimental/functions.md index 8109ee34..a718d271 100644 --- a/docs/experimental/functions.md +++ b/docs/experimental/functions.md @@ -221,8 +221,6 @@ Which would return the following: "incidentCode": 77, "serviceId": "compute", "event_type": "usageInfoSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", "quantities": 10 }, ] diff --git a/docs/experimental/git_sync.md b/docs/experimental/git_sync.md index de45a434..5b6e5ca5 100644 --- a/docs/experimental/git_sync.md +++ b/docs/experimental/git_sync.md @@ -17,7 +17,6 @@ GIT_TOKEN=13nasdasj13jadf ## Setting in nri-flex-config.yml ```yaml ### /etc/newrelic-infra/integrations.d/nri-flex-config.yml -integration_name: com.newrelic.nri-flex instances: - name: nri-flex diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 0d7aceef..6e814a57 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -69,7 +69,6 @@ INFO[0004] flex: completed processing configs configs=1 { "name": "com.newrelic.nri-flex", "protocol_version": "3", - "integration_version": "1.3.5", "data": [ { "metrics": [ @@ -77,8 +76,6 @@ INFO[0004] flex: completed processing configs configs=1 "avg": 17.491, "event_type": "pingTest", "flex.commandTimeMs": 4029, - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.3.5", "max": 17.55, "min": 17.425, "packetLoss": 0, @@ -137,7 +134,6 @@ The intro section shows a log of how `nri-flex` executed your config file. If yo { "name": "com.newrelic.nri-flex", "protocol_version": "3", - "integration_version": "1.3.5", "data": [ { "metrics": [ @@ -152,8 +148,6 @@ This next section leads into the more interesting part of the payload, but you c "avg": 17.491, "event_type": "pingTest", "flex.commandTimeMs": 4029, - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.3.5", "max": 17.55, "min": 17.425, "packetLoss": 0, @@ -211,7 +205,6 @@ Payload: { "name": "com.newrelic.nri-flex", "protocol_version": "3", - "integration_version": "1.4.1", "data": [ { "metrics": [ @@ -221,8 +214,6 @@ Payload: "error_exec": "echo \"key:5\" \u0026\u0026 sleep 2", "error_msg": "key:5\n", "event_type": "TimeoutSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.4.1" } ], "inventory": {}, diff --git a/examples/Oracle/SiebelCRM/README.md b/examples/Oracle/SiebelCRM/README.md index cd98016c..ca0a8075 100644 --- a/examples/Oracle/SiebelCRM/README.md +++ b/examples/Oracle/SiebelCRM/README.md @@ -65,8 +65,6 @@ This is the same as doing ```list tasks``` in Siebel server manager. "instanceType": "VMware, Inc. VMware7,1", "integrationName": "com.newrelic.nri-flex", "integrationVersion": "1.5.1", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.5.1", "nr.entityType": "HOST", "nr.ingestTimeMs": 1667178571000, "nr.invalidAttributeCount": 2, @@ -167,8 +165,6 @@ This is the same as doing ```list sessions``` in Siebel server manager. "instanceType": "VMware, Inc. VMware7,1", "integrationName": "com.newrelic.nri-flex", "integrationVersion": "1.5.1", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.5.1", "nr.entityType": "HOST", "nr.ingestTimeMs": 1667191082000, "nr.invalidAttributeCount": 2, @@ -266,8 +262,6 @@ This is the same as doing ```server status``` in Siebel server manager. "instanceType": "VMware, Inc. VMware7,1", "integrationName": "com.newrelic.nri-flex", "integrationVersion": "1.5.1", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.5.1", "nr.entityType": "HOST", "nr.ingestTimeMs": 1667191261000, "nr.invalidAttributeCount": 2, @@ -372,8 +366,6 @@ This is the same as doing ```list components``` in Siebel server manager. "instanceType": "VMware, Inc. VMware7,1", "integrationName": "com.newrelic.nri-flex", "integrationVersion": "1.5.1", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.5.1", "nr.entityType": "HOST", "nr.ingestTimeMs": 1667191441000, "nr.invalidAttributeCount": 2, @@ -466,8 +458,6 @@ This is the same as doing ``` statistics``` in Siebel server manager "instanceType": "VMware, Inc. VMware7,1", "integrationName": "com.newrelic.nri-flex", "integrationVersion": "1.5.1", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "1.5.1", "nr.entityType": "HOST", "nr.ingestTimeMs": 1667191531000, "nr.invalidAttributeCount": 2, diff --git a/examples/linux/netdiscover.yml b/examples/linux/netdiscover.yml index 6e20b665..d9842da5 100644 --- a/examples/linux/netdiscover.yml +++ b/examples/linux/netdiscover.yml @@ -60,8 +60,6 @@ integrations: # { # "count": 1, # "event_type": "NetDiscoverSample", -# "integration_name": "com.newrelic.nri-flex", -# "integration_version": "1.0.0", # "ipAddress": "192.168.0.121", # "len": 60, # "macAddress": "b0:59:47:8a:8d:8d", diff --git a/go.mod b/go.mod index 2ff488fa..c4346466 100644 --- a/go.mod +++ b/go.mod @@ -31,8 +31,8 @@ require ( github.com/stretchr/testify v1.11.1 github.com/vertica/vertica-sql-go v1.3.4 go.uber.org/ratelimit v0.3.1 - golang.org/x/crypto v0.37.0 - golang.org/x/net v0.39.0 + golang.org/x/crypto v0.40.0 + golang.org/x/net v0.42.0 gopkg.in/yaml.v2 v2.4.0 gotest.tools v2.2.0+incompatible ) @@ -117,7 +117,7 @@ require ( go.opentelemetry.io/otel/sdk v1.28.0 // indirect go.opentelemetry.io/otel/trace v1.34.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/sys v0.32.0 // indirect + golang.org/x/sys v0.34.0 // indirect golang.org/x/text v0.28.0 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/go.sum b/go.sum index 22be9cc3..98efdd18 100644 --- a/go.sum +++ b/go.sum @@ -24,80 +24,30 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/aws/aws-lambda-go v1.49.0 h1:z4VhTqkFZPM3xpEtTqWqRqsRH4TZBMJqTkRiBPYLqIQ= github.com/aws/aws-lambda-go v1.49.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= -github.com/aws/aws-sdk-go-v2 v1.38.3 h1:B6cV4oxnMs45fql4yRH+/Po/YU+597zgWqvDpYMturk= -github.com/aws/aws-sdk-go-v2 v1.38.3/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= -github.com/aws/aws-sdk-go-v2 v1.39.1 h1:fWZhGAwVRK/fAN2tmt7ilH4PPAE11rDj7HytrmbZ2FE= -github.com/aws/aws-sdk-go-v2 v1.39.1/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= -github.com/aws/aws-sdk-go-v2/config v1.31.6 h1:a1t8fXY4GT4xjyJExz4knbuoxSCacB5hT/WgtfPyLjo= -github.com/aws/aws-sdk-go-v2/config v1.31.6/go.mod h1:5ByscNi7R+ztvOGzeUaIu49vkMk2soq5NaH5PYe33MQ= -github.com/aws/aws-sdk-go-v2/config v1.31.10 h1:7LllDZAegXU3yk41mwM6KcPu0wmjKGQB1bg99bNdQm4= -github.com/aws/aws-sdk-go-v2/config v1.31.10/go.mod h1:Ge6gzXPjqu4v0oHvgAwvGzYcK921GU0hQM25WF/Kl+8= -github.com/aws/aws-sdk-go-v2/config v1.31.11 h1:6QOO1mP0MgytbfKsL/r/gE1P6/c/4pPzrrU3hKxa5fs= -github.com/aws/aws-sdk-go-v2/config v1.31.11/go.mod h1:KzpDsPX/dLxaUzoqM3sN2NOhbQIW4HW/0W8rQA1YFEs= github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8= github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8= -github.com/aws/aws-sdk-go-v2/credentials v1.18.10 h1:xdJnXCouCx8Y0NncgoptztUocIYLKeQxrCgN6x9sdhg= -github.com/aws/aws-sdk-go-v2/credentials v1.18.10/go.mod h1:7tQk08ntj914F/5i9jC4+2HQTAuJirq7m1vZVIhEkWs= -github.com/aws/aws-sdk-go-v2/credentials v1.18.14 h1:TxkI7QI+sFkTItN/6cJuMZEIVMFXeu2dI1ZffkXngKI= -github.com/aws/aws-sdk-go-v2/credentials v1.18.14/go.mod h1:12x4Uw/vijC11XkctTjy92TNCQ+UnNJkT7fzX0Yd93E= -github.com/aws/aws-sdk-go-v2/credentials v1.18.15 h1:Gqy7/05KEfUSulSvwxnB7t8DuZMR3ShzNcwmTD6HOLU= -github.com/aws/aws-sdk-go-v2/credentials v1.18.15/go.mod h1:VWDWSRpYHjcjURRaQ7NUzgeKFN8Iv31+EOMT/W+bFyc= github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6 h1:wbjnrrMnKew78/juW7I2BtKQwa1qlf6EjQgS69uYY14= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6/go.mod h1:AtiqqNrDioJXuUgz3+3T0mBWN7Hro2n9wll2zRUc0ww= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.8 h1:gLD09eaJUdiszm7vd1btiQUYE0Hj+0I2b8AS+75z9AY= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.8/go.mod h1:4RW3oMPt1POR74qVOC4SbubxAwdP4pCT0nSw3jycOU4= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 h1:Mv4Bc0mWmv6oDuSWTKnk+wgeqPL5DRFu5bQL9BGPQ8Y= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9/go.mod h1:IKlKfRppK2a1y0gy1yH6zD+yX5uplJ6UuPlgd48dJiQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 h1:uF68eJA6+S9iVr9WgX1NaRGyQ/6MdIyc4JNUo6TN1FA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6/go.mod h1:qlPeVZCGPiobx8wb1ft0GHT5l+dc6ldnwInDFaMvC7Y= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.8 h1:6bgAZgRyT4RoFWhxS+aoGMFyE0cD1bSzFnEEi4bFPGI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.8/go.mod h1:KcGkXFVU8U28qS4KvLEcPxytPZPBcRawaH2Pf/0jptE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 h1:pa1DEC6JoI0zduhZePp3zmhWvk/xxm4NB8Hy/Tlsgos= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6/go.mod h1:gxEjPebnhWGJoaDdtDkA0JX46VRg1wcTHYe63OfX5pE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.8 h1:HhJYoES3zOz34yWEpGENqJvRVPqpmJyR3+AFg9ybhdY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.8/go.mod h1:JnA+hPWeYAVbDssp83tv+ysAG8lTfLVXvSsyKg/7xNA= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 h1:LHS1YAIJXJ4K9zS+1d/xa9JAA9sL2QyXIQCQFQW/X08= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6/go.mod h1:c9PCiTEuh0wQID5/KqA32J+HAgZxN9tOGXKCiYJjTZI= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.8 h1:M6JI2aGFEzYxsF6CXIuRBnkge9Wf9a2xU39rNeXgu10= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.8/go.mod h1:Fw+MyTwlwjFsSTE31mH211Np+CUslml8mzc0AFEG09s= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= -github.com/aws/aws-sdk-go-v2/service/kms v1.45.1 h1:NhkI4kfcZYmcIM34a+q9drh3aMG1BthkyziOr7sRTv4= -github.com/aws/aws-sdk-go-v2/service/kms v1.45.1/go.mod h1:elyXIFqx79eHvd0cRAzYDYHajeoJEygkBjJto4HJddc= -github.com/aws/aws-sdk-go-v2/service/kms v1.45.5 h1:5AsmehPcxIp+Y8GVRa91UKpu3AO1gxhdckippth6bnA= -github.com/aws/aws-sdk-go-v2/service/kms v1.45.5/go.mod h1:ooAdc5n3rjgEznIXncCYY6V9+YQDcJAYyZDJ4TwLSDM= github.com/aws/aws-sdk-go-v2/service/kms v1.45.6 h1:Br3kil4j7RPW+7LoLVkYt8SuhIWlg6ylmbmzXJ7PgXY= github.com/aws/aws-sdk-go-v2/service/kms v1.45.6/go.mod h1:FKXkHzw1fJZtg1P1qoAIiwen5thz/cDRTTDCIu8ljxc= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 h1:8OLZnVJPvjnrxEwHFg9hVUof/P4sibH+Ea4KKuqAGSg= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.1/go.mod h1:27M3BpVi0C02UiQh1w9nsBEit6pLhlaH3NHna6WUbDE= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.4 h1:FTdEN9dtWPB0EOURNtDPmwGp6GGvMqRJCAihkSl/1No= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.4/go.mod h1:mYubxV9Ff42fZH4kexj43gFPhgc/LyC7KqvUKt1watc= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.5 h1:WwL5YLHabIBuAlEKRoLgqLz1LxTvCEpwsQr7MiW/vnM= -github.com/aws/aws-sdk-go-v2/service/sso v1.29.5/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA= github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 h1:A1oRkiSQOWstGh61y4Wc/yQ04sqrQZr1Si/oAXj20/s= github.com/aws/aws-sdk-go-v2/service/sso v1.29.6/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 h1:gKWSTnqudpo8dAxqBqZnDoDWCiEh/40FziUjr/mo6uA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2/go.mod h1:x7+rkNmRoEN1U13A6JE2fXne9EWyJy54o3n6d4mGaXQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.0 h1:I7ghctfGXrscr7r1Ga/mDqSJKm7Fkpl5Mwq79Z+rZqU= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.0/go.mod h1:Zo9id81XP6jbayIFWNuDpA6lMBWhsVy+3ou2jLa4JnA= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 h1:5fm5RTONng73/QA73LhCNR7UT9RpFH3hR6HWL6bIgVY= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1/go.mod h1:xBEjWD13h+6nq+z4AkqSfSvqRKFgDIQeaMguAJndOWo= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.2 h1:YZPjhyaGzhDQEvsffDEcpycq49nl7fiGcfJTIo8BszI= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.2/go.mod h1:2dIN8qhQfv37BdUYGgEC8Q3tteM3zFxTI1MLO2O3J3c= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.5 h1:+LVB0xBqEgjQoqr9bGZbRzvg212B0f17JdflleJRNR4= -github.com/aws/aws-sdk-go-v2/service/sts v1.38.5/go.mod h1:xoaxeqnnUaZjPjaICgIy5B+MHCSb/ZSOn4MvkFNOUA0= github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 h1:p3jIvqYwUZgu/XYeI48bJxOhvm47hZb5HUQ0tn6Q9kA= github.com/aws/aws-sdk-go-v2/service/sts v1.38.6/go.mod h1:WtKK+ppze5yKPkZ0XwqIVWD4beCwv056ZbPQNoeHqM8= github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= @@ -128,8 +78,6 @@ github.com/denisenkom/go-mssqldb v0.12.3/go.mod h1:k0mtMFOnU+AihqFxPMiF05rtiDror github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v28.4.0+incompatible h1:KVC7bz5zJY/4AZe/78BIvCnPsLaC9T/zh72xnlrTTOk= -github.com/docker/docker v28.4.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v28.5.0+incompatible h1:ZdSQoRUE9XxhFI/B8YLvhnEFMmYN9Pp8Egd2qcaFk1E= github.com/docker/docker v28.5.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -304,8 +252,6 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/vertica/vertica-sql-go v1.3.3 h1:fL+FKEAEy5ONmsvya2WH5T8bhkvY27y/Ik3ReR2T+Qw= -github.com/vertica/vertica-sql-go v1.3.3/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/vertica/vertica-sql-go v1.3.4 h1:Fe9Jjg2uK755Xrn2eyI/cvulMaRmVjaGWBqvrf+EnPY= github.com/vertica/vertica-sql-go v1.3.4/go.mod h1:jnn2GFuv+O2Jcjktb7zyc4Utlbu9YVqpHH/lx63+1M4= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= @@ -343,8 +289,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM= +golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -364,8 +310,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -395,8 +341,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= +golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -406,8 +352,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg= +golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/integration-test/http_linux_test.go b/integration-test/http_linux_test.go index 6934d35a..12346f52 100644 --- a/integration-test/http_linux_test.go +++ b/integration-test/http_linux_test.go @@ -38,8 +38,6 @@ func TestHTTP(t *testing.T) { m := data.Metrics[0] require.Equal(t, "NginxSample", m["event_type"]) require.Contains(t, m, "flex.commandTimeMs") - require.Equal(t, "com.newrelic.nri-flex", m["integration_name"]) - require.Contains(t, m, "integration_version") require.InDelta(t, m["net.connectionsActive"], 43, 0.1) require.InDelta(t, m["net.connectionsReading"], 0, 0.1) require.InDelta(t, m["net.connectionsWaiting"], 38, 0.1) @@ -75,8 +73,6 @@ func TestHTTPS(t *testing.T) { m := data.Metrics[0] require.Equal(t, "NginxSample", m["event_type"]) require.Contains(t, m, "flex.commandTimeMs") - require.Equal(t, "com.newrelic.nri-flex", m["integration_name"]) - require.Contains(t, m, "integration_version") require.InDelta(t, m["net.connectionsActive"], 43, 0.1) require.InDelta(t, m["net.connectionsReading"], 0, 0.1) require.InDelta(t, m["net.connectionsWaiting"], 38, 0.1) diff --git a/internal/load/load.go b/internal/load/load.go index 7b3f044f..2c230588 100644 --- a/internal/load/load.go +++ b/internal/load/load.go @@ -188,19 +188,20 @@ type ConfigEntry struct { // Config YAML Struct type Config struct { - FileName string `yaml:"file_name"` // set when file is read - FilePath string `yaml:"file_path"` // set when file is read - ContainerDiscovery ContainerDiscovery `yaml:"container_discovery"` // provide container discovery parameter at config level - Name string - Global Global - APIs []API - Datastore map[string][]interface{} `yaml:"datastore"` - LookupStore map[string]map[string]struct{} `yaml:"lookup_store"` // ensures uniqueness vs a slice - LookupFile string `yaml:"lookup_file"` - VariableStore map[string]string `yaml:"variable_store"` - Secrets map[string]Secret `yaml:"secrets"` - CustomAttributes map[string]string `yaml:"custom_attributes"` // set additional custom attributes - MetricAPI bool `yaml:"metric_api"` // enable use of the dimensional data models metric api + FileName string `yaml:"file_name"` // set when file is read + FilePath string `yaml:"file_path"` // set when file is read + ContainerDiscovery ContainerDiscovery `yaml:"container_discovery"` // provide container discovery parameter at config level + Name string + Global Global + APIs []API + Datastore map[string][]interface{} `yaml:"datastore"` + LookupStore map[string]map[string]struct{} `yaml:"lookup_store"` // ensures uniqueness vs a slice + LookupFile string `yaml:"lookup_file"` + VariableStore map[string]string `yaml:"variable_store"` + Secrets map[string]Secret `yaml:"secrets"` + EnableLegacyIntegrationAttrs bool `yaml:"enable_legacy_integration_attrs"` // when enabled keep integration_name and integration_version legacy attrs + CustomAttributes map[string]string `yaml:"custom_attributes"` // set additional custom attributes + MetricAPI bool `yaml:"metric_api"` // enable use of the dimensional data models metric api } // Secret Struct diff --git a/internal/processor/create.go b/internal/processor/create.go index 8eae689b..f7abf435 100644 --- a/internal/processor/create.go +++ b/internal/processor/create.go @@ -167,7 +167,7 @@ func CreateMetricSets(samples []interface{}, config *load.Config, i int, mergeMe if !mergeMetric { workingEntity := setEntity(api.Entity, api.EntityType) // default type instance if config.MetricAPI { - AutoSetMetricAPI(¤tSample, &api) + AutoSetMetricAPI(config, ¤tSample, &api) } else { AutoSetStandard(¤tSample, &api, workingEntity, eventType, config) } @@ -378,13 +378,16 @@ func RunKeyFilter(filters []load.Filter, currentSample *map[string]interface{}, } // AutoSetMetricAPI automatically set metrics for use with the metric api -func AutoSetMetricAPI(currentSample *map[string]interface{}, api *load.API) { +func AutoSetMetricAPI(config *load.Config, currentSample *map[string]interface{}, api *load.API) { // set current time currentTime := time.Now().UnixNano() / 1e+6 - // set common attributes - commonAttributes := map[string]interface{}{ - "integration_version": load.IntegrationVersion, - "integration_name": load.IntegrationName, + var commonAttributes map[string]interface{} + if config.EnableLegacyIntegrationAttrs { + // set common attributes + commonAttributes = map[string]interface{}{ + "integration_version": load.IntegrationVersion, + "integration_name": load.IntegrationName, + } } // store numeric values, as metrics within Metrics @@ -524,8 +527,10 @@ func AutoSetStandard(currentSample *map[string]interface{}, api *load.API, worki } // set default attribute(s) - checkError(metricSet.SetMetric("integration_version", load.IntegrationVersion, metric.ATTRIBUTE)) - checkError(metricSet.SetMetric("integration_name", load.IntegrationName, metric.ATTRIBUTE)) + if config.EnableLegacyIntegrationAttrs { + checkError(metricSet.SetMetric("integration_version", load.IntegrationVersion, metric.ATTRIBUTE)) + checkError(metricSet.SetMetric("integration_name", load.IntegrationName, metric.ATTRIBUTE)) + } //add sample metrics for k, v := range *currentSample { diff --git a/test/config_windows/json-read-cmd-example-legacy.yml b/test/config_windows/json-read-cmd-example-legacy.yml new file mode 100644 index 00000000..8c587da2 --- /dev/null +++ b/test/config_windows/json-read-cmd-example-legacy.yml @@ -0,0 +1,10 @@ +name: commandExample +enable_legacy_integration_attrs: true +apis: + - name: commandJsonOut + commands: + # run any command, you could cat .json file, or run some commands that produce a json output + # the example just calls an API that returns json + - run: type ..\..\test\payloads\jsonPlaceholderTodo.json #json output is retrieved from this command + custom_attributes: + myCustomAttr: theValue \ No newline at end of file diff --git a/test/config_windows/v4-integrations-example-legacy.yml b/test/config_windows/v4-integrations-example-legacy.yml new file mode 100644 index 00000000..64863d51 --- /dev/null +++ b/test/config_windows/v4-integrations-example-legacy.yml @@ -0,0 +1,25 @@ +integrations: + - name: nri-flex + config: + enable_legacy_integration_attrs: true + name: splitByTest + apis: + - name: MessageLegacy + commands: + # this is simulating the 'cat' command from linux. + # echo writes windows native newline (\n\r) and flex gets confused thats why we have '&' right after the message + # maybe there's a better way... + - run: echo message:hello& echo value:100& echo error:false + split_by: ":" + - name: nri-flex + config: + enable_legacy_integration_attrs: true + name: splitByTest + apis: + - name: MessageLegacy + commands: + # this is simualting the 'cat' command from linux. + # echo writes windows native newline (\n\r) and flex gets confused thats why we have '&' right after the message + # maybe there's a better way... + - run: echo message::bye& echo value::20.9& echo error::true + split_by: "::" diff --git a/test/configs/json-read-cmd-example-legacy.yml b/test/configs/json-read-cmd-example-legacy.yml new file mode 100644 index 00000000..772fa17c --- /dev/null +++ b/test/configs/json-read-cmd-example-legacy.yml @@ -0,0 +1,10 @@ +name: commandExample +enable_legacy_integration_attrs: true +apis: + - name: commandJsonOut + commands: + # run any command, you could cat .json file, or run some commands that produce a json output + # the example just calls an API that returns json + - run: cat ../../test/payloads/jsonPlaceholderTodo.json #json output is retrieved from this command + custom_attributes: + myCustomAttr: theValue \ No newline at end of file diff --git a/test/configs/json-read-cmd-example.yml b/test/configs/json-read-cmd-example.yml index 09b7783c..e2c170f1 100644 --- a/test/configs/json-read-cmd-example.yml +++ b/test/configs/json-read-cmd-example.yml @@ -1,5 +1,5 @@ name: commandExample -apis: +apis: - name: commandJsonOut commands: # run any command, you could cat .json file, or run some commands that produce a json output diff --git a/test/configs/v4-integrations-example-legacy.yml b/test/configs/v4-integrations-example-legacy.yml new file mode 100644 index 00000000..7947da11 --- /dev/null +++ b/test/configs/v4-integrations-example-legacy.yml @@ -0,0 +1,19 @@ +integrations: + - name: nri-flex + config: + enable_legacy_integration_attrs: true + name: splitByTest + apis: + - name: MessageLegacy + commands: + - run: printf "message:hello\nvalue:100\nerror:false\n" + split_by: ":" + - name: nri-flex + config: + enable_legacy_integration_attrs: true + name: splitByTest + apis: + - name: MessageLegacy + commands: + - run: printf "message::bye\nvalue::20.9\nerror::true\n" + split_by: "::" diff --git a/test/payloadsExpected/configDir.json b/test/payloadsExpected/configDir.json index 37ff31bc..8be37267 100644 --- a/test/payloadsExpected/configDir.json +++ b/test/payloadsExpected/configDir.json @@ -1,4 +1,12 @@ [ + { + "completed": "false", + "event_type": "commandJsonOutSample", + "id": 1, + "myCustomAttr": "theValue", + "title": "delectus aut autem", + "userId": 1 + }, { "completed": "false", "event_type": "commandJsonOutSample", @@ -12,16 +20,28 @@ { "error": "false", "event_type": "MessageSample", + "message": "hello", + "value": 100 + }, + { + "error": "true", + "event_type": "MessageSample", + "message": "bye", + "value": 20.9 + }, + { + "error": "false", "integration_name": "com.newrelic.nri-flex", "integration_version": "Unknown-SNAPSHOT", + "event_type": "MessageLegacySample", "message": "hello", "value": 100 }, { "error": "true", - "event_type": "MessageSample", "integration_name": "com.newrelic.nri-flex", "integration_version": "Unknown-SNAPSHOT", + "event_type": "MessageLegacySample", "message": "bye", "value": 20.9 } diff --git a/test/payloadsExpected/configFile.json b/test/payloadsExpected/configFile.json index 73b3cbf2..5dca83c5 100644 --- a/test/payloadsExpected/configFile.json +++ b/test/payloadsExpected/configFile.json @@ -3,8 +3,6 @@ "completed": "false", "event_type": "commandJsonOutSample", "id": 1, - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", "myCustomAttr": "theValue", "title": "delectus aut autem", "userId": 1 diff --git a/test/payloadsExpected/configFileV4.json b/test/payloadsExpected/configFileV4.json index 71ffa15d..eaf38f93 100644 --- a/test/payloadsExpected/configFileV4.json +++ b/test/payloadsExpected/configFileV4.json @@ -2,16 +2,12 @@ { "error": "false", "event_type": "MessageSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", "message": "hello", "value": 100 }, { "error": "true", "event_type": "MessageSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", "message": "bye", "value": 20.9 } diff --git a/test/payloadsExpected/ecsTaskStateChange.json b/test/payloadsExpected/ecsTaskStateChange.json index bcc8be54..9bdf2923 100644 --- a/test/payloadsExpected/ecsTaskStateChange.json +++ b/test/payloadsExpected/ecsTaskStateChange.json @@ -1,56 +1,52 @@ [ { - "aws.account": 123456789012, - "aws.api.StatusCode": 200, - "aws.detail-type": "ECS Task State Change", - "aws.id": "f8a990c2-2f93-4713-8b5d-d5b96f35bfd7", - "aws.region": "us-east-1", - "aws.resources": "[arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf]", - "aws.source": "aws.ecs", - "aws.time": "2016-09-15T21:57:35Z", - "aws.version": 0, - "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/40a3b4bd-79ae-4472-a0be-816e5e0044a0", - "detail.clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/cluster1", - "detail.containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec", - "detail.createdAt": "2016-09-15T21:30:33.3Z", - "detail.desiredStatus": "RUNNING", - "detail.lastStatus": "PENDING", - "detail.taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf", - "detail.taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1", - "detail.updatedAt": "2016-09-15T21:30:33.3Z", - "detail.version": 1, - "event_type": "EcsTaskChangeSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", - "lastStatus": "PENDING", - "name": "test", - "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf" + "aws.account": 123456789012, + "aws.api.StatusCode": 200, + "aws.detail-type": "ECS Task State Change", + "aws.id": "f8a990c2-2f93-4713-8b5d-d5b96f35bfd7", + "aws.region": "us-east-1", + "aws.resources": "[arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf]", + "aws.source": "aws.ecs", + "aws.time": "2016-09-15T21:57:35Z", + "aws.version": 0, + "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/40a3b4bd-79ae-4472-a0be-816e5e0044a0", + "detail.clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/cluster1", + "detail.containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec", + "detail.createdAt": "2016-09-15T21:30:33.3Z", + "detail.desiredStatus": "RUNNING", + "detail.lastStatus": "PENDING", + "detail.taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf", + "detail.taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1", + "detail.updatedAt": "2016-09-15T21:30:33.3Z", + "detail.version": 1, + "event_type": "EcsTaskChangeSample", + "lastStatus": "PENDING", + "name": "test", + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf" }, { - "aws.account": 123456789012, - "aws.api.StatusCode": 200, - "aws.detail-type": "ECS Task State Change", - "aws.id": "f8a990c2-2f93-4713-8b5d-d5b96f35bfd7", - "aws.region": "us-east-1", - "aws.resources": "[arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf]", - "aws.source": "aws.ecs", - "aws.time": "2016-09-15T21:57:35Z", - "aws.version": 0, - "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/50a3b4bd-eqre-4472-a0be-qeqwe", - "detail.clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/cluster1", - "detail.containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec", - "detail.createdAt": "2016-09-15T21:30:33.3Z", - "detail.desiredStatus": "RUNNING", - "detail.lastStatus": "PENDING", - "detail.taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf", - "detail.taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1", - "detail.updatedAt": "2016-09-15T21:30:33.3Z", - "detail.version": 1, - "event_type": "EcsTaskChangeSample", - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", - "lastStatus": "PENDING", - "name": "abc", - "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-adfa-32aa-b9c1-qwerqe" + "aws.account": 123456789012, + "aws.api.StatusCode": 200, + "aws.detail-type": "ECS Task State Change", + "aws.id": "f8a990c2-2f93-4713-8b5d-d5b96f35bfd7", + "aws.region": "us-east-1", + "aws.resources": "[arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf]", + "aws.source": "aws.ecs", + "aws.time": "2016-09-15T21:57:35Z", + "aws.version": 0, + "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/50a3b4bd-eqre-4472-a0be-qeqwe", + "detail.clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/cluster1", + "detail.containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec", + "detail.createdAt": "2016-09-15T21:30:33.3Z", + "detail.desiredStatus": "RUNNING", + "detail.lastStatus": "PENDING", + "detail.taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf", + "detail.taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1", + "detail.updatedAt": "2016-09-15T21:30:33.3Z", + "detail.version": 1, + "event_type": "EcsTaskChangeSample", + "lastStatus": "PENDING", + "name": "abc", + "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/3102878e-adfa-32aa-b9c1-qwerqe" } ] \ No newline at end of file diff --git a/test/payloadsExpected/squidMgrTest.json b/test/payloadsExpected/squidMgrTest.json index e00b9ead..b06e616c 100644 --- a/test/payloadsExpected/squidMgrTest.json +++ b/test/payloadsExpected/squidMgrTest.json @@ -32,8 +32,6 @@ "icp.replies_recv": 0, "icp.replies_sent": 0, "icp.reply_median_svc_time": 0, - "integration_name": "com.newrelic.nri-flex", - "integration_version": "Unknown-SNAPSHOT", "median_select_fds": 0, "page_faults": 0, "sample_end_time": 1552864914, diff --git a/test/testbed/scenarios/fixtures/command_api.go b/test/testbed/scenarios/fixtures/command_api.go index bc790052..36b25a94 100644 --- a/test/testbed/scenarios/fixtures/command_api.go +++ b/test/testbed/scenarios/fixtures/command_api.go @@ -26,7 +26,7 @@ integrations: regex_match: true split_by: (\S+) `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"FileName":"apt.conf.d","event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"auth.conf.d","event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"keyrings","event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"preferences.d","event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"sources.list","event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"sources.list.d","event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"trusted.gpg.d","event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"551daa101010","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":50,"flex.time.endMs":1654007859822,"flex.time.startMs":1654007859772}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"FileName":"apt.conf.d","event_type":"LinuxFileList"},{"FileName":"auth.conf.d","event_type":"LinuxFileList"},{"FileName":"keyrings","event_type":"LinuxFileList"},{"FileName":"preferences.d","event_type":"LinuxFileList"},{"FileName":"sources.list","event_type":"LinuxFileList"},{"FileName":"sources.list.d","event_type":"LinuxFileList"},{"FileName":"trusted.gpg.d","event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"551daa101010","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":50,"flex.time.endMs":1654007859822,"flex.time.startMs":1654007859772}],"inventory":{},"events":[]}]}`, }, { Name: "Linux file list of the /etc/apt directory removing header", @@ -47,7 +47,7 @@ integrations: regex_match: false split_by: \s+ `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"keyrings","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"preferences.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"sources.list","Group":"root","Owner":"root","Permissions":"-rw-r--r--","Size":2477,"Type":1,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"sources.list.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"trusted.gpg.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"192a822e9207","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":49,"flex.time.endMs":1668597855728,"flex.time.startMs":1908597855679}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"keyrings","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"preferences.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"sources.list","Group":"root","Owner":"root","Permissions":"-rw-r--r--","Size":2477,"Type":1,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"sources.list.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"trusted.gpg.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"192a822e9207","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":49,"flex.time.endMs":1668597855728,"flex.time.startMs":1908597855679}],"inventory":{},"events":[]}]}`, }, { Name: "Linux file list of the /etc/apt directory filtering lines", @@ -69,7 +69,7 @@ integrations: regex_match: false split_by: \s+ `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"952eb193a212","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":2,"flex.time.elapsedMs":50,"flex.time.endMs":1666020132212,"flex.time.startMs":1666020132162}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"952eb193a212","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":2,"flex.time.elapsedMs":50,"flex.time.endMs":1666020132212,"flex.time.startMs":1666020132162}],"inventory":{},"events":[]}]}`, }, { Name: "Linux filesystem usage", @@ -99,7 +99,7 @@ integrations: split_by: (\S+.\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*) perc_to_decimal: true `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"availableBytes":"Available","capacityBytes":"1-blocks","event_type":"linuxFilesystemSample","fs":"Filesystem","fsType":"Type","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","mountedOn":"Mounted on","usedBytes":"Used","usedPerc":"Capacity"},{"availableBytes":3847839744,"capacityBytes":41921515520,"event_type":"linuxFilesystemSample","fs":"overlay","fsType":"overlay","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","mountedOn":"/","usedBytes":38073675776,"usedPerc":91},{"event_type":"flexStatusSample","flex.Hostname":"0a8c4028be4f","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":2,"flex.time.elapsedMs":57,"flex.time.endMs":1654009494052,"flex.time.startMs":1654009493995}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"availableBytes":"Available","capacityBytes":"1-blocks","event_type":"linuxFilesystemSample","fs":"Filesystem","fsType":"Type","mountedOn":"Mounted on","usedBytes":"Used","usedPerc":"Capacity"},{"availableBytes":3847839744,"capacityBytes":41921515520,"event_type":"linuxFilesystemSample","fs":"overlay","fsType":"overlay","mountedOn":"/","usedBytes":38073675776,"usedPerc":91},{"event_type":"flexStatusSample","flex.Hostname":"0a8c4028be4f","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":2,"flex.time.elapsedMs":57,"flex.time.endMs":1654009494052,"flex.time.startMs":1654009493995}],"inventory":{},"events":[]}]}`, }, { Name: "Linux filesystem usage mock using printf and splitting header", @@ -118,7 +118,7 @@ apis: split_by: \s+ perc_to_decimal: true `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"1K-blocks":40938980,"Available":3159696,"Filesystem":"fuse-overlayfs","Mounted":"/","Type":"fuse.fuse-overlayfs","Use":93,"Used":37779284,"event_type":"linuxFilesystemSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654698466033,"flex.time.startMs":1654698465984}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"1K-blocks":40938980,"Available":3159696,"Filesystem":"fuse-overlayfs","Mounted":"/","Type":"fuse.fuse-overlayfs","Use":93,"Used":37779284,"event_type":"linuxFilesystemSample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654698466033,"flex.time.startMs":1654698465984}],"inventory":{},"events":[]}]}`, }, { Name: "Echo message with assert pattern", @@ -138,7 +138,7 @@ integrations: match: hi not_match: foo `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, }, { Name: "Print message, store_variable and store_lookups", @@ -163,7 +163,7 @@ integrations: commands: - run: printf '{"different_node":${lookup:nodeId}}\n' `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"postSample","id":123,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","node":456},{"different_id":123,"event_type":"readIDInfo2Sample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"different_node":456,"event_type":"readIDInfo3Sample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":1,"flex.counter.readIDInfo2Sample":1,"flex.counter.readIDInfo3Sample":1,"flex.time.elapsedMs":165,"flex.time.endMs":1654776136702,"flex.time.startMs":1654776136537}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"postSample","id":123,"node":456},{"different_id":123,"event_type":"readIDInfo2Sample"},{"different_node":456,"event_type":"readIDInfo3Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":1,"flex.counter.readIDInfo2Sample":1,"flex.counter.readIDInfo3Sample":1,"flex.time.elapsedMs":165,"flex.time.endMs":1654776136702,"flex.time.startMs":1654776136537}],"inventory":{},"events":[]}]}`, }, { Name: "Print message and lookup", @@ -181,7 +181,7 @@ integrations: commands: - run: printf '{"different_id":${lookup.postSample:id}}\n' `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"postSample","id":123,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"postSample","id":456,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"different_id":123,"event_type":"readIDInfo2Sample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"different_id":456,"event_type":"readIDInfo2Sample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":2,"flex.time.elapsedMs":52,"flex.time.endMs":1654775074784,"flex.time.startMs":1654775074732}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"postSample","id":123},{"event_type":"postSample","id":456},{"different_id":123,"event_type":"readIDInfo2Sample"},{"different_id":456,"event_type":"readIDInfo2Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":2,"flex.time.elapsedMs":52,"flex.time.endMs":1654775074784,"flex.time.startMs":1654775074732}],"inventory":{},"events":[]}]}`, }, { Name: "Print message, lookup and dedupe_lookups", @@ -201,7 +201,7 @@ integrations: dedupe_lookups: - id `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"postSample","id":123,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"postSample","id":123,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"different_id":123,"event_type":"readIDInfo2Sample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":1,"flex.time.elapsedMs":144,"flex.time.endMs":1654775565835,"flex.time.startMs":1654775565691}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"postSample","id":123},{"event_type":"postSample","id":123},{"different_id":123,"event_type":"readIDInfo2Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":1,"flex.time.elapsedMs":144,"flex.time.endMs":1654775565835,"flex.time.startMs":1654775565691}],"inventory":{},"events":[]}]}`, }, { Name: "Echo message and convert value to upper case", @@ -220,7 +220,7 @@ integrations: value_to_upper: - hi `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"BYE","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"BYE"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, }, { Name: "Echo message and convert value to lower case", @@ -239,6 +239,6 @@ integrations: value_to_lower: - hi `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, }, } diff --git a/test/testbed/scenarios/fixtures/file_api.go b/test/testbed/scenarios/fixtures/file_api.go index baaf7517..5a92ecc5 100644 --- a/test/testbed/scenarios/fixtures/file_api.go +++ b/test/testbed/scenarios/fixtures/file_api.go @@ -19,7 +19,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":45,"flex.time.endMs":1654704471027,"flex.time.startMs":1654704470982}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":45,"flex.time.endMs":1654704471027,"flex.time.startMs":1654704470982}],"inventory":{},"events":[]}]}`, }, { Name: "Use sample_filter to skip metrics", @@ -34,7 +34,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":47,"flex.time.endMs":1654705788545,"flex.time.startMs":1654705788498}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":47,"flex.time.endMs":1654705788545,"flex.time.startMs":1654705788498}],"inventory":{},"events":[]}]}`, }, { Name: "Use sample_include_filter to get key", @@ -49,7 +49,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"customerId":"abc","env":"production","event_type":"usageInfoSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","quantities":10},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654706477610,"flex.time.startMs":1654706477602}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"customerId":"abc","env":"production","event_type":"usageInfoSample","quantities":10},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654706477610,"flex.time.startMs":1654706477602}],"inventory":{},"events":[]}]}`, }, { Name: "Use sample_exclude_filter to exclude key", @@ -64,7 +64,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"customerId":"xyz","env":"production","event_type":"usageInfoSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","quantities":20},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654706661615,"flex.time.startMs":1654706661566}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"customerId":"xyz","env":"production","event_type":"usageInfoSample","quantities":20},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654706661615,"flex.time.startMs":1654706661566}],"inventory":{},"events":[]}]}`, }, { Name: "Provide start_key and rename_key of json", @@ -81,7 +81,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"env":"production","event_type":"readEtcdSelfLeaderInfoSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","leader":"8a67814500","timestamp":1588232295,"uptime":3600},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654699825870,"flex.time.startMs":1654699825862}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"env":"production","event_type":"readEtcdSelfLeaderInfoSample","leader":"8a67814500","timestamp":1588232295,"uptime":3600},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654699825870,"flex.time.startMs":1654699825862}],"inventory":{},"events":[]}]}`, }, { Name: "Use keep_keys with jq", @@ -97,7 +97,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","leader":"8a67814500"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":9,"flex.time.endMs":1654703090744,"flex.time.startMs":1654703090735}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","leader":"8a67814500"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":9,"flex.time.endMs":1654703090744,"flex.time.startMs":1654703090735}],"inventory":{},"events":[]}]}`, }, { Name: "Use lazy_flatten with math and remove_key", @@ -116,7 +116,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"contacts.flat.0.name":"batman","contacts.flat.0.number":911,"contacts.flat.1.number":112,"env":"production","event_type":"readEtcdSelfLeaderInfoSample","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","sum":1223},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":57,"flex.time.endMs":1654705302291,"flex.time.startMs":1654705302234}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"contacts.flat.0.name":"batman","contacts.flat.0.number":911,"contacts.flat.1.number":112,"env":"production","event_type":"readEtcdSelfLeaderInfoSample","sum":1223},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":57,"flex.time.endMs":1654705302291,"flex.time.startMs":1654705302234}],"inventory":{},"events":[]}]}`, }, { Name: "Use snake_to_camel and split_objects", @@ -129,7 +129,7 @@ apis: snake_to_camel: true split_objects: true `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"Sample","id":"eca01566","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node1","split.id":"first"},{"event_type":"Sample","id":"eca04ea31566","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node2","split.id":"second"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.Sample":2,"flex.time.elapsedMs":45,"flex.time.endMs":1654761239572,"flex.time.startMs":1654761239527}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"Sample","id":"eca01566","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node1","split.id":"first"},{"event_type":"Sample","id":"eca04ea31566","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node2","split.id":"second"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.Sample":2,"flex.time.elapsedMs":45,"flex.time.endMs":1654761239572,"flex.time.startMs":1654761239527}],"inventory":{},"events":[]}]}`, }, { Name: "Use to_lower, strip_keys, value_parser and value_transformer", @@ -148,7 +148,7 @@ apis: value_transformer: id: 12345 `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","id":12345,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","leaderinfo.abc.def1":123,"leaderinfo.abc.def2":234,"leaderinfo.starttime":"2014-10-24T13:15:51.186620747-07:00","leaderinfo.uptime":"10m59.322358947s"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":3,"flex.time.endMs":1654769186564,"flex.time.startMs":1654769186561}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","id":12345,"leaderinfo.abc.def1":123,"leaderinfo.abc.def2":234,"leaderinfo.starttime":"2014-10-24T13:15:51.186620747-07:00","leaderinfo.uptime":"10m59.322358947s"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":3,"flex.time.endMs":1654769186564,"flex.time.startMs":1654769186561}],"inventory":{},"events":[]}]}`, }, { Name: "Use split_array", @@ -164,7 +164,7 @@ apis: start_key: - results>data `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"HOSTNAME":"7605f6bec898","HOST_ID":0,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"HOSTNAME":"067ea6fc4c22","HOST_ID":2,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"HOSTNAME":"62a10d3f45e3","HOST_ID":1,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.voltdb":3,"flex.time.elapsedMs":45,"flex.time.endMs":1654776591203,"flex.time.startMs":1654776591158}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"HOSTNAME":"7605f6bec898","HOST_ID":0,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"HOSTNAME":"067ea6fc4c22","HOST_ID":2,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"HOSTNAME":"62a10d3f45e3","HOST_ID":1,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.voltdb":3,"flex.time.elapsedMs":45,"flex.time.endMs":1654776591203,"flex.time.startMs":1654776591158}],"inventory":{},"events":[]}]}`, }, { Name: "Use lookup", @@ -181,6 +181,6 @@ apis: - run: echo "${lookup.read:brand}:${lookup.read:car}" split_by: ":" `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"brand":"honda","car":"civic","event_type":"read","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"brand":"toyota","car":"supra","event_type":"read","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"brand":"mistsubishi","car":"lancer","event_type":"read","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"worldSample","flex.commandTimeMs":3,"honda":"civic","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT"},{"event_type":"worldSample","flex.commandTimeMs":0,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","toyota":"supra"},{"event_type":"worldSample","flex.commandTimeMs":0,"integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","mistsubishi":"lancer"},{"event_type":"flexStatusSample","flex.Hostname":"ubuntu-2004-vm","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":6,"flex.counter.EventDropCount":0,"flex.counter.read":3,"flex.counter.worldSample":3,"flex.time.elapsedMs":22,"flex.time.endMs":1672415688172,"flex.time.startMs":1672415688150}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"brand":"honda","car":"civic","event_type":"read"},{"brand":"toyota","car":"supra","event_type":"read"},{"brand":"mistsubishi","car":"lancer","event_type":"read"},{"event_type":"worldSample","flex.commandTimeMs":3,"honda":"civic"},{"event_type":"worldSample","flex.commandTimeMs":0,"toyota":"supra"},{"event_type":"worldSample","flex.commandTimeMs":0,"mistsubishi":"lancer"},{"event_type":"flexStatusSample","flex.Hostname":"ubuntu-2004-vm","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":6,"flex.counter.EventDropCount":0,"flex.counter.read":3,"flex.counter.worldSample":3,"flex.time.elapsedMs":22,"flex.time.endMs":1672415688172,"flex.time.startMs":1672415688150}],"inventory":{},"events":[]}]}`, }, } diff --git a/test/testbed/scenarios/fixtures/url_api.go b/test/testbed/scenarios/fixtures/url_api.go index a15dbad1..17de8c0a 100644 --- a/test/testbed/scenarios/fixtures/url_api.go +++ b/test/testbed/scenarios/fixtures/url_api.go @@ -30,7 +30,7 @@ integrations: add_attribute: newAttr: myNewAttr_${detail.desiredStatus} `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"1.4.4","data":[{"metrics":[{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/40a3b4bd-79ae-4472-a0be-816e5e0044a0","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","integration_name":"com.newrelic.nri-flex","integration_version":"1.4.4","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/50a3b4bd-eqre-4472-a0be-qeqwe","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","integration_name":"com.newrelic.nri-flex","integration_version":"1.4.4","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"abc","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-adfa-32-b9c1-qwerqe","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"commandSamples":"[map[:command1] map[:command2]]","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"environmentSamples":"[map[name:env1 value:value1] map[name:env2 value:value2]]","event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","integration_name":"com.newrelic.nri-flex","integration_version":"1.4.4","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","account":123456789012,"api.StatusCode":200,"detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","integration_name":"com.newrelic.nri-flex","integration_version":"1.4.4","myCustAttr":"myCustVal","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"event_type":"flexStatusSample","flex.Hostname":"rocky","flex.IntegrationVersion":"1.4.4","flex.counter.ConfigsProcessed":1,"flex.counter.EcsTaskChangeSample":4,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.time.elapsedMs":48,"flex.time.endMs":1654079094326,"flex.time.startMs":1654079094278}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/40a3b4bd-79ae-4472-a0be-816e5e0044a0","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/50a3b4bd-eqre-4472-a0be-qeqwe","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"abc","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-adfa-32-b9c1-qwerqe","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"commandSamples":"[map[:command1] map[:command2]]","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"environmentSamples":"[map[name:env1 value:value1] map[name:env2 value:value2]]","event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","account":123456789012,"api.StatusCode":200,"detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","myCustAttr":"myCustVal","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"event_type":"flexStatusSample","flex.Hostname":"rocky","flex.IntegrationVersion":"1.4.4","flex.counter.ConfigsProcessed":1,"flex.counter.EcsTaskChangeSample":4,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.time.elapsedMs":48,"flex.time.endMs":1654079094326,"flex.time.startMs":1654079094278}],"inventory":{},"events":[]}]}`, }, { Name: "API and convert spaces", @@ -48,6 +48,6 @@ integrations: url: http://127.0.0.1:8001/leaderinfo convert_space: "_" `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"api.StatusCode":200,"event_type":"TestURL","id":"eca0338f4ea31566","integration_name":"com.newrelic.nri-flex","integration_version":"Unknown-SNAPSHOT","leader_info.abc.def":123,"leader_info.abc.hij":234,"leader_info.leader":"8a69d5f6b7814500","leader_info.start_time":"2014-10-24T13:15:51.186620747-07:00","leader_info.uptime":"10m59.322358947s","name":"node3"},{"event_type":"flexStatusSample","flex.Hostname":"d43822b4a811","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.counter.TestURL":1,"flex.time.elapsedMs":7,"flex.time.endMs":1654770857187,"flex.time.startMs":1654770857180}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"api.StatusCode":200,"event_type":"TestURL","id":"eca0338f4ea31566","leader_info.abc.def":123,"leader_info.abc.hij":234,"leader_info.leader":"8a69d5f6b7814500","leader_info.start_time":"2014-10-24T13:15:51.186620747-07:00","leader_info.uptime":"10m59.322358947s","name":"node3"},{"event_type":"flexStatusSample","flex.Hostname":"d43822b4a811","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.counter.TestURL":1,"flex.time.elapsedMs":7,"flex.time.endMs":1654770857187,"flex.time.startMs":1654770857180}],"inventory":{},"events":[]}]}`, }, } From a259169635a61bbbbe8d9d0013531b27a6e1ce6a Mon Sep 17 00:00:00 2001 From: Rohan Yadav Date: Thu, 9 Oct 2025 13:02:22 +0530 Subject: [PATCH 2/3] address review comments --- docs/troubleshooting.md | 3 +++ .../testbed/scenarios/fixtures/command_api.go | 22 +++++++++---------- test/testbed/scenarios/fixtures/file_api.go | 22 +++++++++---------- test/testbed/scenarios/fixtures/url_api.go | 4 ++-- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 6e814a57..269cab69 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -69,6 +69,7 @@ INFO[0004] flex: completed processing configs configs=1 { "name": "com.newrelic.nri-flex", "protocol_version": "3", + "integration_version": "1.3.5", "data": [ { "metrics": [ @@ -134,6 +135,7 @@ The intro section shows a log of how `nri-flex` executed your config file. If yo { "name": "com.newrelic.nri-flex", "protocol_version": "3", + "integration_version": "1.3.5", "data": [ { "metrics": [ @@ -205,6 +207,7 @@ Payload: { "name": "com.newrelic.nri-flex", "protocol_version": "3", + "integration_version": "1.4.1", "data": [ { "metrics": [ diff --git a/test/testbed/scenarios/fixtures/command_api.go b/test/testbed/scenarios/fixtures/command_api.go index 36b25a94..f5b745d8 100644 --- a/test/testbed/scenarios/fixtures/command_api.go +++ b/test/testbed/scenarios/fixtures/command_api.go @@ -26,7 +26,7 @@ integrations: regex_match: true split_by: (\S+) `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"FileName":"apt.conf.d","event_type":"LinuxFileList"},{"FileName":"auth.conf.d","event_type":"LinuxFileList"},{"FileName":"keyrings","event_type":"LinuxFileList"},{"FileName":"preferences.d","event_type":"LinuxFileList"},{"FileName":"sources.list","event_type":"LinuxFileList"},{"FileName":"sources.list.d","event_type":"LinuxFileList"},{"FileName":"trusted.gpg.d","event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"551daa101010","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":50,"flex.time.endMs":1654007859822,"flex.time.startMs":1654007859772}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"FileName":"apt.conf.d","event_type":"LinuxFileList"},{"FileName":"auth.conf.d","event_type":"LinuxFileList"},{"FileName":"keyrings","event_type":"LinuxFileList"},{"FileName":"preferences.d","event_type":"LinuxFileList"},{"FileName":"sources.list","event_type":"LinuxFileList"},{"FileName":"sources.list.d","event_type":"LinuxFileList"},{"FileName":"trusted.gpg.d","event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"551daa101010","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":50,"flex.time.endMs":1654007859822,"flex.time.startMs":1654007859772}],"inventory":{},"events":[]}]}`, }, { Name: "Linux file list of the /etc/apt directory removing header", @@ -47,7 +47,7 @@ integrations: regex_match: false split_by: \s+ `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"keyrings","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"preferences.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"sources.list","Group":"root","Owner":"root","Permissions":"-rw-r--r--","Size":2477,"Type":1,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"sources.list.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"trusted.gpg.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"192a822e9207","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":49,"flex.time.endMs":1668597855728,"flex.time.startMs":1908597855679}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"keyrings","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"preferences.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"sources.list","Group":"root","Owner":"root","Permissions":"-rw-r--r--","Size":2477,"Type":1,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"sources.list.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"trusted.gpg.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"192a822e9207","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":7,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":7,"flex.time.elapsedMs":49,"flex.time.endMs":1668597855728,"flex.time.startMs":1908597855679}],"inventory":{},"events":[]}]}`, }, { Name: "Linux file list of the /etc/apt directory filtering lines", @@ -69,7 +69,7 @@ integrations: regex_match: false split_by: \s+ `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"952eb193a212","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":2,"flex.time.elapsedMs":50,"flex.time.endMs":1666020132212,"flex.time.startMs":1666020132162}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"FileName":"apt.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"FileName":"auth.conf.d","Group":"root","Owner":"root","Permissions":"drwxr-xr-x","Size":4096,"Type":2,"Year":2022,"event_type":"LinuxFileList"},{"event_type":"flexStatusSample","flex.Hostname":"952eb193a212","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.LinuxFileList":2,"flex.time.elapsedMs":50,"flex.time.endMs":1666020132212,"flex.time.startMs":1666020132162}],"inventory":{},"events":[]}]}`, }, { Name: "Linux filesystem usage", @@ -99,7 +99,7 @@ integrations: split_by: (\S+.\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*) perc_to_decimal: true `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"availableBytes":"Available","capacityBytes":"1-blocks","event_type":"linuxFilesystemSample","fs":"Filesystem","fsType":"Type","mountedOn":"Mounted on","usedBytes":"Used","usedPerc":"Capacity"},{"availableBytes":3847839744,"capacityBytes":41921515520,"event_type":"linuxFilesystemSample","fs":"overlay","fsType":"overlay","mountedOn":"/","usedBytes":38073675776,"usedPerc":91},{"event_type":"flexStatusSample","flex.Hostname":"0a8c4028be4f","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":2,"flex.time.elapsedMs":57,"flex.time.endMs":1654009494052,"flex.time.startMs":1654009493995}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"availableBytes":"Available","capacityBytes":"1-blocks","event_type":"linuxFilesystemSample","fs":"Filesystem","fsType":"Type","mountedOn":"Mounted on","usedBytes":"Used","usedPerc":"Capacity"},{"availableBytes":3847839744,"capacityBytes":41921515520,"event_type":"linuxFilesystemSample","fs":"overlay","fsType":"overlay","mountedOn":"/","usedBytes":38073675776,"usedPerc":91},{"event_type":"flexStatusSample","flex.Hostname":"0a8c4028be4f","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":2,"flex.time.elapsedMs":57,"flex.time.endMs":1654009494052,"flex.time.startMs":1654009493995}],"inventory":{},"events":[]}]}`, }, { Name: "Linux filesystem usage mock using printf and splitting header", @@ -118,7 +118,7 @@ apis: split_by: \s+ perc_to_decimal: true `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"1K-blocks":40938980,"Available":3159696,"Filesystem":"fuse-overlayfs","Mounted":"/","Type":"fuse.fuse-overlayfs","Use":93,"Used":37779284,"event_type":"linuxFilesystemSample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654698466033,"flex.time.startMs":1654698465984}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"1K-blocks":40938980,"Available":3159696,"Filesystem":"fuse-overlayfs","Mounted":"/","Type":"fuse.fuse-overlayfs","Use":93,"Used":37779284,"event_type":"linuxFilesystemSample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.linuxFilesystemSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654698466033,"flex.time.startMs":1654698465984}],"inventory":{},"events":[]}]}`, }, { Name: "Echo message with assert pattern", @@ -138,7 +138,7 @@ integrations: match: hi not_match: foo `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, }, { Name: "Print message, store_variable and store_lookups", @@ -163,7 +163,7 @@ integrations: commands: - run: printf '{"different_node":${lookup:nodeId}}\n' `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"postSample","id":123,"node":456},{"different_id":123,"event_type":"readIDInfo2Sample"},{"different_node":456,"event_type":"readIDInfo3Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":1,"flex.counter.readIDInfo2Sample":1,"flex.counter.readIDInfo3Sample":1,"flex.time.elapsedMs":165,"flex.time.endMs":1654776136702,"flex.time.startMs":1654776136537}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"postSample","id":123,"node":456},{"different_id":123,"event_type":"readIDInfo2Sample"},{"different_node":456,"event_type":"readIDInfo3Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":1,"flex.counter.readIDInfo2Sample":1,"flex.counter.readIDInfo3Sample":1,"flex.time.elapsedMs":165,"flex.time.endMs":1654776136702,"flex.time.startMs":1654776136537}],"inventory":{},"events":[]}]}`, }, { Name: "Print message and lookup", @@ -181,7 +181,7 @@ integrations: commands: - run: printf '{"different_id":${lookup.postSample:id}}\n' `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"postSample","id":123},{"event_type":"postSample","id":456},{"different_id":123,"event_type":"readIDInfo2Sample"},{"different_id":456,"event_type":"readIDInfo2Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":2,"flex.time.elapsedMs":52,"flex.time.endMs":1654775074784,"flex.time.startMs":1654775074732}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"postSample","id":123},{"event_type":"postSample","id":456},{"different_id":123,"event_type":"readIDInfo2Sample"},{"different_id":456,"event_type":"readIDInfo2Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":2,"flex.time.elapsedMs":52,"flex.time.endMs":1654775074784,"flex.time.startMs":1654775074732}],"inventory":{},"events":[]}]}`, }, { Name: "Print message, lookup and dedupe_lookups", @@ -201,7 +201,7 @@ integrations: dedupe_lookups: - id `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"postSample","id":123},{"event_type":"postSample","id":123},{"different_id":123,"event_type":"readIDInfo2Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":1,"flex.time.elapsedMs":144,"flex.time.endMs":1654775565835,"flex.time.startMs":1654775565691}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"postSample","id":123},{"event_type":"postSample","id":123},{"different_id":123,"event_type":"readIDInfo2Sample"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.postSample":2,"flex.counter.readIDInfo2Sample":1,"flex.time.elapsedMs":144,"flex.time.endMs":1654775565835,"flex.time.startMs":1654775565691}],"inventory":{},"events":[]}]}`, }, { Name: "Echo message and convert value to upper case", @@ -220,7 +220,7 @@ integrations: value_to_upper: - hi `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"BYE"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"BYE"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, }, { Name: "Echo message and convert value to lower case", @@ -239,6 +239,6 @@ integrations: value_to_lower: - hi `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"echoMessage","flex.commandTimeMs":3,"hi":"bye"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.echoMessage":1,"flex.time.elapsedMs":40,"flex.time.endMs":1654696788571,"flex.time.startMs":1654696788531}],"inventory":{},"events":[]}]}`, }, } diff --git a/test/testbed/scenarios/fixtures/file_api.go b/test/testbed/scenarios/fixtures/file_api.go index 5a92ecc5..c9be430f 100644 --- a/test/testbed/scenarios/fixtures/file_api.go +++ b/test/testbed/scenarios/fixtures/file_api.go @@ -19,7 +19,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":45,"flex.time.endMs":1654704471027,"flex.time.startMs":1654704470982}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":45,"flex.time.endMs":1654704471027,"flex.time.startMs":1654704470982}],"inventory":{},"events":[]}]}`, }, { Name: "Use sample_filter to skip metrics", @@ -34,7 +34,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":47,"flex.time.endMs":1654705788545,"flex.time.startMs":1654705788498}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":0,"flex.counter.EventDropCount":0,"flex.time.elapsedMs":47,"flex.time.endMs":1654705788545,"flex.time.startMs":1654705788498}],"inventory":{},"events":[]}]}`, }, { Name: "Use sample_include_filter to get key", @@ -49,7 +49,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"customerId":"abc","env":"production","event_type":"usageInfoSample","quantities":10},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654706477610,"flex.time.startMs":1654706477602}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"customerId":"abc","env":"production","event_type":"usageInfoSample","quantities":10},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654706477610,"flex.time.startMs":1654706477602}],"inventory":{},"events":[]}]}`, }, { Name: "Use sample_exclude_filter to exclude key", @@ -64,7 +64,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"customerId":"xyz","env":"production","event_type":"usageInfoSample","quantities":20},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654706661615,"flex.time.startMs":1654706661566}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"customerId":"xyz","env":"production","event_type":"usageInfoSample","quantities":20},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.usageInfoSample":1,"flex.time.elapsedMs":49,"flex.time.endMs":1654706661615,"flex.time.startMs":1654706661566}],"inventory":{},"events":[]}]}`, }, { Name: "Provide start_key and rename_key of json", @@ -81,7 +81,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"env":"production","event_type":"readEtcdSelfLeaderInfoSample","leader":"8a67814500","timestamp":1588232295,"uptime":3600},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654699825870,"flex.time.startMs":1654699825862}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"env":"production","event_type":"readEtcdSelfLeaderInfoSample","leader":"8a67814500","timestamp":1588232295,"uptime":3600},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":8,"flex.time.endMs":1654699825870,"flex.time.startMs":1654699825862}],"inventory":{},"events":[]}]}`, }, { Name: "Use keep_keys with jq", @@ -97,7 +97,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","leader":"8a67814500"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":9,"flex.time.endMs":1654703090744,"flex.time.startMs":1654703090735}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","leader":"8a67814500"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":9,"flex.time.endMs":1654703090744,"flex.time.startMs":1654703090735}],"inventory":{},"events":[]}]}`, }, { Name: "Use lazy_flatten with math and remove_key", @@ -116,7 +116,7 @@ apis: custom_attributes: env: production `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"contacts.flat.0.name":"batman","contacts.flat.0.number":911,"contacts.flat.1.number":112,"env":"production","event_type":"readEtcdSelfLeaderInfoSample","sum":1223},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":57,"flex.time.endMs":1654705302291,"flex.time.startMs":1654705302234}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"contacts.flat.0.name":"batman","contacts.flat.0.number":911,"contacts.flat.1.number":112,"env":"production","event_type":"readEtcdSelfLeaderInfoSample","sum":1223},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":57,"flex.time.endMs":1654705302291,"flex.time.startMs":1654705302234}],"inventory":{},"events":[]}]}`, }, { Name: "Use snake_to_camel and split_objects", @@ -129,7 +129,7 @@ apis: snake_to_camel: true split_objects: true `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"Sample","id":"eca01566","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node1","split.id":"first"},{"event_type":"Sample","id":"eca04ea31566","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node2","split.id":"second"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.Sample":2,"flex.time.elapsedMs":45,"flex.time.endMs":1654761239572,"flex.time.startMs":1654761239527}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"Sample","id":"eca01566","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node1","split.id":"first"},{"event_type":"Sample","id":"eca04ea31566","leaderInfo.abc.def":123,"leaderInfo.abc.hij":234,"leaderInfo.upTime":"10m59.322358947s","name":"node2","split.id":"second"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":2,"flex.counter.EventDropCount":0,"flex.counter.Sample":2,"flex.time.elapsedMs":45,"flex.time.endMs":1654761239572,"flex.time.startMs":1654761239527}],"inventory":{},"events":[]}]}`, }, { Name: "Use to_lower, strip_keys, value_parser and value_transformer", @@ -148,7 +148,7 @@ apis: value_transformer: id: 12345 `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","id":12345,"leaderinfo.abc.def1":123,"leaderinfo.abc.def2":234,"leaderinfo.starttime":"2014-10-24T13:15:51.186620747-07:00","leaderinfo.uptime":"10m59.322358947s"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":3,"flex.time.endMs":1654769186564,"flex.time.startMs":1654769186561}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"event_type":"readEtcdSelfLeaderInfoSample","id":12345,"leaderinfo.abc.def1":123,"leaderinfo.abc.def2":234,"leaderinfo.starttime":"2014-10-24T13:15:51.186620747-07:00","leaderinfo.uptime":"10m59.322358947s"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.readEtcdSelfLeaderInfoSample":1,"flex.time.elapsedMs":3,"flex.time.endMs":1654769186564,"flex.time.startMs":1654769186561}],"inventory":{},"events":[]}]}`, }, { Name: "Use split_array", @@ -164,7 +164,7 @@ apis: start_key: - results>data `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"HOSTNAME":"7605f6bec898","HOST_ID":0,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"HOSTNAME":"067ea6fc4c22","HOST_ID":2,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"HOSTNAME":"62a10d3f45e3","HOST_ID":1,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.voltdb":3,"flex.time.elapsedMs":45,"flex.time.endMs":1654776591203,"flex.time.startMs":1654776591158}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"HOSTNAME":"7605f6bec898","HOST_ID":0,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"HOSTNAME":"067ea6fc4c22","HOST_ID":2,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"HOSTNAME":"62a10d3f45e3","HOST_ID":1,"PERCENT_USED":0,"TIMESTAMP":1582159853733,"event_type":"voltdb"},{"event_type":"flexStatusSample","flex.Hostname":"0e0a965295ba","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":3,"flex.counter.EventDropCount":0,"flex.counter.voltdb":3,"flex.time.elapsedMs":45,"flex.time.endMs":1654776591203,"flex.time.startMs":1654776591158}],"inventory":{},"events":[]}]}`, }, { Name: "Use lookup", @@ -181,6 +181,6 @@ apis: - run: echo "${lookup.read:brand}:${lookup.read:car}" split_by: ":" `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"brand":"honda","car":"civic","event_type":"read"},{"brand":"toyota","car":"supra","event_type":"read"},{"brand":"mistsubishi","car":"lancer","event_type":"read"},{"event_type":"worldSample","flex.commandTimeMs":3,"honda":"civic"},{"event_type":"worldSample","flex.commandTimeMs":0,"toyota":"supra"},{"event_type":"worldSample","flex.commandTimeMs":0,"mistsubishi":"lancer"},{"event_type":"flexStatusSample","flex.Hostname":"ubuntu-2004-vm","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":6,"flex.counter.EventDropCount":0,"flex.counter.read":3,"flex.counter.worldSample":3,"flex.time.elapsedMs":22,"flex.time.endMs":1672415688172,"flex.time.startMs":1672415688150}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"brand":"honda","car":"civic","event_type":"read"},{"brand":"toyota","car":"supra","event_type":"read"},{"brand":"mistsubishi","car":"lancer","event_type":"read"},{"event_type":"worldSample","flex.commandTimeMs":3,"honda":"civic"},{"event_type":"worldSample","flex.commandTimeMs":0,"toyota":"supra"},{"event_type":"worldSample","flex.commandTimeMs":0,"mistsubishi":"lancer"},{"event_type":"flexStatusSample","flex.Hostname":"ubuntu-2004-vm","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":6,"flex.counter.EventDropCount":0,"flex.counter.read":3,"flex.counter.worldSample":3,"flex.time.elapsedMs":22,"flex.time.endMs":1672415688172,"flex.time.startMs":1672415688150}],"inventory":{},"events":[]}]}`, }, } diff --git a/test/testbed/scenarios/fixtures/url_api.go b/test/testbed/scenarios/fixtures/url_api.go index 17de8c0a..eb067773 100644 --- a/test/testbed/scenarios/fixtures/url_api.go +++ b/test/testbed/scenarios/fixtures/url_api.go @@ -30,7 +30,7 @@ integrations: add_attribute: newAttr: myNewAttr_${detail.desiredStatus} `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/40a3b4bd-79ae-4472-a0be-816e5e0044a0","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/50a3b4bd-eqre-4472-a0be-qeqwe","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"abc","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-adfa-32-b9c1-qwerqe","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"commandSamples":"[map[:command1] map[:command2]]","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"environmentSamples":"[map[name:env1 value:value1] map[name:env2 value:value2]]","event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","account":123456789012,"api.StatusCode":200,"detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","myCustAttr":"myCustVal","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"event_type":"flexStatusSample","flex.Hostname":"rocky","flex.IntegrationVersion":"1.4.4","flex.counter.ConfigsProcessed":1,"flex.counter.EcsTaskChangeSample":4,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.time.elapsedMs":48,"flex.time.endMs":1654079094326,"flex.time.startMs":1654079094278}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/40a3b4bd-79ae-4472-a0be-816e5e0044a0","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"containerArn":"arn:aws:ecs:us-east-1:123456789012:container/50a3b4bd-eqre-4472-a0be-qeqwe","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","lastStatus":"PENDING","myCustAttr":"myCustVal","name":"abc","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-adfa-32-b9c1-qwerqe","time":"2016-09-15T21:57:35Z","version":0},{"account":123456789012,"api.StatusCode":200,"commandSamples":"[map[:command1] map[:command2]]","detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"environmentSamples":"[map[name:env1 value:value1] map[name:env2 value:value2]]","event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","myCustAttr":"myCustVal","name":"test","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","account":123456789012,"api.StatusCode":200,"detail-type":"ECS Task State Change","detail.clusterArn":"arn:aws:ecs:us-east-1:123456789012:cluster/cluster1","detail.containerInstanceArn":"arn:aws:ecs:us-east-1:123456789012:container-instance/04f8c17d-29e0-4711-aa74-852654e477ec","detail.createdAt":"2016-09-15T21:30:33.3Z","detail.desiredStatus":"RUNNING","detail.lastStatus":"PENDING","detail.taskArn":"arn:aws:ecs:us-east-1:123456789012:task/3102878e-4af2-4b3c-b9c1-2556b95b2bbf","detail.taskDefinitionArn":"arn:aws:ecs:us-east-1:123456789012:task-definition/testTD:1","detail.updatedAt":"2016-09-15T21:30:33.3Z","detail.version":1,"event_type":"EcsTaskChangeSample","id":"f8a990c2-2f93-4713-8b5d-d5b96f35bfd7","myCustAttr":"myCustVal","nestedCustAttr":"nestedCustVal","newAttr":"myNewAttr_RUNNING","region":"us-east-1","source":"aws.ecs","time":"2016-09-15T21:57:35Z","version":0},{"event_type":"flexStatusSample","flex.Hostname":"rocky","flex.IntegrationVersion":"1.4.4","flex.counter.ConfigsProcessed":1,"flex.counter.EcsTaskChangeSample":4,"flex.counter.EventCount":4,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.time.elapsedMs":48,"flex.time.endMs":1654079094326,"flex.time.startMs":1654079094278}],"inventory":{},"events":[]}]}`, }, { Name: "API and convert spaces", @@ -48,6 +48,6 @@ integrations: url: http://127.0.0.1:8001/leaderinfo convert_space: "_" `, - ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","data":[{"metrics":[{"api.StatusCode":200,"event_type":"TestURL","id":"eca0338f4ea31566","leader_info.abc.def":123,"leader_info.abc.hij":234,"leader_info.leader":"8a69d5f6b7814500","leader_info.start_time":"2014-10-24T13:15:51.186620747-07:00","leader_info.uptime":"10m59.322358947s","name":"node3"},{"event_type":"flexStatusSample","flex.Hostname":"d43822b4a811","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.counter.TestURL":1,"flex.time.elapsedMs":7,"flex.time.endMs":1654770857187,"flex.time.startMs":1654770857180}],"inventory":{},"events":[]}]}`, + ExpectedStdout: `{"name":"com.newrelic.nri-flex","protocol_version":"3","integration_version":"Unknown-SNAPSHOT","data":[{"metrics":[{"api.StatusCode":200,"event_type":"TestURL","id":"eca0338f4ea31566","leader_info.abc.def":123,"leader_info.abc.hij":234,"leader_info.leader":"8a69d5f6b7814500","leader_info.start_time":"2014-10-24T13:15:51.186620747-07:00","leader_info.uptime":"10m59.322358947s","name":"node3"},{"event_type":"flexStatusSample","flex.Hostname":"d43822b4a811","flex.IntegrationVersion":"Unknown-SNAPSHOT","flex.counter.ConfigsProcessed":1,"flex.counter.EventCount":1,"flex.counter.EventDropCount":0,"flex.counter.HttpRequests":1,"flex.counter.TestURL":1,"flex.time.elapsedMs":7,"flex.time.endMs":1654770857187,"flex.time.startMs":1654770857180}],"inventory":{},"events":[]}]}`, }, } From f5e5b756a02e429341588863a6f43ebdb6270cb7 Mon Sep 17 00:00:00 2001 From: Rohan Yadav Date: Fri, 10 Oct 2025 14:44:47 +0530 Subject: [PATCH 3/3] Update docs/troubleshooting.md Co-authored-by: abhishuraina <45932588+abhishuraina@users.noreply.github.com> --- docs/troubleshooting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 269cab69..5393af74 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -207,7 +207,7 @@ Payload: { "name": "com.newrelic.nri-flex", "protocol_version": "3", - "integration_version": "1.4.1", + "integration_version": "1.4.1", "data": [ { "metrics": [