> For the complete documentation index, see [llms.txt](https://academy.cegedim.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.cegedim.cloud/monitoring/custom-check/custom-check-parameters.md).

# Custom check - Parameters

Accessible from **ITCare → Resources → URLs → Actions → Add Custom Check**

Parameters are grouped into blocks. Some are common to both check types, others are specific.

## Block — Identification

Common to Custom Check and External Custom Check.

### Name

|                             |     |
| --------------------------- | --- |
| **Required**                | Yes |
| **Editable after creation** | No  |

The name should allow you to identify the application or service being tested. It will be used to name the check in ITCare following this convention: APPS\_CHECK\_URL\_

**Example**: `my-app-prod` → check named `APPS_CHECK_URL_my-app-prod`

### URL

|                             |     |
| --------------------------- | --- |
| **Required**                | Yes |
| **Editable after creation** | No  |

Pre-filled and read-only when accessed from an existing URL context.

## Block — Source

Common to Custom Check and External Custom Check.

### Source of test

|                             |                                                                                                      |
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
| **Required**                | Yes                                                                                                  |
| **Editable after creation** | No — to update, delete and recreate the check (allow up to 30 minutes for the change to take effect) |

Choose where to run the test:

| Value                                       | Description                                                   |
| ------------------------------------------- | ------------------------------------------------------------- |
| `Internal (from cegedim.cloud)`             | Internal probe — included in the Load Balancer                |
| `External (from Internet - multi-sites FR)` | Public probes from Marseille and Paris — **extra fees apply** |

## Block — Request

Common to Custom Check and External Custom Check.

### Protocol

|                             |                              |
| --------------------------- | ---------------------------- |
| **Required**                | Yes                          |
| **Editable after creation** | No for External Custom Check |

> 💡 It is recommended to use the **HTTPS** protocol to test your applications.

### Path

|                             |                              |
| --------------------------- | ---------------------------- |
| **Required**                | Yes                          |
| **Editable after creation** | No for External Custom Check |

The path is the URI without the domain and without the query parameters.

**Example**: to test `https://www.myapp.com/search?q=test`

* Domain: `www.myapp.com`
* Path: `/search`
* Query parameters (`?q=test`) should be set in the **Parameters** block below

## Block — Request Parameters (optional)

Common to Custom Check and External Custom Check. Enabled via a toggle button (disabled by default).

### Headers

|                             |     |
| --------------------------- | --- |
| **Required**                | No  |
| **Editable after creation** | Yes |

Specify HTTP header parameters to add to the request. When a header contains authentication information, it must be marked as a secured key (🔒 icon).

> ⚠️ Only one authentication key can be enabled at a time. The lock icon is disabled if authentication is already configured via **Basic Authentication**.

**Example**:

* `Key`: `Authorization`
* `Value`: `login:c39fdde712ca4d9690cd6`

### Parameters

|                             |                              |
| --------------------------- | ---------------------------- |
| **Required**                | No                           |
| **Editable after creation** | No for External Custom Check |

Specify query string parameters for the request.

**Example**: to test `https://www.myapp.com/search?q=test&source=hp`

* Parameter 1 — `Key`: `q` / `Value`: `test`
* Parameter 2 — `Key`: `source` / `Value`: `hp`

### Basic Authentication

|                             |     |
| --------------------------- | --- |
| **Required**                | No  |
| **Editable after creation** | Yes |

Automatically disabled if an authentication key is already configured in **Headers**.

## Block — Response Verification

> This block differs depending on the check type.

### Custom Check (Internal)

By default, a critical alarm is triggered when the HTTP code is `< 200` or `>= 300`.

Supported operators:

* **Comparison**: `==`, `!=`, `>`, `<`, `>=`, `<=`
* **Logical**: `or`, `and`

Content matching uses the **contains** method only — no regular expressions.

| Parameter            | Required                     | Editable | Description                                            | Example                                     |
| -------------------- | ---------------------------- | -------- | ------------------------------------------------------ | ------------------------------------------- |
| **Critical code**    | Yes (default value provided) | Yes      | HTTP code range triggering a CRITICAL alarm            | `%{http_code} < 200 or %{http_code} >= 300` |
| **Critical content** | No                           | Yes      | If this content is present in the response → CRITICAL  | `__NAGSTATUS=2__`                           |
| **Expected content** | No                           | Yes      | If this content is absent from the response → CRITICAL | `Welcome to my site`                        |
| **Warning code**     | No                           | Yes      | HTTP code range triggering a WARNING alarm             | `%{http_code} == 302`                       |
| **Warning content**  | No                           | Yes      | If this content is present in the response → WARNING   | `__NAGSTATUS=1__`                           |

### External Custom Check

By default, an alarm is triggered when the HTTP code is `< 200` or `>= 300` (**fail** approach).

Two approaches are available:

| Approach | Behaviour                                                        |
| -------- | ---------------------------------------------------------------- |
| **Fail** | Alarm triggers when the response **matches** the criteria        |
| **Pass** | Alarm triggers when the response **does not match** the criteria |

Accepted formats for HTTP codes:

| Format                            | Example           |
| --------------------------------- | ----------------- |
| Exact number                      | `200`             |
| Inequality                        | `>=500`           |
| Range                             | `406-410`         |
| Status class mask                 | `3xx`             |
| Multiple values (comma-separated) | `3xx, 404, >=500` |

> ⚠️ **WARNING** alarm management is not available for External Custom Check.

| Parameter             | Required                       | Editable | Description                                                                                               | Example                                    |
| --------------------- | ------------------------------ | -------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| **Status on code**    | Yes (default: `< 200, >= 300`) | Yes      | HTTP code(s) triggering the alarm                                                                         | `3xx, 404, >=500`                          |
| **Status on content** | No                             | Yes      | If this content is found/absent in the response → alarm. **Contains** method only, no regular expressions | `Error establishing a database connection` |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://academy.cegedim.cloud/monitoring/custom-check/custom-check-parameters.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
