Skip to content

telefonicaid/fiware-sth-comet

Repository files navigation

FIWARE Short Time Historic (STH) - Comet

License Support badge Join the chat at https://gitter.im/telefonicaid/fiware-sth-comet
Quay badge Docker badge
Documentation badge CI Coverage Status Status CII Best Practices

The FIWARE Short Time Historic (STH) - Comet is in charge of managing (storing and retrieving) historical raw and aggregated time series context information about the evolution in time of context data (i.e., entity attribute values) registered in an Orion Context Broker instance.

All the communications between the STH and the Orion Context Broker as well as between the STH and any third party (typically for data retrieval) use standardized NGSI v1 interfaces.

This project is part of FIWARE. For more information check the FIWARE Catalogue entry for the Core Context Management.

📚 Documentation 🎓 Academy quay.io 🐳 Docker Hub 🎯 Roadmap

Contents

Background

This is the code repository for the FIWARE Short Time Historic (STH) - Comet, a component able to manage (storing and retrieving) historical context information as raw and aggregated time series context information.

This project is part of FIWARE.

Any feedback on this documentation is highly welcome, including bugs, typos or things you think should be included but aren't. You can use GitHub issues to provide feedback.

You can find the Users & Developers Manual and the Installation & Administration Manual on readthedocs.org

If this is your first contact with the STH component, it is highly recommended that you visit the Getting started guide where we introduce some basic concepts upon which the STH component leans on all the functionality it offers.

In case you are curious about why we called this component Comet, you can also visit the Why Comet section of the documentation.

Top

Install

Build and Install documentation for the STH component can be found at the Installation section of the documentation.

Top

Usage

Detailed information about how to run the STH component can be found at the Running the STH server section of the documentation.

Top

API overview

The STH component exposes a REST API covering 4 main functionalities:

  1. Historical raw and aggregated time series context information storage: The STH component exposes an endpoint where the notifications generated by a Context Broker instance (whenever an entity attribute value changes) can be received, processed and its associated raw and aggregated time series context information stored in an associated MongoDB database instance.
  2. Raw context information retrieval: The STH component allows the query and retrieval of historical raw context information, this is the concrete values an entity attribute took overtime, including the concrete timestamps when the value of the attributes changed.
  3. Aggregated time series context information: The STH component allows the query and retrieval of historical aggregated time series context information, this is information about the evolution of the entity attribute values grouped by time making it straight-forward to get distinct probabilistic measures such as means, standard deviations, maximum and minimum values, as well as the number of occurrences.
  4. Raw and aggregated time series context information removal: The STH component allows the removal of the raw and aggregated time series context information about the desired attributes and entities.

These APIs are detailed in the next section.

Top

API walkthrough

Detailed information about the API to store raw and aggregated time series context information can be found at the Storing historical raw and aggregated time series context information section of the documentation.

Detailed information about the API to retrieve raw context information can be found at the Getting historical raw context information section of the documentation.

Detailed information about the API to retrieve aggregated time series context information can be found at the Getting historical aggregated time series context information section of the documentation.

Detailed information about the API to remove raw and aggregated time series context information can be found at the Removing historical raw and aggregated time series context information section of the documentation.

Top

Testing

The STH component includes unit and performance tests.

Top

Unit tests

Detailed information about the unit tests included with the STH component code can be found at the Unit tests coverage section of the documentation.

Top

Performance tests

Detailed information about the performance tests included with the STH component code can be found at the Performance tests coverage section of the documentation.

Top

Advanced topics

If you are a developer, you may be interested in the following advanced topics:

Top

Roadmap

The roadmap of this FIWARE GE is described here.

Top

Support

Ask your thorough programmming questions using Stack Overflow and your general questions on FIWARE Q&A. In both cases please use the tag fiware-sth-comet.

Top

Alarms

Alarms documentation for the STH component can be found at the Alarms section of the documentation.

Top


License

STH-Comet is licensed under Affero General Public License (GPL) version 3. You can find a copy of this license in the repository.

© 2022 Telefonica Investigación y Desarrollo, S.A.U

Are there any legal issues with AGPL 3.0? Is it safe for me to use?

There is absolutely no problem in using a product licensed under AGPL 3.0. Issues with GPL (or AGPL) licenses are mostly related with the fact that different people assign different interpretations on the meaning of the term “derivate work” used in these licenses. Due to this, some people believe that there is a risk in just using software under GPL or AGPL licenses (even without modifying it).

For the avoidance of doubt, the owners of this software licensed under an AGPL 3.0 license wish to make a clarifying public statement as follows:

Please note that software derived as a result of modifying the source code of this software in order to fix a bug or incorporate enhancements is considered a derivative work of the product. Software that merely uses or aggregates (i.e. links to) an otherwise unmodified version of existing software is not considered a derivative work, and therefore it does not need to be released as under the same license, or even released as open source.