AppSignal is an easy-to-use APM on your Ruby, Elixir, Node.js, frontend JavaScript, and Python tasks. On this article, we’ll present you the way you should use AppSignal to energy up your Python app with our newest coding endeavor, Nesstr, the courting app for snakes.

AppSignal helps 1000’s of builders, from novice to knowledgeable, higher perceive how and why their app is performing the best way it’s. In brief: AppSignal ingests your whole app’s advanced efficiency knowledge and interprets it into easy-to-understand, actionable insights.

We created this text in partnership with AppSignal. Thanks for supporting the companions who make Pylogix doable.

Desk of Contents

What Is an APM, and How Can It Assist You?

Utility efficiency monitoring (APM) instruments assist rework your app’s monitoring knowledge — often known as metrics — into sensible insights that enable you improve your app’s efficiency.

AppSignal gives instruments that detect exceptions, efficiency issues, and anomalies resembling excessive response occasions and gradual background job queues.

In different phrases, for those who think about an app is a automotive, AppSignal is a diagnostics software. We provide you with glanceable insights into the efficiency and well being of your app, serving to you recognize when to take motion earlier than any warning lights begin flashing.

Squashing Bugs with AppSignal

Typically, regardless of handbook and automatic testing, bugs slip by way of to manufacturing. When this occurs, it may be fairly irritating and time-consuming to pinpoint the basis explanation for a difficulty.

Let’s think about a state of affairs the place customers of Nesstr report not receiving notifications when somebody likes their profile. The seemingly easy motion of “liking” a profile entails a number of parts. Apps make it difficult to find out the place the basis of the problem may reside. For instance, is it in a React part, an API perform, or a Celery background process?

That is the place AppSignal will help us, by eliminating guesswork and figuring out the place an exception happens inside our app. Within the case of Nesstr, we’ve configured AppSignal to inform us through Slack at any time when a difficulty arises in our app.

As soon as we’ve been alerted to this exception, we will delve deeper into AppSignal for a extra complete understanding of the incident. AppSignal supplies us with an in depth context for every recorded exception incidence.

error incident

Due to the detailed exception knowledge supplied by AppSignal, we will rapidly determine the basis explanation for the problem in our code. Trying on the error message logged in AppSignal, we will inform that our app is making an attempt to retrieve the identify attribute from a noneType object within the send_like_notification Celery process:

def like_profile(profile, consumer):

consumer = Consumer.get(user_id) 
profile = Profile.get(profile_id)
like_profile(publish, consumer)

As an alternative of manually reproducing your entire circulation of likes to seek out this error, we will instantly resolve it by guaranteeing the noneType object is outlined. Good!

Monitoring Efficiency with AppSignal

Having fastened our “like” notifier, AppSignal has observed our fetch_matches endpoint is responding slowly. Due to AppSignal’s insights, we don’t want to attend for a consumer to complain to us, nor do we now have to undergo the difficulty of downloading a sanitized database clone to attempt to reproduce the problem domestically. We will evaluation the Occasion timeline of the fetch_profiles efficiency samples that AppSignal has recorded.

event timeline

Right here, we will simply see that psycopg2 is lagging when the request_match endpoint is requested, slowing down our app.

AppSignal has not solely lower out all of the guesswork from determining why the endpoint is gradual, however it’s helped us proactively determine a possible future bottleneck. We will now amend our endpoint and scale confidently.

Being Alerted of Anomalies with AppSignal

Now that we’ve used AppSignal to sort out some extra obvious points in our app, we will make the most of AppSignal to assist us take a extra proactive method to improvement and anticipate points even earlier than they floor.

At AppSignal, we name this anomaly detection. This characteristic is a sport changer. We will use it to flag errors and spot sluggish efficiency earlier than it impacts finish customers or our app’s availability.

With Anomaly detection, we will create triggers that notify us when a desired metric meets a particular threshold — resembling when our error price exceeds 5%, or an endpoint takes greater than 200ms to reply.

create trigger

The beauty of anomaly detection is that we will configure it in a method that is sensible on your app and be notified in a method that is sensible on your group. With AppSignal, you possibly can combine with many widespread third-party collaboration instruments like Discord and Slack, which means AppSignal integrates into your circulation quite than forcing you to vary the way you often work.

Holding Your Monitoring Observable with AppSignal

AppSignal’s dashboards provide you with instantaneous visible insights into your app’s metrics, permitting you to trace and hint efficiency metrics rapidly.

metric dashboard

In case you see one thing you need to examine additional, resembling a quickly growing error price, click on on that time on the chart, and also you’ll view the state of your app at that particular time limit.

You possibly can add customized markers that will help you and your group higher perceive how your app performs, and with full-screen help, you possibly can monitor your metrics wherever you possibly can set up a display screen.

Managing Your Logs with AppSignal

Typically, logs give us nice insights into why our app is performing unexpectedly. With AppSignal, you don’t must SSH into servers and path your logs. AppSignal can ingest your app’s logs, supplying you with a reside view, and you’ll filter, question, and share with teammates.

So, you possibly can go from viewing an error incident in AppSignal to viewing logs on the time of the incidence in seconds.

What’s nice about AppSignal logging is that irrespective of the place you might be within the AppSignal app, with our superb Time Detective characteristic, you’re by no means various clicks out of your logs.

When investigating an error or efficiency incident, you should use Time Detective to achieve a helicopter view of your app efficiency when the problem occurred and delve deeper into your logs for extra in-depth debugging.

Getting Began with AppSignal

You possibly can have your Python app push metrics to AppSignal in much less time than it takes to drink a espresso.

Sign up for an AppSignal account and comply with our set up wizard directions. The set up wizard will stroll you thru all of the steps wanted to ship metrics out of your Python app to AppSignal!

Our Python documentation may also take you thru all of the steps required to get the metrics you want, together with how one can set up AppSignal manually.