Skip to content

Commit

Permalink
Merge pull request #20 from zillow/feature/doc-linkage
Browse files Browse the repository at this point in the history
Feature/doc linkage
  • Loading branch information
shahsmit14 authored Aug 19, 2020
2 parents a4a80fd + ced2538 commit c7f1c65
Show file tree
Hide file tree
Showing 33 changed files with 393 additions and 126 deletions.
47 changes: 29 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,52 @@
<!-- Badges Start-->
[![PyPI version](https://badge.fury.io/py/luminaire.svg)](https://badge.fury.io/py/luminaire)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/luminaire.svg)](https://pypi.org/project/luminaire/)
[![License](http://img.shields.io/:license-Apache%202-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)
[![Luminaire CI](https://github.com/zillow/luminaire/workflows/Luminaire%20CI/badge.svg)](https://github.com/zillow/luminaire/actions)
[![Luminaire CD](https://github.com/zillow/luminaire/workflows/Luminaire%20CD/badge.svg)](https://github.com/zillow/luminaire/actions)
[![License](http://img.shields.io/:license-Apache%202-blue.svg)](https://github.com/zillow/luminaire/blob/master/LICENSE.txt)
[![Luminaire CI](https://github.com/zillow/luminaire/workflows/Luminaire%20CI/badge.svg)](https://github.com/zillow/luminaire/actions?query=workflow%3A%22Luminaire+CI%22)
[![Luminaire CD](https://github.com/zillow/luminaire/workflows/Luminaire%20CD/badge.svg)](https://github.com/zillow/luminaire/actions?query=workflow%3A%22Luminaire+CD%22)
<!-- Badges End -->

![Luminaire Logo](luminaire_logo.png)
![Luminaire Logo](luminaire/docs_source/assets/luminaire_logo.png)

**Table of contents**

- [What is Luminaire](#what-is-luminaire)
- [Quick Start](#quick-start)
- [Anomaly Detection Flow](#anomaly-detection-flow)
- [Time Series Outlier Detection Workflow](#time-series-outlier-detection-workflow)
- [Anomaly Detection for High Frequency Time Series](#anomaly-detection-for-high-frequency-time-series)
- [Contributing](#contributing)
- [Acknowledgements](#acknowledgements)
- [Development Team](#development-team)


## What is Luminaire

Luminaire is a python package that provides ML-driven solutions for monitoring time series data. Luminaire provides
several anomaly detection and forecasting capabilities that incorporate correlational and seasonal
patterns as well as uncontrollable variations in the data over time.

Please see the [full Luminaire documentation](luminaire/docs/_build/html/Introduction.html)
for detailed descriptions of the methods.
[Luminaire](https://zillow.github.io/luminaire/luminaire/docs_source/_build/html/Introduction.html) is a python package
that provides ML-driven solutions for monitoring time series data. Luminaire provides several anomaly detection and
forecasting capabilities that incorporate correlational and seasonal patterns as well as uncontrollable variations in
the data over time.

## Quick Start

Luminaire can be installed from PyPI.
Install Luminaire from [PyPI](https://pypi.org/project/luminaire/) using ``pip``

```bash
pip install luminaire
```

Import ``luminaire`` module in python
```python
import luminaire
```

Check out [Luminaire documentation](https://zillow.github.io/luminaire/luminaire/docs_source/_build/html/Introduction.html)
for detailed description of methods and usage.


## Time Series Outlier Detection Workflow
![Luminaire Flow](luminaire_flow.gif)
![Luminaire Flow](luminaire/docs_source/assets/luminaire_flow.gif)

Luminaire outlier detection workflow can be divided into 3 major components.
Luminaire outlier detection workflow can be divided into 3 major components:

### Data Preprocessing and Profiling Component

Expand All @@ -54,7 +62,7 @@ Profiling information for time series data can be used to monitor data drift and

This component performs time series model training based on the user-specified configuration OR optimized configuration
(see Luminaire hyperparameter optimization). Luminaire model training is integrated with different structural time series
models as well as filtering based models. See [Luminaire outlier detection](luminaire/docs/_build/html/basic_usage_tutorial/outlier_batch.html)
models as well as filtering based models. See [Luminaire outlier detection](https://zillow.github.io/luminaire/luminaire/docs_source/_build/html/basic_usage_tutorial/outlier_batch.html)
for more information.

The Luminaire modeling step can be called after the data preprocessing and profiling step to perform necessary data preparation before training.
Expand All @@ -63,17 +71,20 @@ The Luminaire modeling step can be called after the data preprocessing and profi

Luminaire's integration with configuration optimization enables a hands-off anomaly detection process where
the user needs to provide very minimal configuration for monitoring any type of time series data. This step can be combined with
the preprocessing and modeling for any auto-configured anomaly detection use case. See [fully automatic outlier detection](luminaire/docs/_build/html/basic_usage_tutorial/optimization.html#fully-automatic-outlier-detection)
the preprocessing and modeling for any auto-configured anomaly detection use case. See [fully automatic outlier detection](https://zillow.github.io/luminaire/luminaire/docs_source/_build/html/basic_usage_tutorial/optimization.html#fully-automatic-outlier-detection)
for a detailed walkthrough.


## Anomaly Detection for High Frequency Time Series

Luminaire can also monitor a set of data points over windows of time instead of tracking individual data points. This approach is well-suited
for streaming use cases where sustained fluctuations are of greater concern than individual fluctuations. See [anomaly detection for streaming data](/luminaire/docs/_build/html/basic_usage_tutorial/streaming.html) for detailed information.
for streaming use cases where sustained fluctuations are of greater concern than individual fluctuations. See [anomaly detection for streaming data](https://zillow.github.io/luminaire/luminaire/docs_source/_build/html/basic_usage_tutorial/streaming.html) for detailed information.


## Contributing

Want to help improve Luminaire? Check out our [contributing documentation](CONTRIBUTING.rst).
Want to help improve Luminaire? Check out our [contributing documentation](luminaire/docs_source/CONTRIBUTING.rst).


## Acknowledgements

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ All the code can be found under ``luminaire/docs_source``

Steps to update Sphinx documentation:

- Install required packages from ``~/luminaire/docs_source/sphinx-requirements.txt``
- On your local terminal cd till ``~/luminaire/docs_source`` folder
- run ``make clean``, this will remove the folder ``~/luminaire/docs_source/_build``
- run ``make html``, this will create files under ``~/luminaire/docs_source/_build``
Expand Down
Binary file not shown.
Binary file modified luminaire/docs_source/_build/doctrees/environment.pickle
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion luminaire/docs_source/_build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 733960dc2abca3fe27be8d50d43d50a2
config: d50b992c2fbe901c91156dcbef3201f3
tags: 645f666f9bcd5a90fca523b33c5a78b7
247 changes: 247 additions & 0 deletions luminaire/docs_source/_build/html/CONTRIBUTING.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">


<title>Contributions</title>


<link rel="stylesheet" href="_static/css/redactor.css" type="text/css" />


<link rel="index" title="Index" href="genindex.html"/>
<link rel="search" title="Search" href="search.html"/>
<link rel="top" title="luminaire 0.1.0 documentation" href="index.html"/>
</head>

<body role="document">



<a href="#" id="js-navigation-toggle" class="navigation-toggle">
<i class="mdi mdi-menu"></i><i class="mdi mdi-close"></i>
</a>

<section class="site-sidebar">

<nav>


<a href="index.html" class="branding-link">

luminaire






</a>


<section role="search">
<form action="search.html" method="get" class="site-searchform">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</section>



<section class="site-nav">


<ul>
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="basic_usage_tutorial/tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide/user_guide.html">User Guide</a></li>
</ul>


</section>

</nav>

</section>

<main class="site-main" role="main">












<nav class="site-breadcrumbs">
<ul>

<li>
<a href="index.html">Docs</a> /
</li>

<li class="site-breadcrumbs__leaf">Contributions</li>

</ul>
</nav>
<section class="site-content">
<div class="container">

<div class="section" id="contributions">
<h1>Contributions<a class="headerlink" href="#contributions" title="Permalink to this headline"></a></h1>
<p>Contributions are welcome, greatly appreciated and overall helps to improve the package.</p>
<div class="section" id="report-bugs">
<h2>Report Bugs<a class="headerlink" href="#report-bugs" title="Permalink to this headline"></a></h2>
<p>Before creating a new issue, do check if a <a class="reference external" href="https://github.com/zillow/luminaire/labels/bug">bug was already reported</a></p>
<p>Report bugs through <a class="reference external" href="https://github.com/zillow/luminaire/issues">GitHub Issues</a>:</p>
<ul class="simple">
<li><p>Create a <code class="docutils literal notranslate"><span class="pre">New</span> <span class="pre">Issue</span></code></p></li>
<li><p>Provide detailed information about the bug and preferably part of the code that exhibits the problem</p></li>
<li><p>Make sure to tag label as <code class="docutils literal notranslate"><span class="pre">bug</span></code></p></li>
</ul>
</div>
<div class="section" id="fix-bugs">
<h2>Fix Bugs<a class="headerlink" href="#fix-bugs" title="Permalink to this headline"></a></h2>
<p>Look through our <a class="reference external" href="https://github.com/zillow/luminaire/labels/bug">GitHub issues labeled “kind:bug”</a> for bugs.</p>
<p>Issues which are unassigned can be owned to implement it:</p>
<ul class="simple">
<li><p>Create branch name with prefix <code class="docutils literal notranslate"><span class="pre">bugfix/&lt;bug-type&gt;</span></code></p></li>
<li><p>Add relevant code fix and test case</p></li>
<li><p>Update the package version inside <code class="docutils literal notranslate"><span class="pre">setup.py</span></code></p></li>
<li><p>Update the sphinx documentation</p></li>
<li><p>Once ready for review create a PR for <code class="docutils literal notranslate"><span class="pre">master</span></code> branch</p></li>
</ul>
</div>
<div class="section" id="report-features">
<h2>Report Features<a class="headerlink" href="#report-features" title="Permalink to this headline"></a></h2>
<p>Before creating a new feature request, do check if a <a class="reference external" href="https://github.com/zillow/luminaire/labels/feature">features was already requested</a></p>
<p>Report new features through <a class="reference external" href="https://github.com/zillow/luminaire/issues">GitHub Issues</a>:</p>
<ul class="simple">
<li><p>Create a <code class="docutils literal notranslate"><span class="pre">New</span> <span class="pre">Issue</span></code></p></li>
<li><p>Provide detailed information about the feature, how it would work, benefits and scope</p></li>
<li><p>Make sure to tag label as <code class="docutils literal notranslate"><span class="pre">feature</span></code></p></li>
</ul>
</div>
<div class="section" id="implement-features">
<h2>Implement Features<a class="headerlink" href="#implement-features" title="Permalink to this headline"></a></h2>
<p>Look through the <a class="reference external" href="https://github.com/zillow/luminaire/labels/feature">GitHub issues labeled “kind:feature”</a> for features.</p>
<p>Issues which are unassigned can be owned to implement it:</p>
<ul class="simple">
<li><p>Create branch name with prefix <code class="docutils literal notranslate"><span class="pre">feature/&lt;feature-type&gt;</span></code></p></li>
<li><p>Add relevant code and test case</p></li>
<li><p>Update the package version inside <code class="docutils literal notranslate"><span class="pre">setup.py</span></code></p></li>
<li><p>Update the sphinx documentation</p></li>
<li><p>Once ready for review create a PR for <code class="docutils literal notranslate"><span class="pre">master</span></code> branch.</p></li>
</ul>
</div>
<div class="section" id="updating-sphinx-documentation">
<h2>Updating Sphinx Documentation<a class="headerlink" href="#updating-sphinx-documentation" title="Permalink to this headline"></a></h2>
<p>We use <a class="reference external" href="https://www.sphinx-doc.org/en/master/">Sphinx</a> for code documentation and
are hosted on our <a class="reference external" href="https://zillow.github.io/luminaire">Github pages</a></p>
<p>All the code can be found under <code class="docutils literal notranslate"><span class="pre">luminaire/docs_source</span></code></p>
<p>Steps to update Sphinx documentation:</p>
<ul class="simple">
<li><p>Install required packages from <code class="docutils literal notranslate"><span class="pre">~/luminaire/docs_source/sphinx-requirements.txt</span></code></p></li>
<li><p>On your local terminal cd till <code class="docutils literal notranslate"><span class="pre">~/luminaire/docs_source</span></code> folder</p></li>
<li><p>run <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">clean</span></code>, this will remove the folder <code class="docutils literal notranslate"><span class="pre">~/luminaire/docs_source/_build</span></code></p></li>
<li><p>run <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">html</span></code>, this will create files under <code class="docutils literal notranslate"><span class="pre">~/luminaire/docs_source/_build</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">add</span> <span class="pre">~/_build</span></code></p></li>
<li><p>commit updated files as part of the PR</p></li>
</ul>
</div>
<div class="section" id="github-workflow-ci-cd">
<h2>Github Workflow (CI/CD)<a class="headerlink" href="#github-workflow-ci-cd" title="Permalink to this headline"></a></h2>
<p>Github Workflow is used for CI/CD.</p>
<p>Luminaire CI:</p>
<p>One each commit <a class="reference external" href="https://github.com/zillow/luminaire/actions?query=workflow%3A%22Luminaire+CI%22">Luminaire CI Workflow</a> is invoked.
Details about the Luminaire CI Workflow can be found <a class="reference external" href="https://github.com/zillow/luminaire/blob/master/.github/workflows/python-app.yml">here</a></p>
<p>Luminaire CD:</p>
<p>For releasing the code and making it available on PyPI, follow this steps:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">setup.py</span></code> has a new version specified</p></li>
<li><p>PR for <code class="docutils literal notranslate"><span class="pre">master</span></code> branch is approved and merged</p></li>
<li><p><a class="reference external" href="https://github.com/zillow/luminaire/releases/new">Create a new release</a></p></li>
<li><p>Specify the <code class="docutils literal notranslate"><span class="pre">Tag</span> <span class="pre">version</span></code> with prefix <code class="docutils literal notranslate"><span class="pre">v&lt;version&gt;</span></code> example: v0.1.0</p></li>
<li><p>Select <code class="docutils literal notranslate"><span class="pre">master</span></code> branch</p></li>
<li><p>Provide relevant release title and description</p></li>
<li><p>If this is a pre-release check the box</p></li>
<li><p>Click <code class="docutils literal notranslate"><span class="pre">Publish</span> <span class="pre">release</span></code> and this will trigger <a class="reference external" href="https://github.com/zillow/luminaire/blob/master/.github/workflows/python-publish.yml">Luminaire CD Workflow</a></p></li>
<li><p>Check <a class="reference external" href="https://pypi.org/project/luminaire/#history">PyPI release history</a></p></li>
</ul>
</div>
<div class="section" id="submit-feedback">
<h2>Submit Feedback<a class="headerlink" href="#submit-feedback" title="Permalink to this headline"></a></h2>
<p>The best way to send feedback is by <a class="reference external" href="https://github.com/zillow/luminaire/issues">creating an issue on GitHub</a>.</p>
<ul class="simple">
<li><p>Create a <code class="docutils literal notranslate"><span class="pre">New</span> <span class="pre">Issue</span></code></p></li>
<li><p>Provide detailed information about feedback</p></li>
<li><p>Make sure to tag label as <code class="docutils literal notranslate"><span class="pre">feedback</span></code></p></li>
</ul>
</div>
</div>


</div>

</section>




<div class="source-link">


<a href="_sources/CONTRIBUTING.rst.txt" rel="nofollow">
<i class="mdi mdi-code-tags"></i>
View page source
</a>


</div>




</main>

<footer class="site-footer">
<div class="container">

<div role="contentinfo">
<p>
&copy; Copyright 2020 Zillow, Inc..
</p>
</div>
<p>Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/testthedocs/sphinx_ttd_theme">theme</a>
provided by <a href="https://testthedocs">TestTheDocs</a>.

</div>
</footer>



<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'',
VERSION:'0.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/theme-min.js"></script>
</body>
</html>
2 changes: 0 additions & 2 deletions luminaire/docs_source/_build/html/Introduction.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@

<link rel="stylesheet" href="_static/css/redactor.css" type="text/css" />

<link rel="stylesheet" href="_static/graphviz.css" type="text/css" />


<link rel="index" title="Index" href="genindex.html"/>
<link rel="search" title="Search" href="search.html"/>
Expand Down
Loading

0 comments on commit c7f1c65

Please sign in to comment.