generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "checkly_tcp_check Resource - terraform-provider-checkly"
generated by https://github.com/hashicorp/terraform-plugin-docs
page_title: "checkly_tcp_check Resource - terraform-provider-checkly" subcategory: "" description: |- The checkly_tcp_check resource has been renamed to checkly_tcp_monitor to better reflect its position in the Checkly product lineup. The old resource type will not be deprecated until the Checkly provider is updated to the Terraform Plugin Framework, which makes it possible to easily move resources between resource types. We recommend using the checkly_tcp_monitor resource type for any new resources.
checkly_tcp_check (Resource)
The checkly_tcp_check resource has been renamed to checkly_tcp_monitor to better reflect its position in the Checkly product lineup.
The old resource type will not be deprecated until the Checkly provider is updated to the Terraform Plugin Framework, which makes it possible to easily move resources between resource types.
We recommend using the checkly_tcp_monitor resource type for any new resources.
Example Usage
# Basic TCP Check
resource "checkly_tcp_check" "example-tcp-check" {
name = "Example TCP check"
activated = true
should_fail = false
frequency = 1
use_global_alert_settings = true
locations = [
"us-west-1"
]
request {
hostname = "api.checklyhq.com"
port = 80
}
}
# A more complex example using assertions and setting alerts
resource "checkly_tcp_check" "example-tcp-check-2" {
name = "Example TCP check 2"
activated = true
should_fail = true
frequency = 1
degraded_response_time = 5000
max_response_time = 10000
locations = [
"us-west-1",
"ap-northeast-1",
"ap-south-1",
]
alert_settings {
escalation_type = "RUN_BASED"
run_based_escalation {
failed_run_threshold = 1
}
reminders {
amount = 1
}
}
retry_strategy {
type = "FIXED"
base_backoff_seconds = 60
max_duration_seconds = 600
max_retries = 3
same_region = false
}
request {
hostname = "api.checklyhq.com"
port = 80
data = "hello"
assertion {
source = "RESPONSE_DATA"
property = ""
comparison = "CONTAINS"
target = "welcome"
}
assertion {
source = "RESPONSE_TIME"
property = ""
comparison = "LESS_THAN"
target = "2000"
}
}
}
<!-- schema generated by tfplugindocs -->
Schema
Required
activated(Boolean) Determines if the check is running or not. Possible valuestrue, andfalse.frequency(Number) Controls how often the monitor should run. Defined in minutes. The allowed values are0(high frequency - usefrequency_offsetto define the actual frequency),1(1 minute),2(2 minutes),5(5 minutes),10(10 minutes),15(15 minutes),30(30 minutes),60(1 hour),120(2 hours),180(3 hours),360(6 hours),720(12 hours) and1440(24 hours).name(String) The name of the check.request(Block Set, Min: 1, Max: 1) The parameters for the TCP connection. (see below for nested schema)
Optional
alert_channel_subscription(Block Set) An array of channel IDs and whether they're activated or not. If you don't set at least one alert channel subscription for your monitor, we won't be able to alert you even if it starts failing. (see below for nested schema)alert_settings(Block List, Max: 1) Determines the alert escalation policy for the monitor. (see below for nested schema)degraded_response_time(Number) The response time in milliseconds starting from which a check should be considered degraded. Possible values are between 0 and 5000. (Default4000).description(String) A description of the monitor.frequency_offset(Number) Whenfrequencyis0(high frequency),frequency_offsetis required and it alone controls how often the monitor should run. Defined in seconds. The allowed values are0(disabled - usefrequencyto define the actual frequency),10(10 seconds),20(20 seconds) and30(30 seconds).group_id(Number) The id of the check group this check is part of.group_order(Number) The position of this check in a check group. It determines in what order checks are run when a group is triggered from the API or from CI/CD.locations(Set of String) An array of one or more data center locations where to run the this check. (Default ["us-east-1"])max_response_time(Number) The response time in milliseconds starting from which a check should be considered failing. Possible values are between 0 and 5000. (Default5000).muted(Boolean) Determines if any notifications will be sent out when a check fails/degrades/recovers.private_locations(Set of String) An array of one or more private locations slugs.retry_strategy(Block List, Max: 1) A strategy for retrying failed check/monitor runs. (see below for nested schema)run_parallel(Boolean) Determines if the check should run in all selected locations in parallel or round-robin.runtime_id(String) The ID of the runtime to use for this check.should_fail(Boolean) Allows to invert the behaviour of when a check is considered to fail.tags(Set of String) A list of tags for organizing and filtering checks.trigger_incident(Block Set, Max: 1) Create and resolve an incident based on the alert configuration. Useful for status page automation. (see below for nested schema)use_global_alert_settings(Boolean) When true, the account level alert settings will be used, not the alert setting defined on this check.
Read-Only
id(String) The ID of this resource.
<a id="nestedblock--request"></a>
Nested Schema for request
Required:
hostname(String) The hostname or IP to connect to. Do not include a scheme or a port in this value.port(Number) The port number to connect to.
Optional:
assertion(Block Set) A request can have multiple assertions. (see below for nested schema)data(String) The data to send to the target host.ip_family(String) The IP family to use when executing the TCP check. The value can be eitherIPv4orIPv6.
<a id="nestedblock--request--assertion"></a>
Nested Schema for request.assertion
Required:
comparison(String) The type of comparison to be executed between expected and actual value of the assertion. Possible values areEQUALS,NOT_EQUALS,HAS_KEY,NOT_HAS_KEY,HAS_VALUE,NOT_HAS_VALUE,IS_EMPTY,NOT_EMPTY,GREATER_THAN,LESS_THAN,CONTAINS,NOT_CONTAINS,IS_NULL, andNOT_NULL.source(String) The source of the asserted value. Possible values areRESPONSE_DATAandRESPONSE_TIME.
Optional:
property(String)target(String)
<a id="nestedblock--alert_channel_subscription"></a>
Nested Schema for alert_channel_subscription
Required:
activated(Boolean) Whether an alert should be sent to this channel.channel_id(Number) The ID of the alert channel.
<a id="nestedblock--alert_settings"></a>
Nested Schema for alert_settings
Optional:
escalation_type(String) Determines the type of escalation to use. Possible values areRUN_BASEDandTIME_BASED. (DefaultRUN_BASED).parallel_run_failure_threshold(Block List) Configuration for parallel run failure threshold. (see below for nested schema)reminders(Block List) Defines how often to send reminder notifications after initial alert. (see below for nested schema)run_based_escalation(Block List) Configuration for run-based escalation. (see below for nested schema)time_based_escalation(Block List) Configuration for time-based escalation. (see below for nested schema)
<a id="nestedblock--alert_settings--parallel_run_failure_threshold"></a>
Nested Schema for alert_settings.parallel_run_failure_threshold
Optional:
enabled(Boolean) Whether parallel run failure threshold is enabled. Only applies if the monitor is scheduled for multiple locations in parallel. (Defaultfalse).percentage(Number) Percentage of runs that must fail to trigger alert. Possible values are10,20,30,40,50,60,70,80,90, and100. (Default10).
<a id="nestedblock--alert_settings--reminders"></a>
Nested Schema for alert_settings.reminders
Optional:
amount(Number) Number of reminder notifications to send. Possible values are0,1,2,3,4,5, and100000(0to disable,100000for unlimited). (Default0).interval(Number) Interval between reminder notifications in minutes. Possible values are5,10,15, and30. (Default5).
<a id="nestedblock--alert_settings--run_based_escalation"></a>
Nested Schema for alert_settings.run_based_escalation
Optional:
failed_run_threshold(Number) Send an alert notification after the given number of consecutive monitor runs have failed. Possible values are between1and5. (Default1).
<a id="nestedblock--alert_settings--time_based_escalation"></a>
Nested Schema for alert_settings.time_based_escalation
Optional:
minutes_failing_threshold(Number) Send an alert notification after the monitor has been failing for the given amount of time (in minutes). Possible values are5,10,15, and30. (Default5).
<a id="nestedblock--retry_strategy"></a>
Nested Schema for retry_strategy
Required:
type(String) Determines which type of retry strategy to use. Possible values areFIXED,LINEAR,EXPONENTIAL,SINGLE_RETRY, andNO_RETRIES.
Optional:
base_backoff_seconds(Number) The number of seconds to wait before the first retry attempt. (Default60).max_duration_seconds(Number) The total amount of time to continue retrying the check/monitor (maximum 600 seconds). Available whentypeisFIXED,LINEAR, orEXPONENTIAL. (Default600).max_retries(Number) The maximum number of times to retry the check/monitor. Value must be between1and10. Available whentypeisFIXED,LINEAR, orEXPONENTIAL. (Default2).only_on(Block List, Max: 1) Apply the retry strategy only if the defined conditions match. (see below for nested schema)same_region(Boolean) Whether retries should be run in the same region as the initial check/monitor run. (Defaulttrue).
<a id="nestedblock--retry_strategy--only_on"></a>
Nested Schema for retry_strategy.only_on
<a id="nestedblock--trigger_incident"></a>
Nested Schema for trigger_incident
Required:
description(String) A detailed description of the incident.name(String) The name of the incident.notify_subscribers(Boolean) Whether to notify subscribers when the incident is triggered.service_id(String) The status page service that this incident will be associated with.severity(String) The severity level of the incident. Possible values areMINOR,MEDIUM,MAJOR, andCRITICAL.
Related Documents
Visual Truth Engine: Product-Market Fit & Go-to-Market Strategy
**Date:** January 22, 2026 | **Status:** Early-Stage Launch Strategy
Media Handling Playbook - Zyeuté v3
**Last Updated:** December 15, 2025
Trader ROI Playbook (Codex + CI)
Purpose: increase engineering output per hour while keeping quality stable or better.
OSCP Attack Playbook
**Author:** Brad Turner