<commit_before># Roadmap (2017-11-02)

This roadmap is a tentative plan for the future development of Amon.

### Short term (1-3 months)

- Critical/Warning/Resolved levels for alerts
- Option to send alerts on trigger or state change 
- Composite alerts
- Context when defining alerts
- Data Outputs - real time export to Cloudwatch, InfluxDB, Graphite, etc.
- Health Checks history
- Health Checks TTL

### Long term (3 - 6 months)

- User Permissions
- Dashboards Improvements
<commit_msg>Update roadmap<commit_after># Amon 7.0 Roadmap

7.0 will be the next major Amon release.

It is an almost complete rewrite of the current version, building on the already 
established foundation, going one step further in the areas that make Amon unique 
and implementing the lessons learned from working extensively with InfluxDB, 
Telegraf, Kapacitor, Grafana, Prometheus, Druid and KairosDB.


## Remove Vendor Lock-in for metrics

In Amon 6.0, you can send metrics from different collector agents, like 
CollectD and Telegraf, but the metrics coming from these sources were not 
given equal status as the ones coming from the native Amon collector agent.

In 7.0 all metrics will be equal and the idea is to make it possible
to monitor your infrastructure with 3rd party collectors only, if you choose to do so.

As an Example:

You can choose Datadog to monitor your Windows machines and Telegraf for your Docker containers. 


The reasoning behind this is that the different metrics collectors have varying levels
of support for different types of applications - one agent could be very good for collecting 
Docker metrics and subpar for Database metrics. In Amon 7.0 you should be able to choose the one
which is best for your needs.


## Prometheus Support

Amon 7.0 will have a Prometheus metrics ingest pipeline and will be able to pull metrics from your 
exporters at a specified period of time. 


## No Servers, only tagged Metrics

In Amon 6.0, servers were the main logical unit. The metrics had to come from a specific server to 
be visualized and organized properly. 

In 7.0 and beyond, metrics will be using the following format:


name | value | tags
---- | ----- | ---
cpu  | 45.0  | {"host": "server-01", "region": "eu-central-1", "provider": "digitalocean"} 
memory | 300.0  | {"host": "server-01", "region": "eu-central-1", "provider": "digitalocean"} 


The new format will give you more flexibility and make it possible to group your data in
different logical units, not only servers. For example: sensors, docker containers, etc.


## Improved alerting

Amon 7.0 alerts will add the following features to the alerts

- Alert states - Critical, Warning with separate thresholds for each.
- Option to send alerts only on state change or predefined periods of time. Example: crit, every 1 hour until resolved
- Composite alerts - the option to combine multiple metrics into a single alert
- Visual contenxt - display a graph visualizing metrics and alert conditions


## Plugable Time Series database backends 

Amon 6.0 is using MongoDB for metrics storage, which is not optimal for time series data. 
7.0 will move to PostgreSQL as a default with the possibility to use other time series backends like 
InfluxDB, Druid, KairosDB, Cassandra
{'fraction_non_alphanumeric': 0.05495855081363218, 'fraction_numerical': 0.015044519496469143, 'mean_word_length': 4.035548686244204, 'pattern_counts': {'":': 6, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '40462', 'n_tokens_mistral': 919, 'n_tokens_neox': 836, 'n_words': 484}