Skip to main content

A backend to query AppOptics data.

Project description

Contributors Forks Stargazers Issues LinkedIn


TimeSeriesQL

A Pythonic query language for time series data

Table of Contents

About The Project

This project add AppOptics as a backend for the TimeSeriesQL ecosystem.

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

The requirements are in the requirements.txt file.

Installation

pip

pip install timeseriesql-appoptics

manual

  1. Clone the timeseriesql-appoptics
git clone https:://github.com/mbeale/timeseriesql-appoptics.git
  1. Install library
cd timeseriesql-appoptics
python setup.py install 

Usage

Appoptics is a commercial time series database product. The backend converts a query into an API call.

The backend expects a APPOPTICS_TOKEN environment variable to be set in order to authenticate to AppOptics.

AppOptics Query

from timeseriesql_appoptics import AOBackend

data = AOBackend(x for x in "metric.name")['1h'] #basic
data = AOBackend(x * 100 for x in "metric.name")['1h'] #binary operations (+, -, /, *)
data = AOBackend(x * 1.8 + 32 for x in "metric.name")['1h'] #multiple binary operations (°C to °F)
data = AOBackend(x.max for x in "metric.name")[3600:] #get max value

AppOptics Filtering

Currently only == and != are supported.

from timeseriesql_appoptics import AOBackend

data = AOBackend(x for x in "metric.name" if x.environment == 'production')[3600:]

AppOptics Grouping

from timeseriesql_appoptics import AOBackend

data = AOBackend(x for x in "metric.name").group('environment')[3600:]
data = AOBackend(x - y for x,y in AOBackend((x.max for x in "metric1"), (x.min for x in "metric2")).by('tag1'))[3600:]

AppOptics Time

from timeseriesql_appoptics import AOBackend

data = AOBackend(x for x in "metric.name")[:] #no start or end time (not recommended)
data = AOBackend(x for x in "metric.name")[3600:] #from now - 3600 seconds until now, resolution of 1
data = AOBackend(x for x in "metric.name")[3600:1800] #from now - 3600 seconds until now - 1800 seconds, resolution of 1
data = AOBackend(x for x in "metric.name")[3600::300] #from now - 3600 seconds until now resoultion of 300 seconds

AppOptics Functions

data = AOBackend(sum(derive(x)) for x in "metric.name")[3600:] #get the sums of the derivatives
data = AOBackend(zero_fill(x) for x in "metric.name")[3600::60] #zero_fill

AppOptics Raw Composite

data = AOBackend('s("some_metric", "*")')[3600:]

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Michael Beale - michael.beale@gmail.com

Project Link: https://github.com/mbeale/timeseriesql-appoptics

Project details


Release history Release notifications

Download files

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

Files for timeseriesql-appoptics, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size timeseriesql_appoptics-0.1.0-py3-none-any.whl (6.5 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size timeseriesql-appoptics-0.1.0.tar.gz (7.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page