Skip to main content

Platform Integrated Performance Analytics, PIPA

Project description

PIPA

PIPA (Progressive & Intelligent Performance Analytics) is a platform that aggregates a complete toolchain of performance data collection, processing, and analysis with advanced algorithms, enabling users to effortlessly obtain in - depth insights into the performance of their systems and applications. It bridges the gap between raw performance data and actionable information, allowing for quick identification of bottlenecks and optimization opportunities.

PIPA (ๆž‡ๆท, loquat) is a local fruit of Zhejiang, China. PIPA consists of three parts: loquat tree, flower and fruit, which represent the collecting & processing, analysis and conclusion of performance data respectively.

PIPA is still in the active development process, and the current development focus is on the loquat tree.

GitHub License GitHub Actions Workflow Status GitHub top language Code style: black Coverage Status

Features

  • Data Collecting: PIPA can collect data from a variety of sources, using tools like perf, sar, and more. It supports multiple platforms including x86_64, ARM, and RISC-V, making it versatile and adaptable. Currently PIPA is capable of collecting and parsing perf and sar data, providing detailed performance metrics.
  • Script Generation: To reduce the noise generated by the Python runtime, PIPA can generate scripts that collect performance data.
  • Data Processing: PIPA can process the collected performance data, including alignment and segmentation, to serve meaningful analysis.
  • Data Visualization: PIPA can visualize based on the performance data collected to provide intuitive insights.
  • Data Analytics: PIPA will integrate SPAIL's performance methodology and models to provide meaningful analysis and reveal software and hardware bottlenecks.
sequenceDiagram
    participant User as ๐Ÿ‘ค User/External System
    participant Fruit as ๐ŸŽ PIPA Fruit<br/>๐Ÿ“Š Insights & Visualization
    participant Flower as ๐ŸŒธ PIPA Flower<br/>๐Ÿ” Analysis & Attribution
    participant Tree as ๐ŸŒณ PIPA Tree<br/>๐Ÿ“ฅ Data Collection & QC
    participant Source as ๐Ÿ”Œ Data Sources<br/>(perf, sar, eBPF...)

    Note over User, Source: ๐Ÿš€ Main Data Flow: From Collection to Insights
    User->>Fruit: ๐Ÿ“จ Submit performance analysis request
    activate Fruit
    Fruit->>Flower: ๐Ÿ“‹ Forward analysis requirements
    activate Flower

    Flower->>Tree: ๐Ÿ“Š Request performance data
    activate Tree
    Tree->>Source: ๐Ÿ” Collect multi-source performance data
    activate Source
    Source-->>Tree: ๐Ÿ“„ Return raw data
    deactivate Source

    Note over Tree: ๐Ÿ›ก๏ธ Execute Data Quality Control<br/>- โœ… Validation rules<br/>- ๐Ÿงน Auto-cleansing & tagging<br/>- ๐Ÿ’ป Platform abstraction (x86/ARM/RISC-V)
    Tree-->>Flower: โœ… Return validated, reliable data
    deactivate Tree

    Note over Flower: ๐Ÿ”ฌ Perform Deep Analysis & Attribution<br/>- ๐Ÿ“ˆ System-level workload characterization analysis<br/>- ๐Ÿ”ฅ Code-level profiling (hotspot/lock)<br/>- โš™๏ธ Instruction-level tracing<br/>- ๐Ÿ”— Cross-layer correlation & attribution
    Flower-->>Fruit: ๐Ÿ“Š Return bottleneck analysis results &<br/>๐Ÿ” root cause insights
    deactivate Flower

    Note over Fruit: ๐Ÿ’ก Generate Actionable Insights<br/>- ๐Ÿ“ˆ Interactive dashboards<br/>- ๐Ÿ’ก Optimization opportunities<br/>- โœ… Actionable recommendations
    Fruit-->>User: ๐Ÿ“‹ Deliver visualization report &<br/>๐Ÿ’ก suggestions
    deactivate Fruit

    Note over Flower, Tree: ๐Ÿ”„ Feedback Loop: Continuous Optimization
    Flower->>Tree: ๐Ÿ’ฌ Provide data quality feedback &<br/>๐Ÿ“‹ new requirements
    activate Tree
    Tree-->>Flower: โœ… Confirm & adjust collection strategy
    deactivate Tree

Installation

PIPA can be easily installed using pip:

pip install PyPIPA

Quickstart

After installation, you can start using PIPA to collect, integrate, and analyze your data.

To generate a script that collect performance data, you only need to use:

pipa generate

Then you can complete the interaction through the CLI to provide the necessary parameters. You can choose to start the workload with perf, or you can choose to observe the system directly.

For the detailed case study, please refer to the quick-start.

PIPA's API documentation is available at https://zju-spail.github.io/pipa/.

Build

To build PIPA, you can use the python command with the build module: python -m build, we use hatchling as the build backend.

LICENSE

PIPA is distributed under the terms of the MIT License.

Contributing

Contributions to PIPA are always welcome. Whether it's feature enhancements, bug fixes, or documentation, your contributions are greatly appreciated.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypipa-0.0.18.tar.gz (935.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypipa-0.0.18-py3-none-any.whl (124.8 kB view details)

Uploaded Python 3

File details

Details for the file pypipa-0.0.18.tar.gz.

File metadata

  • Download URL: pypipa-0.0.18.tar.gz
  • Upload date:
  • Size: 935.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for pypipa-0.0.18.tar.gz
Algorithm Hash digest
SHA256 b158c4833a876790fcf6af7f31ab52ee29ff0585d475d6d2756ff7e87b8eaa90
MD5 534b9a40e79cf3234c875fe09d8b7e69
BLAKE2b-256 827a1714ee38455f0e323bde4b1d6e57b916a71eab3345700980cf0e8b2bfd0a

See more details on using hashes here.

File details

Details for the file pypipa-0.0.18-py3-none-any.whl.

File metadata

  • Download URL: pypipa-0.0.18-py3-none-any.whl
  • Upload date:
  • Size: 124.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for pypipa-0.0.18-py3-none-any.whl
Algorithm Hash digest
SHA256 4287c7133d014aafbd24a5e1e0cb081a230396bea2de0dc03d4c2d71697b41f6
MD5 91e4a64897f0cecb9ea5513d718fd712
BLAKE2b-256 adcf2e3c4b3640887637e8b46fe9d8dbdef898af72be8f9bb73d05f16b1a0a64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page