Abstract
Monitoring a large and complex system such as a data center generates many time series of metric data, which are often stored using a database system specifically designed for managing time series data. Different, possibly distributed, databases may be used to collect data representing different aspects of the system, which complicates matters when, for example, developing data analytics applications that require integrating data from two or more of these. From the developer’s point of view, it would be highly convenient if all of the required data were available in a single database, but it may well be that the different databases do not even implement the same query language. To address this problem, we propose using an ontology to capture the semantic similarities among different time series database systems and to hide their syntactic differences. Alongside the ontology, we have developed a Python software framework that enables the developer to build and execute queries using classes and properties defined by the ontology. The ontology thus effectively specifies a semantic query language that can be used to retrieve data from any of the supported database systems, and the Python framework can be set up to treat the different databases as a single data store that can be queried using this semantic language. This is demonstrated by presenting an application involving predictive analytics on resource usage and electricity consumption metrics gathered from a Kubernetes cluster, stored in Prometheus and KairosDB databases, but the framework can be extended in various ways and adapted to different use cases, enabling machine learning research using distributed heterogeneous data sources