Configuration features

Location

Configuration relies on sirona.properties file which should be found in the sirona-core classloader.

Note: you can change the file name using org.apache.sirona.configuration system property.

Advanced configuration

Configuration relies in fact on a SPI: org.apache.sirona.configuration.ConfigurationProvider.

This interface providers two method:

  • ordinal: use to sort providers. The lowest is the first.
  • configuration: returns the properties to add in the global configuration

Note: by default a provider for sirona.properties (ordinal = 50) and one for system properties (ordinal = 100) are added.

Utilities

org.apache.sirona.configuration.Configuration has several utility methods to get int, boolean… from the properties file. You can reuse it in your sirona extensions if you want.

It will be commonly used with org.apache.sirona.configuration.ioc.IoCs class. This last allows a basic lifecycle handling of your objects. Using org.apache.sirona.configuration.ioc.IoCs.newInstance method you can decorate your class methods with org.apache.sirona.configuration.Configuration.Created and org.apache.sirona.configuration.ioc.Destroying to get lifecycle hooks.

Destroying is called when the monitoring is stopped. Generally since sirona-core is deployed in the container or JVM classloader it is with the JVM but sometimes you can deploy it in your application. In this case you’ll need to either configure the javax.servlet.ServletContextListener org.apache.sirona.web.lifecycle.SironaLifecycle from reporting module or to call manually Configuration.shutdown() method.

You can also use org.apache.sirona.configuration.ioc.AutoSet to init field of an instance using sirona configuration.

Main configuration keys (by module)

Core

  • org.apache.sirona.configuration: the configuration file path if not using the default
  • org.apache.sirona.shutdown.hook: boolean, true by default. Should be set to false when deploying sirona-core in an application (see Utilities part).
  • org.apache.sirona.gauge.max-size: int, 100 by default. Number of gauge measures to keep in memory when not persistent.
  • org.apache.sirona.gauge.memory.period: int, 4000 (ms) by default. Period for memory gauge.
  • org.apache.sirona.gauge.cpu.period: int, 4000 (ms) by default. Period for CPU gauge.
  • org.apache.sirona.store.DataStoreFactory: qualified class name, default org.apache.sirona.store.DefaultDataStoreFactory. DataStoreFactory to use.
  • org.apache.sirona.repositories.Repository: qualified class name, default org.apache.sirona.repositories.DefaultRepository. Repository to use.
  • org.apache.sirona.core.gauge.activated: a boolean to deactivate cpu/memory gauges
  • org.apache.sirona.<name>.period: the period to use to flush counters for a batch data store (like graphite one)
  • org.apache.sirona.periodic.status.period: the period to use for status reporting. Note: when using another reporter (cube typically) you’ll need to replace periodic by the specific name of the reporter (cube). Note too that period is optional to allow to share the same period between all stores.
  • org.apache.sirona.<name>.gauge.period: the default period defining when gauge snapshots are taken (default name = inmemory)
  • org.apache.sirona.<name>.aggregated.gauge.period: the default period defining when gauge snapshots are persisted/pushed (ex: graphite)
  • org.apache.sirona.counter.with-gauge: a boolean to ask to register for each counter a gauge for the max/sum/hists metrics of the counter. Only works with in memory counter stores (agent ones in general).
  • org.apache.sirona.counter.with-jmx: a boolean to ask to register a MBean for each counter. Only works with in memory counter stores.
  • org.apache.sirona.<name>.counter.clearOnCollect: boolean to clear counter after each push/pull

Reporting

  • org.apache.commons.proxy.ProxyFactory: qualified class name. ProxyFactory to use for client aop.
  • [plugin name].activated: boolean, true by default. Should the plugin referenced by [plugin.name] be used.
  • org.apache.sirona.jmx.method.allowed: boolean, true by default. Are JMX method invocation allowed.
  • org.apache.sirona.gauge.csv.separator: char, ‘;’ by default. CSV separator for CSV report.
  • org.apache.sirona.gauge.jta.period: jta gauge period
  • org.apache.sirona.gauge.memory.period: memory gauge period
  • org.apache.sirona.gauge.cpu.period: cpu gauge period
  • org.apache.sirona.reporting.activated: if auto deployment of reporting module is activated
  • org.apache.sirona.reporting.mapping: the mapping of monitoring GUI

Web

  • org.apache.sirona.web.activated: if auto deployment of web module is activated
  • org.apache.sirona.web.monitored-urls: the mapping of monitored urls
  • org.apache.sirona.web.gauge.sessions.period: the gauge period for sessions number monitoring
  • org.apache.sirona.web.gauge.status.period: when status monitoring is activated the period for status gauges
  • org.apache.sirona.web.monitored-statuses: the comma separated list of monitored statuses (if not a default list is used)

CDI

  • org.apache.sirona.cdi.enabled: a boolean to activate/deactivate CDI interceptors config
  • org.apache.sirona.cdi.performance: list of intercepted beans for performances (prefix:org.superbiz, regex:.*Service…)
  • org.apache.sirona.cdi.jta: list of intercepted beans for JTA

TomEE

  • org.apache.sirona.tomee.gauges.activated: a boolean to deactivate tomee guages (stateless pool stat)
  • org.apache.sirona.tomee.validations.activated: a boolean to deactivate tomee validations (datasource validation by validation query)

Pull

  • org.apache.sirona.agent.pull.mapping: the servlet mapping, default to /sirona/pull

Collector

  • org.apache.sirona.collector.collection.period: the timer period (in ms) when used in pull mode
  • org.apache.sirona.collector.collection.agent-urls: comma separated value of agent urls when auto registering is not used by agents
  • org.apache.sirona.collector.server.api.SecurityProvider: the basic information provider requests on agents
  • org.apache.sirona.collector.server.api.SSLSocketFactoryProvider: the ssl socket factory provider when contacting agents over ssl

cassandra

  • org.apache.sirona.cassandra.CassandraBuilder.hosts: comma separated list of hosts (IP:port)
  • org.apache.sirona.cassandra.CassandraBuilder.cluster: sirona cluster name
  • org.apache.sirona.cassandra.CassandraBuilder.keyspace: sirona keyspace name
  • org.apache.sirona.cassandra.CassandraBuilder.counterColumnFamily: sirona counter column family name
  • org.apache.sirona.cassandra.CassandraBuilder.gaugeValuesColumnFamily: sirona gauge column family name to store data
  • org.apache.sirona.cassandra.CassandraBuilder.statusColumnFamily: sirona statuses column family name
  • org.apache.sirona.cassandra.CassandraBuilder.markerGaugesColumFamily: sirona gauge by marker (= instance) column family name
  • org.apache.sirona.cassandra.CassandraBuilder.replicationFactor: replication factory for cassandra client instance