To get started with the New Relic Java Agent, you'll first need to meet the basic requirements. The agent is compatible with Java versions 8 and later.
The Java Agent requires a Java Runtime Environment (JRE) or Java Development Kit (JDK) to be installed on your system. This is a straightforward process that's likely already taken care of if you're a Java developer.
To set up the Java Agent, you'll need to download the agent from the New Relic website. This involves selecting the correct version of the agent that matches your Java environment.
Once you've downloaded the agent, you'll need to add it to your Java classpath. This can be done by modifying your project's build path or by using a tool like Maven or Gradle.
Installation
To install the New Relic Java agent, ensure your system meets the requirements. The Java agent is compatible with any JVM-based language, including Java, Scala, Kotlin, and Clojure.
You can unzip the newrelic-java.zip file wherever it's convenient for you. In the subsequent sections, we assume you extracted it in the current working directory.
The Java agent is supported on various Java versions, including Java 7, Java 8, Java 11, Java 17, Java 21, and Java 23. Here's a quick rundown of the compatible Java agent versions for each Java version:
As a standard security measure for data collection, your app server must support SHA-2 (256-bit). SHA-1 is not supported.
Requirements to Install
Before you start the installation process, make sure your system meets the requirements. The Java agent is compatible with any JVM-based language, including Java, Scala, Kotlin, and Clojure.
The Java agent is compatible with various Java versions, but not all versions are supported equally. Java 7, for instance, requires a specific range of Java agent versions.
Here's a breakdown of the compatible Java agent versions for each Java version:
Your app server must also support SHA-2 (256-bit) for data collection, as SHA-1 is not supported. This is a standard security measure to ensure the integrity of the data.
If your application uses other application monitoring software, our agent may not work correctly and we cannot offer technical support.
Set Up Installation Directory
To set up the installation directory, you can unzip the newrelic-java.zip file anywhere on your computer that's convenient for you.
It's assumed in the subsequent sections that the file is extracted in the current working directory, which puts the necessary files in a location that's easy to access.
You can choose any location you like for the installation directory, but keep in mind that it will be used as the base directory for all New Relic files.
The files will be extracted to the specified location, and you'll be able to access them from there.
Just make sure to note the location you choose, as you'll need to refer to it later in the installation process.
Configuration
To configure the New Relic Java agent, you'll want to start by understanding how to load the newrelic.yml file using your Dockerfile. This is done by setting environment variables or Java system properties.
You can load the newrelic.yml file by specifying application name, license key, logs, environment, and agent enabled in your Dockerfile. This is a straightforward process that will get you started with configuring the agent.
The agent enabled configuration is particularly useful if you want to run the same Docker image for every installation, but don't want the agent to run every time. To do this, you can set agent_enabled: false in the main body of newrelic.yml, and then set agent_enabled: true in specific environment sections. This way, you can run specific agents by specifying the environment at runtime.
Here are the required configurations to load newrelic.yml using the Dockerfile:
- Application name
- License key
- Logs
- Environment (optional)
- Agent enabled (optional)
Set Configurations
To set up your New Relic agent, you'll need to configure it with your application's details. This can be done through environment variables or Java system properties.
You can override the default configurations in newrelic.yml by using environment variables. The default configuration file is typically located in the same directory as the agent. You can load the newrelic.yml using the Dockerfile.
To load newrelic.yml, you'll need to specify the following configurations: application name, license key, logs, environment (optional), and agent enabled (optional).
Here's a breakdown of the configurations you'll need to specify:
- Application name
- License key
- Logs
- Environment (optional)
- Agent enabled (optional)
To set up your license key, you'll need to obtain one from the API keys UI. Then, you can replace "MY_LICENSE_KEY" with your actual license key in one of the Dockerfile commands.
Enabled (Optional)
If you want to run the New Relic agent only in specific environments, you can use the agent_enabled configuration in newrelic.yml. This allows you to disable the agent in the main configuration and enable it in specific environment sections.
To do this, you'll need to set agent_enabled to false in the main body of newrelic.yml. Then, in the environment sections where you want the agent to be enabled, set agent_enabled to true.
Here's a step-by-step guide:
1. Set agent_enabled to false in the main body of newrelic.yml.
2. Set agent_enabled to true in the specific environment sections where you want the agent to be enabled.
By following these steps, you can control which environments run the New Relic agent and which don't.
You can also pass a Java property or environment variable to determine which environment-specific section the agent uses in newrelic.yml. This is useful if you prefer to have the newrelic.yml file control environment-specific configurations instead of passing all the configurations via Docker.
For example, you can pass the newrelic.environment Java system property via Docker to use the custom value dev in the environment section of newrelic.yml. Here's how:
- In the Dockerfile, include a reference to a new environment variable (for example, ENV) in the CMD instruction.
- In the docker run command line, include an argument to set the environment variable in the container (for example, -e "ENV=dev").
Features and Improvements
Configuration is key to unlocking the full potential of your application, and New Relic's latest features and improvements are no exception. One notable addition is instrumentation for Spring Webclient 5/6, which now captures HTTP status code and message.
This is a game-changer for developers, as it provides more accurate and detailed insights into application performance. The default size limit for attributes on custom events is 255 characters, but can be increased up to 4095 characters with the new `custom_insights_events.max_attribute_value` configuration option.
You can also expect improved transaction naming for traditional annotated Spring controllers, as well as controllers that inherit annotations from interfaces, super classes, or custom annotations. This is made possible by the new instrumentation modules, which can be enabled with the `enhanced_spring_transaction_naming` agent configuration option.
Here are the new features and improvements in a nutshell:
- Instrumentation for Spring Webclient 5/6 now captures HTTP status code and message
- Add status code to grpc-1.40.0 client instrumentation
- Add configuration to set the size limit of attributes on custom events
- Add Spring instrumentation modules for enhanced transaction naming
- Add instrumentation for Vert.x 4.5.x web client and futures
Sources
- https://learn.microsoft.com/en-us/azure/spring-apps/basic-standard/how-to-new-relic-monitor
- https://docs.newrelic.com/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent/
- https://dzone.com/articles/setting-custom-instrumentation
- https://docs.newrelic.com/docs/apm/agents/java-agent/additional-installation/install-new-relic-java-agent-docker/
- https://docs.newrelic.com/docs/release-notes/agent-release-notes/java-release-notes/java-agent-890/
Featured Images: pexels.com