Monitoring
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
Any configuration file property can be overridden by setting a system-wide
property with a matching key, e.g. by using the optional -D
argument at JVM
startup:
-Dmonitor.apiAccessToken = ztucZS1ZyFKgh0tUEruUtiSTXhnexmd6
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.*