Skip to content

mbeale/timeseriesql-appoptics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues LinkedIn


TimeSeriesQL-AppOptics

A TimeSeriesQL backend for the AppOptics service

Table of Contents

About The Project

This project adds 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages