AlertServer
===========

AlertServer is a server which periodically queries InfluxDB and generates
alerts based on rules defined in alerts.cfg.


### AlertServer ###
It needs the following project level metadata set:

    metadata.COOKIESALT
    metadata.CLIENT_ID
    metadata.CLIENT_SECRET
    metadata.INFLUXDB_NAME
    metadata.INFLUXDB_PASSWORD
    metadata.GMAIL_CLIENT_ID
    metadata.GMAIL_CLIENT_SECRET
    metadata.GMAIL_CACHED_TOKEN

The client_id and client_secret come from here:

    https://console.developers.google.com/project/31977622648/apiui/credential

Look for the Client ID that has a Redirect URI for mon.skia.org.

For 'cookiesalt' and the influx db values search for 'skiamonitor' in valentine.

The gmail_clientid and gmail_clientsecret come from here:

    https://console.developers.google.com/project/31977622648/apiui/credential

Look for the section titled, "Client ID for native application."

The gmail_cached_token can be generated by running the server and clicking the
authorization link while signed in as skia.buildbots@gmail.com
