Java agent with Scala on Heroku

Heroku is a Platform as a Service (PaaS) solution for hosting web applications in various agent languages, including Scala. With New Relic, you can extend Heroku with metrics from New Relic APM, Browser, and Insights.

For non-Scala installations, see Java agent and Heroku.

Requirements

Before you install New Relic on your Scala app, ensure your app meets these requirements:

Then, enable the New Relic add-on and configure your Heroku environment for New Relic.

Enable the New Relic add-on

After completing the requirements, enable the New Relic add-on:

  1. Log in to your Heroku account.
  2. From the New Relic APM Add-On Page, select a subscription plan.
  3. Select Install New Relic APM, then select your target app from the drop-down.
  4. Continue with the procedures to configure your Heroku environment for New Relic.

Installing the add-on automatically creates a New Relic account and configures access for Heroku servers.

Configure your Heroku environment for New Relic

After you complete the requirements and enable the New Relic add-on, configure your Scala Heroku environment for New Relic:

  1. Edit your Procfile to point to the agent jar in your app's root folder. Replace the contents of the file, substituting X.Y.Z with the latest agent version:

    web: target/universal/stage/bin/play-getting-started -Dhttp.port=${PORT} -J-javaagent:/app/target/universal/stage/lib/com.newrelic.agent.java.newrelic-agent-X.Y.Z.jar -J-Dnewrelic.config.file=conf/newrelic.yml

    OR

    Identify the path to newrelic.jar with the JAVA_OPTS environment variable.

  2. Edit your build.sbt. Call the agent, substituting X.Y.Z with the latest Java agent version:

    Custom build.sbt
    name := """play-getting-started"""
    version := "1.0-SNAPSHOT"
    lazy val root = (project in file(".")).enablePlugins(PlayScala)
    scalaVersion := "2.11.7"
    libraryDependencies ++= Seq(
    jdbc,
    cache,
    "org.postgresql" % "postgresql" % "9.4-1201-jdbc41",
    ws
    )
    libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-compiler" % _ )
    libraryDependencies ++= Seq("com.newrelic.agent.java" % "newrelic-agent" % "X.Y.Z")
    libraryDependencies ++= Seq("com.newrelic.agent.java" % "newrelic-api" % "X.Y.Z")
  3. Download a customized newrelic.yml file from your APM account settings:

    How to download a custom newrelic.yml
    1. Log in to dashboard.heroku.com. Select your app, then select Add-ons > New Relic APM.
    2. From the New Relic UI's (account dropdown), select Account settings.
    3. In the Update your New Relic agent section, download the Java SE 8 release.
    4. Unzip the downloaded file.
    5. Copy newrelic.yml to the scala-getting-started/conf directory:

  4. Edit newrelic.yml, and customize the app_name setting with a descriptive app name.
  5. In your local terminal, push the changes to the dyno:

    git add .
    git commit -m Your commit message .
    git push heroku master
  6. Open the website in your browser with this Heroku Toolbelt command:

    heroku open

Generate some traffic to your app. Wait a few minutes, then check your app's performance: In Heroku, select your app, then select the New Relic add-on. If you don't see the New Relic add-on, select Find More Add Ons, and add the New Relic APM add-on.

Troubleshooting your installation

If no data appears after waiting a few minutes, see No data appears with Heroku (Java).

For more help

Additional documentation resources include:

Join the discussion about Java monitoring in the New Relic Online Technical Community! The Technical Community is a public platform to discuss and troubleshoot your New Relic toolset.

If you need additional help, get support at support.newrelic.com.