Skip to content

Releases: newrelic/newrelic-agent-control

1.3.1

04 Nov 16:34
a351b4c

Choose a tag to compare

What's Changed

Full Changelog: 1.3.0...1.3.1

1.3.0

03 Nov 17:27
29a08a7

Choose a tag to compare

What's Changed

Full Changelog: 1.2.0...1.3.0

1.2.0

22 Oct 13:42
09e527a

Choose a tag to compare

What's Changed

Full Changelog: 1.1.0...1.2.0

1.1.0

09 Oct 17:45
7e8e0ba

Choose a tag to compare

Breaking changes (Host-only)

Warning

This breaking change only impacts host setups. If you use Agent Control on Kubernetes there's no breaking change.

Host-based agent type definitions

The variable types file and map[string]file have been removed and the agent types for the Infrastructure Agent and the OpenTelemetry Collector have been updated to account for this change.

Now the two agent types use yaml and map[string]yaml (a newly introduced variable type) respectively for the variables that used the removed types. This means that previous configurations that relied on these variables having the content as a string might stop working properly if you update Agent Control for on-host.

Migrating

Most probably, you will only need to remove the | at the beginning of the config variable value (which delimited a YAML block string) to pass pure YAML content instead. See the examples below for the changes:

Example of migrating configs for the Infrastructure Agent
Old config

Note how the three variables (config_agent, config_integrations, config_logging) contain strings.

config_agent: |+
  enable_process_metrics: false
  status_server_enabled: true
  status_server_port: 18003
  license_key: {{NEW_RELIC_LICENSE_KEY}}

config_integrations:
  docker-config.yml: |
    integrations:
      - name: nri-docker
        when:
          feature: docker_enabled
          file_exists: /var/run/docker.sock
        interval: 15s

config_logging:
  discovered.yml: ""
  logging.yml: |
    logs:
      - name: alternatives.log
        file: /var/log/alternatives.log
        attributes:
          logtype: linux_alternatives
      - name: cloud-init.log
        file: /var/log/cloud-init.log
        attributes:
          logtype: linux_cloud-init
New config

Note how the three variables (config_agent, config_integrations, config_logging) now use pure YAML content.

NOTE: If you use the special syntax for interpolating environment variables on the Infrastructure Agent config you will have to quote it or the YAML format will break. The example below exposes how to do so.

config_agent:
  enable_process_metrics: false
  status_server_enabled: true
  status_server_port: 18003
  license_key: "{{NEW_RELIC_LICENSE_KEY}}" # Note the quoting!

config_integrations:
  docker-config.yml:
    integrations:
      - name: nri-docker
        when:
          feature: docker_enabled
          file_exists: /var/run/docker.sock
        interval: 15s

config_logging:
  discovered.yml: {}
  logging.yml:
    logs:
      - name: alternatives.log
        file: /var/log/alternatives.log
        attributes:
          logtype: linux_alternatives
      - name: cloud-init.log
        file: /var/log/cloud-init.log
        attributes:
          logtype: linux_cloud-init
Diff
-config_agent: |+
+config_agent:
   enable_process_metrics: false
   status_server_enabled: true
   status_server_port: 18003
-  license_key: {{NEW_RELIC_LICENSE_KEY}}
+  license_key: "{{NEW_RELIC_LICENSE_KEY}}" # Note the quoting!
 
 config_integrations:
-  docker-config.yml: |
+  docker-config.yml:
     integrations:
       - name: nri-docker
         when:
           feature: docker_enabled
           file_exists: /var/run/docker.sock
         interval: 15s
 
 config_logging:
-  discovered.yml: ""
-  logging.yml: |
+  discovered.yml: {}
+  logging.yml:
     logs:
       - name: alternatives.log
         file: /var/log/alternatives.log
         attributes:
           logtype: linux_alternatives
       - name: cloud-init.log
         file: /var/log/cloud-init.log
         attributes:
           logtype: linux_cloud-init
Example of migrating configs for the New Relic Distribution for the OpenTelemetry Collector
Old config

Note the variable config contains a string.

config: |
  # The following environment variables require manual modification:
  # - NEW_RELIC_LICENSE_KEY: New Relic ingest key.

  # If the collector is not installed through a package manager, the following
  # environment variables need to be set:
  # - NEW_RELIC_MEMORY_LIMIT_MIB: Maximum amount of memory to be used. (default: 100)
  # - OTEL_EXPORTER_OTLP_ENDPOINT: New Relic OTLP endpoint to export metrics to (see: https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/)

  # Keep host monitoring configuration in sync with: https://github.com/newrelic/newrelic-opentelemetry-examples/blob/main/other-examples/collector/host-monitoring/k8s/collector.yaml

  exporters:
    logging:
    otlphttp:
      endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT}
      headers:
        api-key: ${NEW_RELIC_LICENSE_KEY}
New config

Note how the variable config now uses pure YAML content.

config:
  # The following environment variables require manual modification:
  # - NEW_RELIC_LICENSE_KEY: New Relic ingest key.

  # If the collector is not installed through a package manager, the following
  # environment variables need to be set:
  # - NEW_RELIC_MEMORY_LIMIT_MIB: Maximum amount of memory to be used. (default: 100)
  # - OTEL_EXPORTER_OTLP_ENDPOINT: New Relic OTLP endpoint to export metrics to (see: https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/)

  # Keep host monitoring configuration in sync with: https://github.com/newrelic/newrelic-opentelemetry-examples/blob/main/other-examples/collector/host-monitoring/k8s/collector.yaml

  exporters:
    logging:
    otlphttp:
      endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT}
      headers:
        api-key: ${NEW_RELIC_LICENSE_KEY}
Diff
-config: |
+config:
   # The following environment variables require manual modification:
   # - NEW_RELIC_LICENSE_KEY: New Relic ingest key.
 
   # If the collector is not installed through a package manager, the following
   # environment variables need to be set:
   # - OTEL_EXPORTER_OTLP_ENDPOINT: New Relic OTLP endpoint to export metrics to (see: https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/)
 
   # Keep host monitoring configuration in sync with: https://github.com/newrelic/newrelic-opentelemetry-examples/blob/main/other-examples/collector/host-monitoring/k8s/collector.yaml
 
   exporters:
     logging:
     otlphttp:
       endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT}
       headers:
         api-key: ${NEW_RELIC_LICENSE_KEY}

The configuration templates have been updated in the Fleet Control UI guiding new configurations to use the updated formats.

Rationale

The general usage of these variables (rendering the string contents by writing to the file system and getting the resulting path) is superseded by the addition of a filesystem field for an agent type's on_host deployment that defines what filesystem entries (i.e. directories with files) to create. To support typical use cases, the variable type map[string]yaml has been introduced. See the filesystem section in INTEGRATING_AGENTS.md for details.

What's Changed

Read more

1.0.0

25 Sep 08:44
c3b0c5d

Choose a tag to compare

What's Changed

Full Changelog: 0.49.0...1.0.0

0.49.0

12 Sep 10:08
762299d

Choose a tag to compare

What's Changed

Full Changelog: 0.48.0...0.49.0

0.48.0

28 Aug 11:35
68443e1

Choose a tag to compare

What's Changed

Full Changelog: 0.47.0...0.48.0

0.47.0

26 Aug 13:26
2c7b8fd

Choose a tag to compare

What's Changed

Full Changelog: 0.46.0...0.47.0

0.46.0

13 Aug 09:04
81af6fd

Choose a tag to compare

What's Changed

  • feat: add flags to enable or disable remote updater in #1494
  • fix(ci/cd): ignore pod readiness in #1500
  • fix: agent-control-cd values in proxy test in #1503
  • refactor: env vars as secrets provider in #1480
  • refactor(ac-cli): generalize installer structures in #1496
  • refactor: secrets variables in #1505
  • feat: add kubectl and helm to AC CLI container image in #1509
  • test: add custom repo k8s e2e test (NR-436897) in #1488
  • fix: agent control container binary version in #1513
  • feat: improve proxy test coverage in #1492
  • test: simplify on-host e2e condition in #1521
  • feat: review helm release options leaving only the required in #1522
  • feat(ac-cli): install Flux HelmRelease in #1501
  • chore: automate ac cli tools bump (NR-447489) in #1528
  • feat: add flux updater in #1495
  • chore: fix renovate regex path in #1529
  • feat(cli): remove cd resources command in #1536
  • fix(on-host): download NRDOT config in #1541

Dependency bumps and upkeep

  • fix(deps): update rust crate rustls to v0.23.31 in #1498
  • chore(deps): update rust crate serde_json to v1.0.142 in #1506
  • fix(deps): update rust crate tokio to v1.47.1 in #1508
  • chore(deps): update rust crate fake to v4.4.0 in #1516
  • chore(config): migrate renovate config in #1518
  • chore(deps): update dependency helm/helm to v3.18.4 in #1531
  • chore(deps): update dependency newrelic/infrastructure-agent to v1.66.1 in #1530
  • chore(deps): update rust crate glob to v0.3.3 in #1532
  • test(k8s): flux self-update harness (NR-436895) in #1512
  • chore(deps): update rust crate thiserror to v2.0.14 in #1535
  • chore(deps): bump dependencies in #1537
  • test: adjust when k8s e2e run in #1527
  • chore(deps): update rust crate reqwest to v0.12.23 in #1540
  • chore(deps): update rust crate clap to v4.5.45 in #1542
  • fix(deps): update rust crate config to v0.15.14 in #1543
  • chore(renovate): enable lockFileMaintenance in #1545

Full Changelog: 0.44.0...0.46.0

0.45.0

04 Aug 11:39
5a1eadc

Choose a tag to compare

0.45.0 Pre-release
Pre-release

What's Changed

Full Changelog: 0.44.0...0.45.0