@for (error of formError()?.non_field_errors; track error) { {{ error }} }
Monitor Name @if (formName.errors?.required) { Enter a monitor name } @if (formName.errors?.maxlength) { Name may not be more than {{ formName.errors?.maxlength.requiredLength }} characters }
Monitor type @for (type of typeChoices; track type) { {{ type }} } @if (formMonitorType.errors?.required) { Choose a monitor type }
@if (formMonitorType.value === "Ping") { GlitchTip will "ping" the specified URL using an HTTP HEAD request with no payload. } @if (formMonitorType.value === "POST") { GlitchTip will send an HTTP POST request to the specified URL. If the expected response is not received, the site will be marked as Down. } @if (formMonitorType.value === "GET") { GlitchTip will send an HTTP GET request to the specified URL. If the expected response is not received, the site will be marked as Down. } @if (formMonitorType.value === "Heartbeat") {

GlitchTip will await requests from your site to ensure it is active. If it doesn't receive the request, the site will be marked as Down.

} @if (formMonitorType.value === "TCP Port") { GlitchTip will check to make sure the port at the specified URL is accessible. }
@if (formMonitorType.value !== "Heartbeat") {
Site URL @if (formUrl.errors) { @if (formUrl.errors.maxlength) { URL may not be more than {{ formUrl.errors.maxlength.requiredLength }} characters } @else { } } Enter a valid URL with protocol (ex. https://example.com) Enter a host name and port (ex. example.com:80)
}
Associated Project @if (orgProjects(); as orgProjects) { None @for (orgProject of orgProjects; track orgProject) { {{ orgProject.name }} } }
Uptime email notifications are sent to the team assigned to the associated project.
@if ( formMonitorType.value === "GET" || formMonitorType.value === "POST" ) {
Expected Status @if (formExpectedStatus.errors?.min) { The quantity needs to be greater than or equal to 100. } @if ( formExpectedStatus.errors?.pattern || formExpectedStatus.errors?.required ) { Enter a status code number }
} @if ( formMonitorType.value === "GET" || formMonitorType.value === "POST" ) {
Expected Response Body
If string isn't found in response body, the monitor will report as down
}
Interval (seconds) @if (formInterval.errors?.min) { Must be 60 or higher. } @if (formInterval.errors?.max) { Must be less than 32768. } @if (formInterval.errors?.pattern || formInterval.errors?.required) { Enter an integer. } @if (totalEventsAllowed(); as totalEventsAllowed) { @if (intervalPerMonth(); as intervalPerMonth) {
@if (intervalPerMonth <= totalEventsAllowed) { This will use approximately {{ intervalPerMonth | number: "1.0-0" }} events per month out of the {{ totalEventsAllowed | number: "1.0-0" }} events your organization's subscription allows for. } @else { This will use approximately {{ intervalPerMonth | number: "1.0-0" }} events per month, exceeding the {{ totalEventsAllowed | number: "1.0-0" }} events your organization's subscription allows for. }
} }
@if (formMonitorType.value !== "Heartbeat") {
Timeout @if (formTimeout.errors) { Enter an integer between 1 and 60. }
Time in seconds GlitchTip will wait for a response from your app. Defaults to 20 seconds.
}