[Highly recommended] Four online tracking services to help you identify application anomalies

[Highly recommended] Four online tracking services to help you identify application anomalies

【51CTO.com Quick Translation】As we all know, software development is challenging and complex. Specifically, whether we are developing an APP for a login page or a Linux kernel driver, the software needs to record various information and do a lot of analysis.

Among the above information, analyzing their exceptions is essential if you want to find out why users encounter a certain problem, where the specific error is, or even how the application crashes.

Let's take a look at the following example. The exception message shows that the exception PDOException was thrown because the database table -- tblmovies was not found. Here, you can also see that it is an exception thrown when executing a specific line of a class from the initial point (we have edited it to a readable form).

  1. PDOException thrown with message "SQLSTATE[HY000]: General error: 1 no such table: tblmovies" .
  2. Stacktrace:
  3. #28 PDOException in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:186
  4. #27 PDO: prepare   in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:186
  5. #26 Zend\Db\Adapter\Driver\Pdo\Statement: prepare   in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:212
  6. #25 Zend\Db\Adapter\Driver\Pdo\Statement: execute   in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php:239
  7. #24 Zend\Db\TableGateway\AbstractTableGateway:executeSelect in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php:209
  8. #23 Zend\Db\TableGateway\AbstractTableGateway:selectWith in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/src/Movies/src/Services/ Database /MovieTable.php:48
  9. ...
  10. #5 Zend\Stratigility\Middleware\ErrorHandler:process in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php:60
  11. #4 Zend\Expressive\Middleware\LazyLoadingMiddleware:process in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-stratigility/src/ Next .php:128
  12. #3 Zend\Stratigility\ Next :process in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php:102
  13. #2 Zend\Stratigility\MiddlewarePipe:process in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/vendor/zendframework/zend-expressive/src/Application.php:374
  14. #1 Zend\Expressive\Application:run in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/ public / index .php:29
  15. #0 {closure} in /Users/settermjd/Documents/Business/Projects/Zend Expressive Course/book-code/iteration-five/ public / index .php:30

Do your applications also log this information, and are they logged to a centralized log area? If so, do they:

  • Is the recorded information easily accessible?
  • Can it be parsed effectively?
  • Can you track down the commit (and committer) that caused the problem?
  • Does it provide additional metadata and cues to aid understanding?
  • Does it contain personally identifiable information (PII), credentials, or any other form of information that needs to be secured?

If all or at least most of the above are not met, there will be a hidden danger of problems. Here, you can learn about four online exception tracking services by reading this article. Please note that our list is not in any particular order of priority.

1. Raygun

Raygun, which has been recognized by Coca-Cola, Microsoft, Slack, and 3M, provides a stylish and professional user interface (UI) for tracking anomalies in various applications. With ready-made and detailed guidance documentation, it is easy to get started with Raygun.

In addition to the basic installation and setup documentation, Raygun also provides extensive documentation for various aspects of its services (https://raygun.com/docs). These include:

  • Set up audit logging.
  • Manage users and groups.
  • Configure integrations (Bitbucket, PivotalTracker, Visual Studio Team Services, Zendesk, Slack, YouTrack, and Trello among them).
  • Various APIs and webhooks.

Raygun supports a wide variety of languages, platforms, and frameworks. These include PHP, .Net, Android, iOS, MacOS, WordPress, Java, Python, Cold Fusion, and C++.

The services provided by Raygun are mainly focused on two aspects: crash reporting and real user monitoring. Crash reporting aims to understand and fix various exceptions that cause application crashes by finding them. For each exception sent to Raygun, they will be broken down and reorganized and displayed according to the following items:

  • When did it happen?
  • On which page did it occur?
  • The abnormal message body itself
  • Occurrence area

Exceptions can be filtered by various types of criteria, including browser type, operating system type, host, and machine name. Real user monitoring, on the other hand, provides details about how the application is executed, including the following metrics (if applicable):

  • Average loading time
  • Page loading time
  • Number of customers and page views

This feature helps users track the impact of each deployment on the application, whether positive or negative. At the same time, the user's dashboard interface can be fully customized to meet the needs of your project and team. Specific details include:

  • Loading time
  • Distribution of global sessions
  • Active users
  • Number of sessions
  • Total number of users
  • Number of new users
  • Number of users returned
  • Average loading time

Another convenient feature is Pulse. Pulse can display various user status of the current website through various near real-time events. Through the views it provides, you can view the following information in detail:

  • Loading time
  • The number of various sessions
  • Number of users by category
  • 24-hour session trends
  • Those recent requests
  • Average loading time
  • The most requested pages
  • Those recent crashes

If you drill down to the page level, you can also get aggregate information such as why the page is performing poorly, including DNS lookups, latency, SSL overhead, page generation, and transfer time.

Pricing mechanism

Raygun's pricing is based on the services you subscribe to. You can choose the entire platform, or crash reporting, or just real user monitoring. So it's a very flexible pricing structure.

The specific cost ranges from $19 per month to a whopping $1,499 per month. The price will increase as the features are added. In addition, if you sign up, there is a 14-day free trial.

2. Airbrake

Airbrake is used by companies such as SendGrid, Groupon, SoundCloud, Salesforce, and TED. It complies with standards such as HIPAA, PCI, and SOX.

Airbrake supports a wide range of languages ​​and platforms, including Java, JavaScript, PHP, Go, Node, Swift, Magento, Django, .Net, and Ruby on Rails. It integrates with a range of standard services, including Bitbucket, GitHub, PivotalTracker, FlowDock, Campfire, Jira, HipChat, and assembla.

Unlike Raygun, Airblake's UI is not as fleshed out and certainly doesn't display as many rich features. For example, Raygun supports logins via Facebook, Google+, Twigger, and GitHub, while Airblake only supports GitHub.

Additionally, Airblake's documentation isn't extensive. However, despite this, the service itself is excellent. It provides detailed setup instructions for you to get started, no matter what language or platform you're using.

By taking a deeper look, you will find that Airblake uses an open source error and exception notification component and replaces the default error handler of general applications. It can capture various standard types of errors, including: 404, 500, general login problems and some other specific application errors.

The notification component provides various details about the application exception to Airblake, which then performs corresponding analysis and data reorganization to provide more visualization and display various details of the exception that occurred. The data that can be displayed on the dashboard mentioned here includes the following information:

  • The number of times a certain exception occurs
  • The circumstances in which the error occurred
  • Backtracking a complete path
  • The parameters at that time
  • The number of times a certain exception has occurred since the last deployment
  • What exceptions can a deployment fix?

Given that exceptions are filtered by environment, error priority, and user type, Airblake easily converts these exceptions into work tickets so that they can be mapped to the appropriate solutions and tracked as they are deployed in different environments.

Pricing mechanism

Airblake's pricing structure is simpler and flatter than Raygun's. It supports four options, ranging from $49 per month to $249 per month. I personally think this flat pricing structure is a good thing because you won't make a choice. It also has a 30-day free trial plan.

3. Sentry.io

Sentry is the most impressive of all four options and is used by big companies like Dropbox, Airbnb, Paypal, and Microsoft. Written in Python, Sentry is able to support and process event-based APIs from a variety of languages ​​and applications.

Sentry supports a wide range of languages ​​and platforms, including JavaScript, Ember, Python, Ruby on Rails, PHP, iOS, Android, Go, .Net, Java, Objective-C/Swift, and Perl. It integrates with popular developer services including Slack, GitHub, Trello, Heroku, GitLab, Twilio, PagerDuty, Datadog, and YouTrack.

Like most of the services on this list, it offers extensive and searchable documentation that is organized in a very logical way. In addition to this, Sentry also supports a community forum. You can view and create issues in their GitHub repository.

I found the Sentry dashboard to be well laid out, concise, and beautifully organized. You can quickly get an overview of all projects, or drill down into a specific project to learn more. You can also move unresolved issues within a project that need to be reclassified.

The security and privacy settings are very appealing to me. There, you can enable enhanced privacy and data sanitization, which ensures that personally identifiable information and other types of sensitive information are wiped from the logs so that they are never accidentally leaked.

Let's take a look at its core functions. All exceptions sent to Sentry will be captured with the following feature information, including:

  • environment
  • Browser
  • operating system
  • The path that triggers the exception
  • Conditions under which an exception occurs
  • Software release information
  • Abnormal severity
  • Server Name
  • Last seen time
  • Abnormally active users
  • Error type (HTTP error, 500, and 404)
  • The number of times an exception has occurred
  • Has it been resolved?

Sentry also supports a concept called breadcrumbs. As the name suggests, it is a clue of events before the problem occurred.

Breadcrumbs includes the following features:

  • Message: A string describing the event. The most common source is a message mixed with a traditional log.
  • Data: is a map of various metadata around related events (e.g. str => str). Although it has been replaced by messages today, some legacy systems still use it.
  • Category: A category can be used to label an event. It is usually something like the name of the log so that you can more easily understand what category an event belongs to after it occurs, such as authentication.
  • Level: The severity level of any error, warning, information or debug message.

You can see that the four areas listed above can already cover many aspects of the current commonly used lists. Another highlight is that it can support open source mode and fully managed service mode. In other words, you can use it for free or outsource it to Sentry. The choice is entirely in your hands.

Pricing mechanism

Honestly, I like Sentry's pricing structure the best because they support what they call a "hobbyist account," which is a permanently free account. This is convenient if you just want to experiment with the service but aren't sure if you'll actually use it for a project.

Their supported prices range from $26 per month all the way up to $449 per month. If your needs exceed this range, like other services, they also offer enterprise-level plans.

Sentry also has monthly subscription plans based on the number of events and annual plans. For more information on pricing and features, please check out https://sentry.io/pricing/. If you are keen to try the service, don't forget to apply for a "hobbyist account".

4. Rollbar

Companies using Rollbar include Kayak, Heroku, Salesforce, and Instacart. It supports languages ​​such as Ruby, PHP, Node, Python, and Java, and platforms such as iOS and Android. In addition to these, it integrates with most standard services, including Slack, HipChat, Logstash, Mailgun, Jira, Trello, Sprintly, Help Scout, and PagerDuty.

Rollbar complies with a range of industry standards, including HIPAA, ISO 27001 and Privacy Shield (https://www.privacyshield.gov/welcome). It can be protected by 2048-bit SSL encryption, Single Sign-On and Two-Factor Authentication (2FA).

Like all services, its setup wizard helps you get started, and its documentation is quite in-depth. In addition to documentation support, it also provides support via email, IRC (Internet Relay Chat), phone, and online chat.

Rollbar protects the privacy of information in a variety of ways, including: data-at-rest encryption, PII, PCI data filtering and removal, audit logs of user activity, and internal and independent penetration (PEN) testing.

Since Rollbar is fully integrated with GitHub, Bitbucket, and GitLab, you can easily track issues caused by commits when using it. This information can be obtained through the dashboard, various APIs, or using RQL (Rollbar's query language, see https://rollbar.com/docs/rql/).

Regarding Rollbar's query language (RQL), it provides a rich, SQL-like interface to data in Rollbar. RQL supports SELECT on two logical tables, item_occurrence and deployment. Those based on GROUP BY, ORDER BY, LIMIT and aggregate functions are all available, as well as arbitrary expressions in the WHERE clause.

For example:

  1. SELECT request.user_ip, count (*), count (server.host), avg (body.message.seconds), max ( timestamp )  
  2. FROM item_occurrence  
  3. WHERE item.counter = 840  
  4. AND   timestamp > unix_timestamp() - 60 * 60 * 24  
  5. GROUP   BY request.user_ip  
  6. ORDER   BY   count (*) DESC    
  7. LIMIT 100

The dashboard is simple but informative. By default, you can see:

  • Top 10 questions in the last 24 hours
  • Top 5 activities in the last 24 hours
  • Top 5 activities as of last week

You can further filter the report based on the environment. By viewing the list of all items, you can see the number of anomalies, the trend over the past 24 hours, the last time it occurred, the environment it occurred in, and the language used.

By further clicking on a certain item, you can learn about the entire history of the exception, including the browser used, operating system, request method, requested URL, server busyness, exception message body, etc.

At the same time, Rollbar can also associate exceptions with a version control system's problem library, so that they can be resolved through complete historical analysis and push-based deployment. The information it presents is not only comprehensive but also user-friendly.

Pricing mechanism

Like other services, Rollbar offers a range of flat pricing plans, from a free plan for personal projects to premium plans ranging from $49 per month to $599 per month.

In addition to these, you can also choose from the default options based on actual needs to meet special security and compliance requirements.

in conclusion

These are the four best online exception tracking services on the market. Personally, Rollbar and Sentry are my favorites because they are feature-rich and their dashboards are professional. In a word: comprehensive! Of course, the amount of information they provide may be excessive for the real situation you are facing.

If you are ready to track the exceptions encountered by your application, or want to migrate from a self-developed tracking solution to a professional outsourced service, I strongly recommend that you consider the four services we mentioned above. I believe there is always one that can suit your application needs, allowing you to invest more resources in the development of the application itself.

The Top Four Exception Tracking Services by Matthew Setter

[Translated by 51CTO. Please indicate the original translator and source as 51CTO.com when reprinting on partner sites]

<<:  After another year of tinkering, what is the dilemma facing WeChat Mini Programs?

>>:  Android 9.0 will ban developers from using unofficial APIs

Recommend

Dongying website SEO optimization cost price company outsourcing

Dongying website SEO mainly provides you with Don...

How to build a brand? Please be a showman first

We want to use the Internet to create a new brand...

The “New World” of Mobile Applications Going Global

The story of Columbus's discovery of the New ...

Year-end review: Interpretation of the top ten domestic technology news in 2021

The year of 2021, with its climaxes one after ano...

Xiaohongshu’s complete promotion and operation plan!

At the beginning, my purpose of operating Xiaohon...

Guangzhou server hosting costs, Guangzhou server rental service providers

In this era of Internet big data, fewer and fewer...

You don’t have any of these, and you say you can write code?

[[129460]] Have you heard of SEMA? It's a pre...

I am money cold auction 35-43 (video + courseware) worth more than 3,000 yuan

I am money See more articles about I Am Money The...

Toyota's global personnel changes involve several senior executives in China

According to foreign media reports, Toyota Motor ...

How much does it cost to develop an audio and video mini program in Ningbo?

How much does it cost to develop a Ningbo audio-v...

After knowing this, I don't want to eat clam vermicelli casserole anymore

Review expert: Gu Ming Di Lian (He Lin) is a well...