Monitoring configuration

Connect2id server 3.0 introduces a new monitoring endpoint for providing over 100 metrics and several backend health checks. These are implemented with help of the Dropwizard Metrics library.

The metrics can also be reported via JMX or Graphite to a remote metrics collection and visualisation server.

The monitor endpoint has its configuration in the following file:

WEB-INF/monitor.properties

1. Web API

monitor.apiAccessToken

The access token for the monitor endpoint. It is of type Bearer and non-expiring. Must contain at least 32 random alphanumeric characters to make brute force guessing impractical.

monitor.apiAccessToken = ztucZS1ZyFKgh0tUEruUtiSTXhnexmd6

2. JMX reporting

Controls metrics reporting via JMX.

monitor.enableJMX

Enables / disables monitoring via JMX.

monitor.enableJMX = false

3. Graphite reporting

Controls metrics reporting via Graphite to a remote metrics collection and visualisation server.

monitor.graphite.enable

Enables / disables metrics reporting to a Carbon server (component of the Graphite system).

monitor.graphite.enable = true

monitor.graphite.host

The Carbon server host name / IP address where the metrics will be streamed.

monitor.graphite.host = graphite.example.com

monitor.graphite.port

The Carbon server port number.

monitor.graphite.port = 2003

monitor.graphite.reportInterval

The reporting interval, in seconds.

monitor.graphite.reportInterval = 60

monitor.graphite.batchSize

Set to a positive integer to enable metrics batching using the Graphite pickle protocol. If set to zero batching is disabled, implying use of the Graphite plaintext protocol. Note that the pickle and plaintext protocols typically require a different port number.

monitor.graphite.batchSize = 0

monitor.graphite.prefix

Optional prefix for the metrics. May be used to prepend an API key and / or to specify a name for the Connect2id server node in a cluster.

To specify an API key for each streamed metrics packet:

monitor.graphite.prefix = 999d98bd-d745-4255-9f02-a3eec57c3fe5

To specify an API key and a base name for Connect2id server node:

monitor.graphite.prefix = 999d98bd-d745-4255-9f02-a3eec57c3fe5.c2id_node1

monitor.graphite.ratesTimeUnit

The time unit for reporting rates. Specified as Java TimeUnit enum constants.

monitor.graphite.ratesTimeUnit = SECONDS

monitor.graphite.durationsTimeUnit

The time unit for reporting durations. Specified as Java TimeUnit enum constants.

monitor.graphite.durationsTimeUnit = MILLISECONDS

monitor.graphite.filter

White list of metric names to report to the Carbon server, with optional wild cards. To report all metrics set the filter value to an asterisk *. More than one filter card may be specified.

To send all available metrics:

monitor.graphite.filter = *

To send only those metrics that relate to the token and user endpoint of the Connect2id server:

monitor.graphite.filter.1 = tokenEndpoint.*
monitor.graphite.filter.2 = userInfoEndpoint.*

You can also specify absolute metric names (no wild card):

monitor.graphite.filter.1 = op.idTokenIssues
monitor.graphite.filter.2 = tokenEndpoint.*
monitor.graphite.filter.3 = userInfoEndpoint.*