Monitor the up and down status of local or remote HTTP endpoints. The HTTP check can detect bad response codes (such as 404), identify soon-to-expire SSL certificates, search responses for specific text, and much more. The check also submits HTTP response times as a metric.
Setup
Installation
The HTTP check is included in the Datadog Agent package. No additional installation is needed on your server. Though many metrics-oriented checks are best run on the same host(s) as the monitored service, you may want to run this status-oriented check from hosts that do not run the monitored sites.
The HTTP check has more configuration options than many checks. Most options are opt-in, for example: the Agent does not check SSL validation unless you configure the requisite options. Notably, the Agent checks for soon-to-expire SSL certificates by default.
This check runs on every run of the Agent collector, which defaults to every 15 seconds. To set a custom run frequency for this check, see the collection interval section of the custom check documentation.
Name of your Http check instance. This is presented as a tag on the Service Checks.
url
The URL to test.
timeout
The time in seconds to allow for a response.
method
The HTTP method to use for the check.
data
Use this parameter to specify a body for a request with a POST, PUT, DELETE, or PATCH method. SOAP requests are supported if you use the POST method and supply an XML string as the data parameter.
headers
This parameter allows you to send additional headers with the request. See the example YAML file for additional information and caveats.
content_match
A string or Python regular expression. The HTTP check searches for this value in the response and reports as DOWN if the string or expression is not found.
reverse_content_match
When true, reverses the behavior of the content_match option, that is the HTTP check reports as DOWN if the string or expression in content_match IS found. (default is false)
username & password
If your service uses basic authentication, you can provide the username and password here.
http_response_status_code
A string or Python regular expression for an HTTP status code. This check reports DOWN for any status code that does not match. This defaults to 1xx, 2xx and 3xx HTTP status codes. For example: 401 or 4\d\d.
include_content
When set to true, the check includes the first 500 characters of the HTTP response body in notifications. The default value is false.
collect_response_time
By default, the check collects the response time (in seconds) as the metric network.http.response_time. To disable, set this value to false.
tls_verify
Instructs the check to validate the TLS certificate of services when reaching to url.
tls_ignore_warning
If tls_verify is set to true, it disables any security warnings from the SSL connection.
tls_ca_cert
This setting allows you to override the default certificate path as specified in init_config
check_certificate_expiration
When check_certificate_expiration is enabled, the service check checks the expiration date of the SSL certificate. Note: This causes the SSL certificate to be validated, regardless of the value of the tls_verify setting.
tls_retrieve_non_validated_cert
If tls_verify is set to false and if check_certificate_expiration is true, setting this to true allows the certificate to be examined for an expiration date.
days_warning & days_critical
When check_certificate_expiration is enabled, these settings raise a warning or critical alert when the SSL certificate is within the specified number of days from expiration.
ssl_server_name
When check_certificate_expiration is enabled, this setting specifies the hostname of the service to connect to and it also overrides the host to match with if check_hostname is enabled.
check_hostname
If set to true the check log a warning if the checked url hostname is different than the SSL certificate hostname.
skip_proxy
If set, the check bypasses proxy settings and attempt to reach the check url directly. This defaults to false. This integration’s proxy settings default to the proxy settings defined in the datadog.yaml configuration file if this is not set.
allow_redirects
This setting allows the service check to follow HTTP redirects and defaults to true.
The response time of an HTTP request to a given url, tagged by url, e.g. 'url:http://example.com'. Shown as second
network.http.can_connect (gauge)
Whether the check can connect, 1 if true, 0 otherwise. Tagged by url, e.g. 'url:http://example.com'.
network.http.cant_connect (gauge)
Whether the check failed to connect, 1 if true, 0 otherwise. Tagged by url, e.g. 'url:http://example.com'.
http.ssl.days_left (gauge)
Days until SSL certificate expiration Shown as day
http.ssl.seconds_left (gauge)
Seconds until SSL certificate expiration Shown as second
Events
The HTTP check does not include any events.
Service Checks
http.can_connect Returns CRITICAL if the Agent cannot establish an HTTP connection to the URL. Returns OK if the connection is successful. Statuses: ok, critical
http.ssl_cert Returns CRITICAL if the SSL certificate has expired. Returns WARNING if the SSL certificate will expire in less than the configured threshold. Returns OK otherwise. Statuses: ok, warning, critical, unknown
To disable http.ssl_cert, set check_certificate_expiration to false.
Note: To set an alert on these service checks, create a Network Monitor.