Skip to main content

A helper library for pulling data from netdata into a pandas dataframe.

Project description

netdata-pandas

A helper library to pull data from netdata api into a pandas dataframe.

pypi package CI

Install

pip install netdata-pandas

Documentation

More detailed documentation can be found at https://netdata.github.io/netdata-pandas

Quickstart

Get some data into a pandas dataframe.

from netdata_pandas.data import get_data

df = get_data('london.my-netdata.io', ['system.cpu','system.load'], after=-60, before=0)
print(df.shape)
print(df.head())
(60, 12)
            system.cpu|guest  system.cpu|guest_nice  system.cpu|iowait  \
time_idx                                                                 
1604928205               0.0                    0.0                0.0   
1604928206               0.0                    0.0                0.0   
1604928207               0.0                    0.0                0.0   
1604928208               0.0                    0.0                0.0   
1604928209               0.0                    0.0                0.0   

            system.cpu|irq  system.cpu|nice  system.cpu|softirq  \
time_idx                                                          
1604928205             0.0              0.0                 0.0   
1604928206             0.0              0.0                 0.0   
1604928207             0.0              0.0                 0.0   
1604928208             0.0              0.0                 0.0   
1604928209             0.0              0.0                 0.0   

            system.cpu|steal  system.cpu|system  system.cpu|user  \
time_idx                                                           
1604928205          0.000000           0.501253         0.501253   
1604928206          0.000000           0.753769         0.502513   
1604928207          0.000000           0.505050         0.505050   
1604928208          0.000000           0.751880         0.501253   
1604928209          0.251256           0.251256         0.502513   

            system.load|load1  system.load|load15  system.load|load5  
time_idx                                                              
1604928205               0.03                 0.0               0.04  
1604928206               0.03                 0.0               0.04  
1604928207               0.03                 0.0               0.04  
1604928208               0.03                 0.0               0.04  
1604928209               0.03                 0.0               0.04  

An alternative way to call get_data() is to define what hosts and charts you want via the host_charts_dict param:

# define list of charts for each host you want data for
host_charts_dict = {
    "london.my-netdata.io" : ['system.io','system.ip'],
    "newyork.my-netdata.io" : ['system.io','system.net'],
}
df = get_data(host_charts_dict=host_charts_dict, host_prefix=True)
print(df.shape)
print(df.head())
(61, 8)
            london.my-netdata.io::system.io|in  \
time_idx                                         
1604928340                                 NaN   
1604928341                                 0.0   
1604928342                                 0.0   
1604928343                                 0.0   
1604928344                                 0.0   

            london.my-netdata.io::system.io|out  \
time_idx                                          
1604928340                                  NaN   
1604928341                            -53.89722   
1604928342                            -26.10278   
1604928343                              0.00000   
1604928344                              0.00000   

            london.my-netdata.io::system.ip|received  \
time_idx                                               
1604928340                                       NaN   
1604928341                                  49.25227   
1604928342                                 227.22840   
1604928343                                 123.56787   
1604928344                                  31.99060   

            london.my-netdata.io::system.ip|sent  \
time_idx                                           
1604928340                                   NaN   
1604928341                             -51.85469   
1604928342                             -85.22854   
1604928343                             -43.00154   
1604928344                             -19.55536   

            newyork.my-netdata.io::system.io|in  \
time_idx                                          
1604928340                                  0.0   
1604928341                                  0.0   
1604928342                                  0.0   
1604928343                                  0.0   
1604928344                                  0.0   

            newyork.my-netdata.io::system.io|out  \
time_idx                                           
1604928340                              0.000000   
1604928341                             -6.545929   
1604928342                             -9.454071   
1604928343                              0.000000   
1604928344                              0.000000   

            newyork.my-netdata.io::system.net|received  \
time_idx                                                 
1604928340                                   13.778033   
1604928341                                   18.281470   
1604928342                                   24.811770   
1604928343                                   26.406000   
1604928344                                   26.457510   

            newyork.my-netdata.io::system.net|sent  
time_idx                                            
1604928340                               -16.97193  
1604928341                               -19.23857  
1604928342                               -76.86994  
1604928343                              -165.55492  
1604928344                              -115.83034  

Examples

You can find some more examples in the examples folder.

Or if you just want to play with it right now you can use this Google Colab notebook to quickly get started.

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

netdata_pandas-0.0.41.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

netdata_pandas-0.0.41-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file netdata_pandas-0.0.41.tar.gz.

File metadata

  • Download URL: netdata_pandas-0.0.41.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for netdata_pandas-0.0.41.tar.gz
Algorithm Hash digest
SHA256 6007cc4581b0869097565549c6c931e3f3eedf73301979dcab545c6bbbe511a5
MD5 f2ffa71c73984380bc2379e2d64e09df
BLAKE2b-256 edd49e1e7d6504c653d7549ae151d838db6191b7f0917a5de6d11d25347a6b2a

See more details on using hashes here.

File details

Details for the file netdata_pandas-0.0.41-py3-none-any.whl.

File metadata

  • Download URL: netdata_pandas-0.0.41-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for netdata_pandas-0.0.41-py3-none-any.whl
Algorithm Hash digest
SHA256 334572207ea07c9a41dd9b0ec058266c754f440fd27510ae32279bac9421b5f6
MD5 8692b706864e274d7d99a74be5f1b54e
BLAKE2b-256 4863584e7f767621cccbe1f41c17b8f43b895def5e16ce6127d17c01f6e2766a

See more details on using hashes here.

Supported by

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