Skip to main content

HiQ - A Modern Observability System

Project description

Documentation Status CodeCov Github release lic

HiQ is a declarative, non-intrusive, dynamic and transparent tracking system for both monolithic application and distributed system. It brings the runtime information tracking and optimization to a new level without compromising with speed and system performance, or hiding any tracking overhead information. HiQ applies for both I/O bound and CPU bound applications.

To explain the four features, declarative means you can declare the things you want to track in a text file, which could be a json, yaml or even csv,and no need to change program code. Non-intrusive means HiQ doesn’t requires to modify original python code. Dynamic means HiQ supports tracing metrics featuring at run time, which can be used for adaptive tracing. Transparent means HiQ provides the tracing overhead and doesn’t hide it no matter it is huge or tiny.

In addition to latency tracking, HiQ provides memory, disk I/O and Network I/O tracking out of the box. The output can be saved in form of normal line by line log file, or HiQ tree, or span graph.

Installation

pip install hiq-python

Get Started

Let start with a simplest example by running HiQ against a simple monolithic python code 📄 main.py:

# this is the main.py python source code
import time

def func1():
    time.sleep(1.5)
    print("func1")
    func2()

def func2():
    time.sleep(2.5)
    print("func2")

def main():
    func1()

if __name__ == "__main__":
    main()

In this code, there is a simple chain of function calls: main() -> func1 -> func2.

Now we want to trace the functions without modifying its code. Let’s run the following:

git clone https://github.com/oracle-samples/hiq.git
cd hiq/examples/quick_start
python main_driver.py

If everything is fine, you should be able to see the output like this:

https://raw.githubusercontent.com/oracle-samples/hiq/main/hiq/docs/source/img/main_driver.jpg

An HiQ Simplest Example

From the screenshot we can see the timestamp and the latency of each function:

main

func1

func2

tracing overhead

latency(second)

4.0045

4.0044

2.5026

0.0000163

HiQ just traced the main.py file running without touching one line of its code.

Documentation

HTML: 🔗 HiQ Online Document, PDF: 🔗 HiQ PDF Document.

Examples

Please check 🔗 examples for usage examples.

Contributing

HiQ welcomes contributions from the community. Before submitting a pull request, please review our 🔗 contribution guide.

Security

Please consult the 🔗 security guide for our responsible security vulnerability disclosure process.

License

Copyright (c) 2022 Oracle and/or its affiliates. Released under the Universal Permissive License v1.0 as shown at https://oss.oracle.com/licenses/upl/.

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

hiq-python-1.1.6rc0.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

hiq_python-1.1.6rc0-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file hiq-python-1.1.6rc0.tar.gz.

File metadata

  • Download URL: hiq-python-1.1.6rc0.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for hiq-python-1.1.6rc0.tar.gz
Algorithm Hash digest
SHA256 6a912f20b5d3377acf9b563936cfb03789675b9ea714b6f52289231270cc9ae4
MD5 0e6696c8d7a08fd3e4bce7fe81c2adef
BLAKE2b-256 2f6d30b5f79810b1448e28f3877dd45e155809650cdd95a4e70475b14df91dd7

See more details on using hashes here.

File details

Details for the file hiq_python-1.1.6rc0-py3-none-any.whl.

File metadata

File hashes

Hashes for hiq_python-1.1.6rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 35915f1035c3a735eff3b976e1ae6b809f6a351df581f69a68af82cb82c6ad49
MD5 45acfc62d4fa59b79c4db2ad0a3aa5d4
BLAKE2b-256 6d4929f2e82a1f967961c0be5e443ecc6dfce09135c9c8cf3e9cac621c73fdb7

See more details on using hashes here.

Supported by

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