Takipi tells you when and why code breaks in production.

Get actionable information to fix the errors
that impact your users the most.

User already exists Log in

Java, Scala, Groovy, Clojure, JRuby

image

see the cause - CODE AND VARIABLES

Takipi detects every caught and uncaught exception, log and HTTP error in production and
shows the code and variables that caused them - right as if you were there.

CampaignBuilder.selectPublisher
private Publisher selectPublisher(List<Publisher> publishers publishers 0AdPublisher 1BidPublisher ) { for (Publisher   publisher publisher minPrice0.2 maxPrice0.7 ... : publishers publishers 0AdPublisher 1BidPublisher ) { double allowance 0.8 = publisher publisher minPrice0.2 maxPrice0.7 ... .getAllowance(); if (( bidPrice null .minimum() >= allowance 0.8 Hover over variables to see their value when the error occurred. Takipi automatically reconstructs the code leading to the error within the JVM. ) && ( bidPrice null .maximum() <= allowance 0.8 )) { return publisher publishers minPrice0.2 maxPrice0.7 ; } }
CampaignBuilder.buildCampaign
public JSONObject buildCampaign() { List<Publisher> publishers publishers 0AdPublisher 1BidPublisher = fetchLivePublishers(); Collections.shuffle( publishers publishers 0AdPublisher 1BidPublisher ); Publisher candidate = selectPublisher( publishers publishers 0AdPublisher 1BidPublisher ); Campaign campaign = internalCreateCamapain(candidate); return campaign.toJson(); }
CampaignServlet.doGet
protected void doGet(HttpServletRequest req req inputStreamInputStream .. , HttpServletResponse resp resp outputStreamoutputStream status0 ) throws ServletException, IOException { String transactionId TRAN-2015-X4k12s = req req inputStreamInputStream .. .getParameter("transactionId"); String hostIp 192.117.10.29 = req req inputStreamInputStream .. .getHeader("X-Forwarded-For");
BidRequestTask.execute
public static void execute() { try { InputStream is is length2048 bufferbyte[] =connection .getInputStream(); parseResponse( is is length2048 bufferbyte[] ); } catch (Exception e) { logger.error("Problem with bid request " + urlStr, e); } }
TaskExecutor.execute
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); } }
QueueTasksFetcher.run
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" ... ); } }
image description

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
  • "Cache Server invalidation fail...", InvalidateCacheTask
  • NullPointerException, CampaignBuilder
  • NumberFormatException, ConvertCurrencyServlet
  • ConnectionException, HttpStreamingTask
  • Forbidden, ConvertCurrencyServlet
  • "no connection to queue: http:..", QueueMessageWorker
  • BufferUnderflowException, StopCampaignServlet
image description
image description
  • "Cache Server invalidation fail...", InvalidateCacheTask
  • NullPointerException, CampaignBuilder
  • NumberFormatException, ConvertCurrencyServlet
  • ConnectionException, HttpStreamingTask
  • Forbidden, ConvertCurrencyServlet
  • "no connection to queue: http:..", QueueMessageWorker
  • BufferUnderflowException, StopCampaignServlet
image description
  • "Cache Server invalidation fail...", InvalidateCacheTask
  • NullPointerException, CampaignBuilder
  • NumberFormatException, ConvertCurrencyServlet
  • ConnectionException, HttpStreamingTask
  • Forbidden, ConvertCurrencyServlet
  • "no connection to queue: http:..", QueueMessageWorker
  • BufferUnderflowException, StopCampaignServlet
Filter errors by server, app, code entry point and location.
image description
  • "Cache Server invalidation fail...", InvalidateCacheTask
  • NullPointerException, CampaignBuilder
  • NumberFormatException, ConvertCurrencyServlet
  • ConnectionException, HttpStreamingTask
  • Forbidden, ConvertCurrencyServlet
  • "no connection to queue: http:..", QueueMessageWorker
  • BufferUnderflowException, StopCampaignServlet
imageShare with teammates

This just started happening in prod1 after today's release.
http//app.takipi.com/event=UzYyOTUjMUzlzE

To:
  • 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
  • "Cache Server invalidation fail...", InvalidateCacheTask
  • NullPointerException, CampaignBuilder
  • NumberFormatException, ConvertCurrencyServlet
  • ConnectionException, HttpStreamingTask
  • Forbidden, ConvertCurrencyServlet
  • "no connection to queue: http:..", QueueMessageWorker
  • BufferUnderflowException, StopCampaignServlet
imageCreate JIRA issue

NullPointerException at CampaignBuilder.selectPublisher

Click here to see code and variable state -
http//app.takipi.com/event=UzYyOTUjMUzlzE

Open a JIRA issue for an error with the code and variable state that caused it.
Unique errors analyzed
Connected servers
Trusted by:

I can see all my exceptions in a clear, visual way. This helped me find issues with 3rd party code I previously didn't see.
On top of that, installation was smooth and easy!

hp

Integrates into your workflow

Takipi integrates into your team's workflow and enables powerful collaboration
between DevOps, engineers, and QA.

  • Alerting
    Alerting - Know when new errors are introduced into your application.
    Alerting - Takipi tells you when a new error has been introduced into your application. A customizable alerting engine lets you control what you’re notified on.
  • Teamwork
    Teamwork - Manage and invite team members to view errors.
    Teamwork - Invite and share information between DevOps, engineering managers, and developers just like you would on a Google doc.
  • Logging
    Logging - See the code and variables behind each error in your logs.
    Logging - Takipi links log errors to the code and variable state that led to them. So instead of just a single line in the log, you can see the code and variables that caused the error.
  • Labels
    Labels - Share and tag errors with custom labels and notes.
    Labels - Share and tag errors with custom labels and notes (e.g. Important, New, V2.1..).
    Filter errors by labels and get notified when you are tagged.
  • Jira
    JIRA - Open JIRA issues for new errors with one click.
    JIRA - Open a JIRA issue for an error in staging or production with a direct link to the code and variable state that caused it.
  • NewRelic
    NewRelic - See errors in your JVM directly from NewRelic.
    NewRelic - See new and trending errors in your code directly from your NewRelic dashboard with the Takipi plug-in.
  • logstash
    Logstash - See the code and variables behind each log error in Logstash.
    Logging - Takipi links log errors to the code and variable state that led to them. So instead of just a single line in Logstash, you can see the code and variables that caused the error.
  • Splunk
    Splunk - See the code and variables behind each log error in Splunk.
    Splunk - Takipi links log errors to the code and variable state that led to them. So instead of just a single log line in Splunk, you can see what caused the error.

Installs in minutes

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

wget -O - -o /dev/null http://get.takipi.com | sudo bash /dev/stdin -i --sk=<installation key>
curl -s /dev/null http://get.takipi.com | 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>
Download

the takipi.dmg installer for OS X.

Download

the takipi.msi installer for Windows.

Our Chef cookbook:

git clone https://github.com/takipi-cookbooks/takipi

Our Puppet module:

git clone https://github.com/takipi/takipi-puppet

Our Ansible playbook:

git clone https://github.com/takipi/takipi-playbooks
User already exists Log in

Java / Scala

image
Taki and Kipi