Skip to main content

pybana

Build Status codecov

🚧 CAREFUL! WORK IN PROGRESS 🚧

What is this?

This is a kibana client written in python. It provides two kind of utilities

  • An ORM layer. The goal is to ease the manipulation of kibana objects such as index-pattern, visualization, dashboard. This ORM provides:
    • Modeling using elasticsearch_dsl.
    • helpers to extract useful information from kibana objects (ex: the index pattern associated to a visualization).
    • reverse relationships between index-pattern & visualizations, visualizations & dashboards.
  • A translation layer. The goal is to mimic kibana behaviour in terms of data fetching and visualization rendering. Thus, there are two types of translators:
    • elastic. It transforms a kibana visualization definition into an elasticsearch query.
    • vega. It transforms a kibana visualization and data fetched into a vega spec.

Why?

The ORM was implemented to ease the automatic creation/update of kibana objects. For instance:

  • If you've added an access-control layer on top of kibana to handle multi-tenancy, you may want to automate the creation of kibana indexes and the default index-pattern.
  • If an index-pattern correspond to a table defined somewhere else (like a sql table), you may want to automate the creation of index-pattern.
  • If a dashboard is defined in another database (like a sql db), you may want to delete the kibana object if the sql object is deleted.

The translation layer was implemented to progressively get rid of kibana. Even if kibana is a fantastic tool, it's more meant for internal use than for an integration in another application.

The elastic translator aims to generate almost identical queries to elasticsearch as kibana.

The vega translator tries to provide an equivalent in vega of kibana visualisation. Currently, it supports a limited set of options. Vega was chosen as it provide a complex but almost exhaustive visualization grammar. Vega'sapi allows the rendering of visualizations both on the backend and frontend and has bridges with the main js frameworks (react, vue…).

Roadmap

  • ORM
    • Automatic creation of index pattern
  • Elastic translator:
    • Handle more bucket type: ipv4, significatn terms etc
    • Handle more metrics: top hit, sibling etc
  • Vega translator:
    • Handle more visualization types (gauge, metric, map etc)
  • Versions
    • For now, only elk stack 6.7.1 is handled.

License

Licensed under MIT license.

History

0.5.1

  • Fix case when a datasweet formula depends on other datasweet formula

0.5.0

  • Add support for vega visualizations

0.4.2

  • Fix Add support for terms sorting by custom metric

0.4.1

  • Fix format_from_interval for week intervals

0.4.0

  • Handle Category axe rotation

0.3.1

  • Handle ZeroDivisionError in datasweet

0.3.0

  • Rename Context to Scope
  • Add BaseDocument.json_attrs to simplify parsing of some fields (ex: Dashboard.panelsJSON)
  • Add datasweet support
  • Add support for using in client

0.2.0

  • Add Search model
  • Add VegaRenderer and vega-cli

0.1.0

  • First version

Metadata

Release files for pybana 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pybana 0.5.1
File Size Uploaded Provenance Actions
pybana-0.5.1.tar.gz 32.8 kB Without provenance Details for pybana-0.5.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pybana 0.5.1
File Interpreter ABI Platform Actions
pybana-0.5.1-py3-none-any.whl Python 3 none any Details for pybana-0.5.1-py3-none-any.whl

Total release size: 36.7 kB

Release files / pybana-0.5.1.tar.gz

Download URL pybana-0.5.1.tar.gz
Size 32.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6770ffdc6125f7b7f808b06ca58c37a6d839d18c80bcaa38dc4b313545461e6c
BLAKE2b-256 checksum
How to use checksums
dcbd0545072ae312c4f4be952030f3b59a1a5a14588761e77c638a8fdcc32d2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5

Release files / pybana-0.5.1-py3-none-any.whl

Download URL pybana-0.5.1-py3-none-any.whl
Size 3.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6d5bf20802b6297b1a87f2ed7f01c81ef67c14e0417b9913a96c4dba60322ef
BLAKE2b-256 checksum
How to use checksums
2e6312e850b4be2bed6552ab94a57ec98d8775ade1436d8c957609c3da4dba1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5

Security for pybana 0.5.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page