Documentation versions (currently viewingVaadin 24)

New Relic Integration

Learn how to use New Relic together with Observability Kit.

New Relic is an observability SaaS platform with support for metrics, traces, and logs.

Large Messages Ignored
New Relic ignores all messages above a certain size. To avoid losing data, messages can be truncated automatically using the property otel.attribute.value.length.limit. See Observability Kit Configuration for instructions on this.

New Relic Account

You can sign up for a New Relic account at You can export up to 100 GB of data per month without a charge.

Observability Kit Configuration

Create a new properties file named, Add the following lines to it:


You can find the ENDPOINT_URL from the table in the New Relic documentation.

You can find the LICENSE_KEY in your New Relic account settings under API Keys. Be sure to use the license key of type INGEST-LICENSE.

Running the Application

Run the application using the Java binary and pass the respective arguments for the Agent and configuration like so:

java -javaagent:PATH/TO/observability-kit-agent-VERSION.jar \
     -Dotel.javaagent.configuration-file=PATH/TO/ \
     -jar myapp.jar
Replace Placeholder Paths & Version
Remember to correct the path to the file, as well as the path and version of the Agent .jar file.

Viewing Data

After using the application for a while — the traces show up with a delay — log in to New Relic.

From the All entities* view, select your service name under Services - OpenTelemetry: vaadin if you didn’t specify one.

Now you get a menu where you can look through the telemetry data from your application.

Viewing Traces

Open the Monitor - Distributed tracing view, which shows application traces showing count, duration, and errors.

See New Relic documentation for the Distributed tracing page for more information on how to use this view.

Viewing Metrics

Open the Data - Metrics explorer view, where you can explore all reported metrics.

See New Relic documentation for the Metrics explorer page for more information on how to use this view.

Viewing Logs

Open the Monitor - Logs view, which shows application logs that link to traces with

See New Relic documentation for the Logs page for more information on how to use this view.

Observability Kit Dashboard

You can create a pre-configured dashboard for New Relic that contains several metrics, such as request throughput, error rate, and JVM stats with this generator.

Enter your New Relic account ID below and then click Generate. You can get your account ID from the New Relic URL in the browser.

Open in a
new tab
import { css, html, LitElement } from 'lit';
import { customElement, state } from 'lit/decorators.js';
import '@vaadin/button';
import '@vaadin/icon';
import '@vaadin/icons';
import '@vaadin/text-field';
import '@vaadin/text-area';
import { applyTheme } from 'Frontend/generated/theme';
import template from './dashboard-template.json';
import type { TextFieldValueChangedEvent } from '@vaadin/text-field';
import { Notification } from '@vaadin/notification';

export class DashboardGenerator extends LitElement {
  static override styles = css`
    .json-result {
      width: 100%;
      height: 200px;

  accountId = '';

  json = '';

  protected override createRenderRoot() {
    const root = super.createRenderRoot();
    // Apply custom theme (only supported if your app uses one)
    return root;

  private handleGenerate() {
    let json = JSON.stringify(template, null, 2);
    // Replace account ID in template
    json = json.replace(/"accountId": \d+/g, `"accountId": ${this.accountId}`);

    this.json = json;

  private handleCopyToClipboard() {
    navigator.clipboard.writeText(this.json).then(() => {
      const notification ='Copied!', {
        position: 'middle',
        duration: 2000,
      notification.setAttribute('theme', 'success');

  protected override render() {
    return html`
        label="Account ID"
        @value-changed="${(event: TextFieldValueChangedEvent) => {
          this.accountId = event.detail.value;
        <vaadin-icon slot="prefix" icon="vaadin:user"></vaadin-icon>
      <vaadin-button @click="${this.handleGenerate}" ?disabled="${this.accountId.length === 0}">
      <br />
        label="Dashboard JSON"
      <vaadin-button @click="${this.handleCopyToClipboard}" ?disabled="${this.json.length === 0}">

Next, you need to do the following:

  • Copy the dashboard JSON from above;

  • Open the New Relic UI in the browser;

  • Open the Dashboards view, and then click on Import dashboard in the top-right; and

  • Paste the JSON that you copied from above, and then click Import dashboard.