What is Python?
Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including structured (particularly procedural), object-oriented and functional programming.
Python's large standard library and numerous packages provide many tools suited to various tasks. Python web applications can be built upon well-known web server frameworks like Django or Flask.
Python application instrumentation
The appservice-python package along with a Python instrumentation library collects performance metrics and errors from the application server.
Depending on the chosen Python APM library, instrumentation of an application to collect APM events can be done in a few different ways:
- To collect data about incoming requests and background tasks, the library integrates with supported technologies to make use of hooks and signals provided by the library. These library integrations require limited code changes in your application.
- To collect data from database drivers, HTTP libraries etc., there is an instrumentation of certain functions and methods in these libraries. Instrumentations are set up automatically and do not require any code changes.
- In addition to APM and error data, the Python agent also collects system and application metrics in regular intervals. This collection happens in a background thread that is started by the library.
The ServicePilot Agent instruments supported technologies and records interesting events, like HTTP requests and database queries depending on the library used.
The instrumentation library automatically keeps track of queries to your data stores to measure their duration and metadata, as well as HTTP related information (like the URL, parameters, and headers).
These events, called Transactions and Spans, are sent to ServicePilot to gain insight into latency issues and error spikes within your application.
Python application traces monitoring
Resources are automatically created from this package after having deployed the ServicePilot Agent along with the proper Python APM library configuration. It monitors HTTP(S) web requests from Python processes.
This gathers summarized statistics (min,max,avg...) per Python application such as:
- Requests per minute
- Sum of requests by HTTP return codes and methods
- Number of requests in each response time range
- Established vs. Timed-out requests
In order to provide deep Python application insights, details collected per request include:
- Host and web page path
- Server and client IP
- Real User Response time
- HTTP Return code and method
- Client country and geolocation for public IPs
How to install a appservice-python resource?
- Use your ServicePilot OnPremise installation or a SaaS account.
- Add a new appservice-python resource via the web interface (
/prmresources) or via API (
/prmpackagespage), the default ServicePilot agent or another agent will be provisioned automatically.
Details of the appservice-python package are located in the
/prmpackagespage of the software.
ServicePilot enables you to deliver IT services faster and more securely with automated discovery and advanced monitoring features.
By correlating the technology PYTHON APM with APM and infrastructure monitoring, ServicePilot is able to provide a more comprehensive view of an organization's IT environment.
This allows IT teams to quickly identify and diagnose issues that may be impacting application performance, and take corrective action before end-users are affected.