Configuration Enabling Time Series Integration Layer Horizon can be configured to use the Time Series Integration Layer by setting the following property in ${OPENNMS_HOME}/etc/opennms.properties: org.opennms.timeseries.strategy=integration After activating the Time Series Integration Layer, you need to start an actual implementation. Do this via Karaf. Here is an example of how to activate the in memory time series plugin: clone & build: git clone git@github.com:opennms-forge/timeseries-integration-inmemory.git mvn install in Karaf shell: bundle:install -s mvn:org.opennms.plugins.timeseries.inmemory/timeseries-inmemory-plugin/1.0.0-SNAPSHOT For specific instructions, check your plugin description. We also highly recommend that you reference resources stored in the Time Series Integration Layer by their foreign source and foreign ID, as opposed to their database ID. To this end, set the following property in the same file: org.opennms.rrd.storeByForeignSource=true With these set, Horizon will begin persisting metrics using the Time Series Integration Layer when restarted. Additional configuration options are presented in the next section. Configuration Reference The following properties, found in ${OPENNMS_HOME}/etc/opennms.properties, can be used to configure and tune the Time Series Integration Layer. General Name Default Description org.opennms.timeseries.config.ring_buffer_size 8192 Maximum number of records that can be held in the ring buffer. Must be a power of two. org.opennms.timeseries.config.writer_threads 16 Number of threads used to pull samples from the ring buffer and insert them into the Time Series Database. org.opennms.timeseries.query.minimum_step 300000 Minimum step size in milliseconds. Used to prevent large queries. org.opennms.timeseries.query.interval_divider 2 If no interval is specified in the query, the step will be divided into this many intervals when aggregating values. org.opennms.timeseries.query.heartbeat 450000 Duration in milliseconds. Used when no heartbeat is specified. Should generally be 1.5x your largest collection interval. org.opennms.timeseries.query.parallelism Number of cores Maximum number of threads that can be used to compute aggregates. Defaults to the number of available cores. cache.timeseriesPersisterMetaTagCache.expireAfterRead 300 Expiry time in seconds for MetaTagCache. cache.timeseriesPersisterMetaTagCache.maximumSize 8192 Maximum size for MetaTagCache. cache.timeseriesPersisterMetaTagCache.recordStats true Should cache statistics be exposed via JMX for MetaTagCache? cache.timeseriesSearcherCache.expireAfterRead 300 Expiry time in seconds for TimeseriesSearcherCache. cache.timeseriesSearcherCache.maximumSize 8192 Maximum size for TimeseriesSearcherCache. cache.timeseriesSearcherCache.recordStats true Should cache statistics be exposed via JMX for TimeseriesSearcherCache? cache.timeseriesMetaDataCache.expireAfterRead 300 Expiry time in seconds for TimeseriesMetaDataCache. cache.timeseriesMetaDataCache.maximumSize 8192 Maximum size for TimeseriesMetaDataCache. cache.timeseriesMetaDataCache.recordStats true Should cache statistics be exposed via JMX for TimeseriesMetaDataCache? Recommendations Caches have been introduced to improve performance. You might need to tune the cache settings to suit your needs. See parameters above. Name Description TimeseriesMetaDataCache Caches metadata that uses Horizon internally. TimeseriesSearcherCache Caches metrics by tag to improve the resource lookup. TimeseriesPersisterMetaTagCache Caches all additionally configured and resolved meta-tag values by resource. The samples gathered by the collectors are temporarily stored in a ring buffer before they are persisted to the Time Series Integration Layer. The value of the ring_buffer_size should be increased if you expect large peaks of collectors returning at once or latency in persisting these. However, note that the memory used by the ring buffer is reserved, and larger values may require an increased heap size. Expose additional meta tags Metrics that are stored via the time series plugin contain the minimal set of tags for Horizon to work. This might not be sufficient if the data is used outside of Horizon as well. Configure additional meta tags via ${OPENNMS_HOME}/etc/opennms.properties. The configuration of the tags has the following form: prefix.tagKey=${\query expression} The prefix is: org.opennms.timeseries.tin.metatags.tag The tagKey can by an arbitrary string as long as it doesn’t break the java property file syntax. The query expression lets you query the value. Supports use of the Meta-Data-DSL Examples: org.opennms.timeseries.tin.metatags.tag.nodelabel=${node:label} org.opennms.timeseries.tin.metatags.tag.sysObjectID=${node:sys-object-id} Expose categories by setting org.opennms.timeseries.tin.metatags.exposeCategories to true. Example: org.opennms.timeseries.tin.metatags.exposeCategories=true will lead to: Tag("cat_myFirstCategory", "myFirstCategory") Tag("cat_mySecondCategory", "mySecondCategory") Timeseries Integration Layer Daemon Configuration Files