ℹ️ SignalFx was acquired by Splunk in October 2019. See Splunk SignalFx for more information.
A Jenkins collectd plugin which users can use to send metrics from Jenkins instances to SignalFx.
- Checkout this repository somewhere on your system accessible by collectd. The suggested location is
/usr/share/collectd/
- Install the Python requirements with
sudo pip install -r requirements.txt
- Install the Metrics Plugin in Jenkins.
Manage Jenkins > Manage Plugins > Available > Search "Metrics Plugin"
- Configure the plugin (see below)
- Restart collectd
- collectd 4.9 or later (for the Python plugin)
- Python 2.7 or later
- Jenkins 1.580.3 or later
Metrics Plugin
(see installation steps)
The following are required configuration keys:
- Host - Required. Hostname or IP address of the etcd member, default is 'localhost'
- Port - Required. The port of the jenkins instance, default is '8080'
- MetricsKey - Required. The access key from
Manage Jenkins > Configure System > Metrics > ADD
. If empty, click Generate
Optional configurations keys include:
- Interval - Interval between metric calls. Default is 10s
- Username - user id with access, if any. Username will require APIToken too
- APIToken - API token from the system configuration in Jenkins.
Username > Configure > API Token > Show API Token
- Path - URL prefix to use in the HTTP request
- EnhancedMetrics - Flag to specify whether advanced stats from the
/metrics/<MetricsKey>/metrics
endpoint are needed. Default is False - IncludeMetric - Advanced Metrics from the
/metrics/<MetricsKey>/metrics
endpoint can be included individually - ExcludeMetric - Advanced Metrics from the
/metrics/<MetricsKey>/metrics
endpoint can be excluded individually - Dimension - Add extra dimensions to your metrics
- ExcludeJobMetrics - Flag to specify whether to exclude calls to
/json/api
for all jobs and builds.
- ssl_enabled - True to perform HTTP requests over TLS. Default is False
- ssl_cert_validation - False to skip certificate validation. Default is True
To enable client certificate authentication specify these options:
- ssl_keyfile - path to file
- ssl_certificate - path to file
Provide a custom file that lists trusted CA certificates, required when keyfile and certificate are provided or the server certificate is not signed by a system CA:
- ssl_ca_certs - path to file
From /metrics/<MetricsKey>/metrics
only the metrics inside gauges
key are representable, if the value is a number. Metrics of type histograms
, meter
and timer
will be skipped over. Check out https://wiki.jenkins.io/display/JENKINS/Metrics+Plugin
for description of the metrics.
Note that multiple Jenkins instances can be configured in the same file.
LoadPlugin python
<Plugin python>
ModulePath "/usr/share/collectd/collectd-jenkins"
Import jenkins
<Module jenkins>
Host "localhost"
Port "8080"
Username "john"
APIToken "f04fff7c860d884f2ef00a2b2d481c2f"
MetricsKey "6ZHwGBkGR91dxbFenpfz_g2h0-ocmK-CvdHLdmg"
Interval 10
</Module>
<Module jenkins>
Host "localhost"
Port "8010"
Username "admin"
APIToken "f04bbb7c860d8b4f1ef00a2b2d481c2f"
MetricsKey "6Z76HwGBHOj4uBOlsxbFenpfz_g2UAh0-ocmK-CvdHLSRdmg"
EnhancedMetrics False
IncludeMetric "vm.daemon.count"
IncludeMetric "vm.terminated.count"
</Module>
<Module jenkins>
Host "localhost"
Port "8000"
MetricsKey "6Z95HwOj4uBOakGR91dxbFenpfz_g2wBlUAh0-ocmK-CvdSvE1LGRdmg"
EnhancedMetrics True
ExcludeMetric "vm.terminated.count"
ExcludeMetric "vm.daemon.count"
Dimension foo bar
</Module>
</Plugin>