Scala Monitoring

OverOps tells you when and why Scala code breaks in production.

A JVM tool built specifically for monitoring Scala and Akka.
Know when critical errors are introduced into production.
Fix Scala errors in high-scale data processing and message based systems.

User already exists Log in

Java / Scala

lightbend logoLightbend calls OverOps one of the most exciting Scala developer tools today Read more >>

see the cause - CODE AND VARIABLES

OverOps detects caught and uncaught exceptions, actor and log errors in Scala and Akka applications
and shows you the code and variable state that caused them - right as if you were there.

CampaignBuilder pickPublisher
def pickPublisher( publisher publisher minPrice0.2 maxPrice0.7 ... :Publisher):Boolean = { val allowance 0.8 = publisher publisher minPrice0.2 maxPrice0.7 ... .getAllowance return (( bidPrice null .minimum() >= allowance 0.8 Hover over variables to see their value when the error occurred. OverOps automatically reconstructs the code leading to the error within the JVM. ) && ( bidPrice null .maximum() <= allowance 0.8 )) }
CampaignBuilder buildCampaign
def buildCampaign:JSONObject = { val publishers publishers 0AdPublisher 1BidPublisher = fetchLivePublishers val publisher publisher minPrice0.2 maxPrice0.7 ... = Random.shuffle( publishers publishers 0AdPublisher 1BidPublisher ).filter(pickPublisher _) publisher match { case Publisher => { log!(INFO, "publisher selected") internalCreateCampaign publisher } case _ => log!(ERROR, "no publisher found") } }
CampaignRoute campaignRoute λ-1
val campaignRoute = { (path("campaign") & get) { parameters("transactionId"!) { transactionId TRAN-2015-X4k12s => val contentType = headerValue({
InputStream is is length2048 bufferbyte[] =connection .getInputStream(); parseResponse( is is length2048 bufferbyte[] ); } catch (Exception e) { logger.error("Problem with bid request " + urlStr, e); } }
public static void execute(Task task task taskId7412 queue"prod1" ... ) { if ( task task taskId7412 queue"prod1" ... .shouldExecuteNow()) { task task taskId7412 queue"prod1" ... .execute(); } else { asyncExecutor.execute(task); } }
public void run() throws InterruptedException { while (! shouldStop false ) { Message message message msgId"54947df8-0e9e" taskId7412 = queue queue length140 topBidRequestTask .fetchNextMessage(); Task task task taskId7412 queue"prod1" ... = TaskFactory.messageToTask( message message msgId"54947df8-0e9e" taskId7412 ); TaskExecutor.execute( task task taskId7412 queue"prod1" ... ); } }

focus on the errors that matter

Real-time analytics let you cut through the noise and get to the errors that you need to fix.

image description
image description
image description
image description
image description
Filter errors by server, app, code entry point and location.
image description
imageShare with teammates

This just started happening in prod1 after today's release.

  • Danny R (developer)close
  • Connie H (developer)close
  • Stan M (Eng manager)close
Share errors between DevOps, engineers and QA with one click.
image description
imageCreate JIRA issue

NullPointerException at CampaignBuilder.selectPublisher

Click here to see code and variable state -

Open a JIRA issue for an error with the code and variable state that caused it.

Built for high scale Akka
and Scala applications.

See the accurate variable state that led to an error even at high scale.
Beautiful support for Scala code and call stacks.
No need to upload log files or add API calls into your code.

Installs in minutes

Install a simple java agent. No code changes, annotations, or build configurations needed.

wget -O - -o /dev/null | sudo bash /dev/stdin -i --sk=<installation key>
curl -sL /dev/null | sudo bash /dev/stdin -i --sk=<installation key>
sudo dpkg -i <path-to-deb> sudo /opt/takipi/etc/takipi-setup-package <installation key>
sudo rpm -i <path-to-rpm> sudo /opt/takipi/etc/takipi-setup-package <installation key>

the takipi.dmg installer for OS X.


the takipi.msi installer for Windows.

Our Chef cookbook:

git clone

Our Puppet module:

git clone
User already exists Log in

Java / Scala developers