GitHub Enterprise can gather data with collectd and send it to an external collectd server. Among other metrics, we gather a standard set of data such as CPU utilization, memory and disk consumption, network interface traffic and errors, and the VM's overall load.

Set up an external collectd server

If you haven't already set up an external collectd server, you will need to do so before enabling collectd forwarding on your GitHub Enterprise instance. Your collectd server must by running collectd version 5.x or higher.

  1. Log into your collectd server.
  2. Create or edit the collectd configuration file to load the network plugin and populate the server and port directives with the proper values. On most distributions, this is located at /etc/collectd/collectd.conf

An example collectd.conf to run a collectd server:

LoadPlugin network
...
...
<Plugin network>
    Listen "0.0.0.0" "25826"
</Plugin>

Enable collectd forwarding on GitHub Enterprise

By default, collectd forwarding is disabled on GitHub Enterprise. Follow the steps below to enable and configure collectd forwarding:

  1. In the upper-right corner of any page, click . Rocketship icon for accessing site admin settings

  2. In the left sidebar, click Management Console. Management Console tab in the left sidebar

  3. Below the log forwarding settings, select Enable collectd forwarding.

  4. In the Server address field, type the address of the collectd server to which you'd like to forward GitHub Enterprise appliance statistics.
  5. In the Port field, type the port used to connect to the collectd server. (Defaults to 25826)
  6. In the Cryptographic setup dropdown menu, select the security level of communications with the collectd server. (None, signed packets, or encrypted packets.)
  7. At the bottom of the Management Console configuration page, click Save settings. Settings save button

Exporting collectd data with ghe-export-graphs

The command-line tool ghe-export-graphs will export the data that collectd stores in RRD databases. This command turns the data into XML and exports it into a single tarball (.tgz).

Its primary use is to provide the GitHub Enterprise Support team with data about a VM's performance, without the need for downloading a full Support Bundle. It shouldn't be included in your regular backup exports and there is no import counterpart. If you contact GitHub Enterprise Support, we may ask for this data to assist with troubleshooting.

Usage
ssh -p 122 admin@[hostname] -- 'ghe-export-graphs' && scp -P 122 admin@[hostname]:~/graphs.tar.gz .

Troubleshooting

Central collectd server receives no data

GitHub Enterprise ships with collectd version 5.x. collectd 5.x is not backwards compatible with the 4.x release series. Your central collectd server needs to be at least version 5.x to accept data sent from your GitHub Enterprise instance.

For help with further questions or issues, contact GitHub Enterprise Support.