|
|
# Fundamentals
|
|
|
|
|
|
ElasticMon is a *monitoring framework design* crafted especially for the needs and monitoring challenges of *5G mobile networks*.
|
|
|
It serves as a pipeline for storing, retrieving and exchanging a rich set of data between monitoring applications, allowing flexible data flows between monitoring applications that can be developed to collect, process and/or consume monitoring data. ElasticMon supports the monitoring of massive and (quasi-) real-time data streams for the purposes of network control and management, as well as both flat and hierarchical deployments to match the network architecture and to allow to respect the data-ownership model across different players ranging from infrastructure and service providers.
|
|
|
|
|
|
|
|
|
**Terms of use**
|
|
|
|
|
|
ElasticMon is part of the Mosaic5G software repositories, which are currently under Apache v2.0 license (available in pdf [here](http://mosaic-5g.io/resources/license.pdf)). The meta repository that includes all the submodules is located in this [here](https://gitlab.eurecom.fr/mosaic5g/mosaic5g). The code base is free for *non-commercial/academic research purposes*.
|
|
|
|
|
|
For more information on how to become a member of Mosaic5G and gain access to code and the email lists, visit the [membership section](http://mosaic-5g.io/membership/) on the Mosaic5G web site.
|
|
|
For more on accessing to Mosaic5G Resources, click [here](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/blob/master/README.md).
|
|
|
|
|
|
|
|
|
**Tutorial: download, install and run by example**
|
|
|
|
|
|
A tutorial on how to download, install and run by example is available [here](elasticmon-tutorial).
|
|
|
|
|
|
|
|
|
**Contacting and Reporting Problems**
|
|
|
|
|
|
Use our [mailing list](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/wikis/mailing-lists) for questions related to ElasticMon without embedding HTML code to your e-mail. Moreover,
|
|
|
* Visit the rest of the Mosaic5G [Wiki](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/wikis) and [API documentation](http://mosaic-5g.io/apidocs/flexran/) for more information on FlexRAN
|
|
|
* Follow the Mosaic5G newsletter to keep up-to-date with software updates, events and community news
|
|
|
* Follow us on social media: [@mosaic5g on Twitter](https://twitter.com/mosaic5g?lang=en) and [Mosaic5G on Linkedin](https://www.linkedin.com/in/mosaic-5g/)
|
|
|
* Keep track of our [Mosaic5G Website](http://mosaic-5g.io)/
|
|
|
|
|
|
|
|
|
|
|
|
## Prototype implementation and relation to FlexRAN and ElasticSearch
|
|
|
|
|
|
The current prototype version of ElasticMon works as a framework *extension* on the top of the [ElasticSearch](https://www.elastic.co/) search engine and the [FlexRAN](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/wikis/tutorials/flexran) programmable SD-RAN platform. Due to its relation to FlexRAN, ElasticMon can currently monitor RAN data as part of the Mosaic5G community-led consortium for building agile 5G service platforms and opening fast wireless innovation.
|
|
|
|
|
|
![elasticmon-prototype-implementation](uploads/2b087f57d8f04bacee3062798ee0508b/elasticmon-prototype-implementation.png)
|
|
|
|
|
|
[PDF version](uploads/491c903cd4879fa20a02c8a9bcb774fa/elasticmon-prototype-implementation.pdf) Figure 1: Prototype implementation of ElasticMon Monitoring Framework
|
|
|
|
|
|
|
|
|
Figure 1 portrays the modules of the ElasticMon prototype implementation and their interaction with ElasticSearch (ES), the [FlexRAN hierarchical controller](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/wikis/tutorials/flexran), and [OpenAirInterface (OAI)](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/wikis/tutorials/oai-ran). FlexRAN's controller runs over an OAI user plane network infrastructure, whereas ElasticSearch is used to store the control plane data from the southbound API (the FlexRAN producer). The FlexRAN Producer API is a dedicated lightweight application deployed over FlexRAN that stores the gathered raw monitoring data to the data store provided by ElasticSearch. Once data get stored, applications can consume it through the prototype's API.
|
|
|
|
|
|
|
|
|
## Currently supported features
|
|
|
|
|
|
|
|
|
* **Configerable FlexRAN producer**: Special FlexRAN control app in the
|
|
|
southbound of ElasticMon, which continuously feeds ElasticMon with monitoring
|
|
|
data. The FlexRAN producer can be configured using a [REST north-bound
|
|
|
API](http://mosaic-5g.io/apidocs/flexran/).
|
|
|
|
|
|
* **ElasticMon PC Setup:** An ElasticMon PC Setup deployed and available in Eurecom's facilities (see Figure 3).
|
|
|
|
|
|
![elasticmon-prototype-pc-setup](uploads/0756e02278cfacb9a74a9dee4a7fddb0/elasticmon-prototype-pc-setup.png)
|
|
|
|
|
|
[PDF version](uploads/a5488e5e2f89813224bb752ac5c8f57c/elasticmon-prototype-pc-setup.pdf) Figure 3: ElasticMon PC Setup.
|
|
|
|
|
|
* **Multi UE monitoring with per slice aggregation:** An arbitrary number of User Equipment (UE) devices can be indexed by the FlexRAN producer application, hence monitored by the ElasticMon prototype. Monitoring data/UE aggregation is also supported, including per slice aggregation. In further, different ElasticMon instances can be used together over one or more datastore instances. This enhances privacy guarantees via data storing isolation, alongside the filtering mechanisms that are native to ElasticSearch or any other data store to be supported as well in the future.
|
|
|
|
|
|
* **Sample control apps**: The prototype comes with a set of sample monitoring applications for testing purposes (aggregation, filtering, selection, etc.).
|
|
|
|
|
|
* **ElasticMon Webserver for API Calls:** Python Flask webserver used to send/process API requests.
|
|
|
|
|
|
* **Sample API Calls:** Sample fundamental API calls including get/post/delete examples, UE count, aggregation
|
|
|
operations on fields (average/sum/mean), etc.
|
|
|
|
|
|
* **FlexRAN Producer documentation:** Documentation about the usage and the configuration setup of the FlexRAN producer application (see FlexRAN's APIdoc).
|
|
|
|
|
|
|
|
|
* **Last, the following useful ElasticMon modules and plugins are used**:
|
|
|
|
|
|
- The ElasticSearch filtering module is *required* for data aggregation and preprocessing.
|
|
|
- The X-Pack plugin provides user management features to provide authentication and privilege control.
|
|
|
- The Beats plugin monitors the storage system's health (resource usage, latency, etc.).
|
|
|
- The Logstash plugin logs data store cluster events. Event listeners, alarms and triggers facilitate Logstash data in order to operate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Overview of usage
|
|
|
|
|
|
To use ElasticMon, you need to develop and use monitoring applications that interact with the current prototype's monitoring framework API such as shown in Figure 2. The prototype framework provides bidirectional communication among your monitoring applications, thus suiting any monitoring needs from the simplest use case of using just a single application for monitoring and data processing, up to more complex monitoring and data processing use cases that involve multiple application in serial-chain, a parallel or hybrid form of interaction portrayed in Figure 2.
|
|
|
|
|
|
![Data exchange between the control plane, and serial-chain and/or parallel applications.](uploads/eb839a76b157c378df3d9aa6e7e178bd/elastimon-multiapp-exchange.png)
|
|
|
|
|
|
[PDF version](uploads/79d2ceab3a42ffd58ce87969f06ec4d7/elastimon-multiapp-exchange.pdf) Figure 2: Data exchange between the control plane, and serial-chain and/or parallel applications.
|
|
|
|
|
|
|
|
|
**Note for High-frequency operations:** There is an unavoidable delay between separate ElasticSearch requests by applications, which is important for high-frequency operations. ElasticSearch "Bulk API" can significantly increase writing performance per data element yet at the cost of a delay for filling a data batch by FleaxRAN's controller. Use appropriate hardware and ElasticSearch node clustering configuration in production environments to improve performance.
|
|
|
|
|
|
**Serial-chain vs. Parallel applications delay:** Parallelizing operations and assigning them to concurrent monitoring applications allows to (i) distribute the processing load and (ii) to reduce the overall delay of data store transactions with ElasticSearch. This implies a potential for monitoring valuable *delay gains* compared to conventional serial-chaining of monitoring applications. However, the feasibility of parallelizing the chain of applications depends on the monitoring scenario purposes and needs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Future plans and continuous development
|
|
|
|
|
|
The current version of ElasticMon's prototype can be used to monitor the RAN segment over FlexRAN (see "Currently supported features" section). Future work includes extending ElasticMon's implementation with new features and the ability to monitor the Core segment as well via [LL-MEC](https://gitlab.eurecom.fr/mosaic5g/mosaic5g/wikis/tutorials/llmec).
|
|
|
|
|
|
Regarding new features to be added soon, these include:
|
|
|
|
|
|
* Data store Watchers, Pub/Sub and Alerts
|
|
|
* Filtering API calls based on available ElasticSearch functions. Note that ElasticSearch already includes a filtering module, which refers to in section
|
|
|
|
|
|
|
|
|
# Acknowledgement
|
|
|
|
|
|
This work has received funding from the European Union’s Horizon 2020 Framework Programme under grant agreement No. 761913 (SliceNet) and 762057 (5G-PICTURE).
|
|
|
|
|
|
|
|
|
# Credits
|
|
|
|
|
|
The Mosaic5G team
|
|
|
EURECOM graduate school and research center
|
|
|
Campus SophiaTech, Sophia Antipolis
|
|
|
2018-2019
|
|
|
|
|
|
**Developed by:**
|
|
|
[Berkay Koksal](https://github.com/koksalb)
|
|
|
2018-2019
|
|
|
|
|
|
**Design and Supervision by:**
|
|
|
[Navid Nikaein](http://www.eurecom.fr/~nikaeinn/),
|
|
|
[Xenofon Vasilakos](http://www.eurecom.fr/en/people/vasilakos-xenofon),
|
|
|
[Robert Schmidt](http://www.eurecom.fr/en/people/schmidt-robert) and
|
|
|
[Nasim Ferdosian](http://www.eurecom.fr/en/people/ferdosian-nasim)
|
|
|
2018-2019 |