The OCI log forwarding integration sends logs from your Oracle Cloud Infrastructure (OCI) tenancy to New Relic. Over time, New Relic releases new versions of the integration that add features, fix problems, and deliver security updates. If logs stop arriving or you run into other problems with your existing integration, a newer version may contain the fix. Because the integration runs in your own tenancy, you receive new versions by upgrading what you've deployed. This guide walks you through that process:
- Identify which setup you're on.
- Move from the previous setup to the current one, if needed.
- Upgrade using Resource Manager, Terraform, or manual setup.
- Verify that logs are still arriving.
To set up forwarding for the first time, see Install and configure OCI log forwarding.
When to upgrade
Upgrading isn't required while your logs are flowing. Read the release notes for each new version on the oci-log-integration releases page to decide whether a release matters to you. Check them for breaking changes in particular, because you may need to act on those.
Identify your setup
Your deployment uses one of two setups. Check the settings on your Resource Manager stack or Terraform module:
- Current setup, with a Function image setting: The integration copies the function image from Docker Hub into a private Container Registry repository in your own tenancy when you apply, and the function runs from that copy. Because your function doesn't depend on a New Relic-hosted registry at runtime, its availability isn't tied to that registry. The integration uses Docker Hub only during the apply. Versions can be pinned.
- Previous setup, with a New Relic Owned Registry setting: The function pulls directly from a New Relic-owned registry, at the version you set, instead of from a copy in your own tenancy. New Relic has retired this setting.
If you're on the previous setup, make a one-time move to the current setup first. After that, every upgrade follows the regular upgrade steps.
Understand the function and template
The integration has two parts. They're versioned and released independently, and a release can change either or both:
- Log-forwarder function: The code that sends logs to New Relic. New Relic publishes it to Docker Hub as
docker.io/newrelic/oci-log-forwarderand names each releasefunction-<version>on the oci-log-integration releases page. - Integration template: The configuration around the function, which is the Resource Manager stack and its variables, or the Terraform module. Template releases use plain version numbers on the same releases page and include the
oci-log-integration.zipfile. Terraform module versions are theterraform-provider-newrelicrelease tags.
How each part updates depends on your method:
- Resource Manager and Terraform refresh the function for you. Every apply checks which image the
latesttag points to on Docker Hub and brings in the newer one. - A newer template is a deliberate step. Update the template only when a release changes it, and update the function at the same time. That keeps your deployment in the combination New Relic tested for the release. Function releases stay compatible with the templates already in use, so you can take a newer function before a newer template.
- Manual setups update nothing automatically. You choose the version and copy the image yourself.
Before you start
Before you upgrade:
- Make sure you can edit the Resource Manager stack, the Terraform configuration, or the Functions application that runs your integration.
- Note the version you're running now, and compare it with the latest release: the Function image value or image tag, and the
?ref=value on your Terraform modules.
Move from the previous setup to the current setup
This is a one-time migration, not a version bump.
What changes. Your configuration gains a Function image setting with the full image reference, plus optional Container Registry username and auth token settings. New Relic has retired New Relic Owned Registry, and it has no effect. On the first apply, the integration creates the private Container Registry repository, named newrelic-logs/oci-log-forwarder (or newrelic-logs-tf/oci-log-forwarder on Terraform), and copies the function image into it.
What to check first. Whatever runs the apply needs outbound access to Docker Hub and to your own tenancy's Container Registry, on top of the OCI endpoints it already reaches. The integration also needs a Container Registry credential to push the image. If you leave the auth token setting empty, it creates one for the user running the apply and reuses it on later applies.
Important
OCI limits how many auth tokens each user can have, currently two. If the user running the apply already has the maximum and you leave the auth token setting empty, the apply fails with an error asking for an existing token. Delete an unused token first, or enter an existing token and its username in the auth token and username settings. Check the current limit in your OCI User Settings.
Upgrade a deployment on the current setup
Use these steps if your stack or module has a Function image setting. Choose the method you used to set up the integration.
Verify after upgrading
Confirm logs are still arriving within a few minutes of the upgrade:
SELECT count(*) FROM Log WHERE instrumentation.provider = 'oci' SINCE 10 minutes agoIf counts drop to zero, check the function's execution logs in the OCI Console.
A brief slowdown on the first invocation after an upgrade is normal while the function pulls the new image. To confirm which version you landed on, check the image tag in your Container Registry repository.
Related articles
- Install and configure OCI log forwarding: Set up OCI log forwarding for the first time.
- Monitor your OCI log forwarder: Enable self-observability metrics on the log forwarder function.
- Troubleshooting: Fixes for not seeing data during setup.