# Webhook

### Description

The Webhook destination allows you to send telemetry data to any HTTP/HTTPS endpoint.

### Supported Types

| Logs | Metrics | Traces | Bindplane Collector |
| ---- | ------- | ------ | ------------------- |
| ✓    | ✗       | ✗      | `v1.79.0`+          |

### Configuration

| Field                             | Type               | Default                                                | Required | Description                                                                                                                                       |
| --------------------------------- | ------------------ | ------------------------------------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| Scheme                            | string             | http                                                   | `true`   | The URL scheme to use for the webhook requests.                                                                                                   |
| Payload Format                    | enum               | json\_array                                            | `false`  | The payload format for log data. `json_array` sends all logs as a JSON array in a single request. `single` sends one HTTP request per log record. |
| Hostname                          | string             |                                                        | `true`   | The hostname or IP address of the webhook server.                                                                                                 |
| Port                              | int                |                                                        | `true`   | The port of the webhook server.                                                                                                                   |
| Path                              | string             |                                                        | `false`  | The path component of the URL where telemetry data will be sent.                                                                                  |
| Verb                              | string             | POST                                                   | `true`   | The HTTP method to use for the webhook requests. Must be one of: POST, PATCH, PUT.                                                                |
| Content Type                      | string             |                                                        | `true`   | The Content-Type header for the webhook requests.                                                                                                 |
| Headers                           | map\[string]string | \["User-Agent": "bindplane-otel-collector/\<version>"] | `false`  | Additional HTTP headers to include in the webhook requests.                                                                                       |
| Enable TLS                        | bool               | true                                                   | `false`  | Whether or not to use TLS for HTTPS connections.                                                                                                  |
| Skip TLS Certificate Verification | bool               | false                                                  | `false`  | Enable to skip TLS certificate verification.                                                                                                      |
| TLS Certificate Authority File    | string             |                                                        | `false`  | Certificate authority used to validate TLS certificates.                                                                                          |
| Mutual TLS                        | bool               | false                                                  | `false`  | Whether or not to use mutual TLS authentication.                                                                                                  |
| TLS Client Certificate File       | string             |                                                        | `false`  | A TLS certificate used for client authentication.                                                                                                 |
| TLS Client Private Key File       | string             |                                                        | `false`  | A TLS private key used for client authentication.                                                                                                 |

#### Supported Retry and Queuing Settings

This destination supports the [retry settings](https://docs.bindplane.com/configuration/bindplane-otel-collector/retry-on-failure), the [sending queue settings](https://docs.bindplane.com/configuration/bindplane-otel-collector/sending-queue), and the [persistent queue settings.](https://docs.bindplane.com/configuration/bindplane-otel-collector/persistent-queue)

| Sending Queue | Persistent Queue | Retry on Failure |
| ------------- | ---------------- | ---------------- |
| ✓             | ✓                | ✓                |

#### Example Configuration

In this configuration, we specify the endpoint where telemetry data will be sent, along with TLS settings for secure communication.

**Web Interface**

<figure><img src="https://1405008107-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgmiOMzBfoNFwmKJFHMcJ%2Fuploads%2Fgit-blob-e6e060d132b3da9d614e10eeb96923110aff0f94%2Fintegrations-destinations-webhook-image-1.png?alt=media" alt="Bindplane docs - Webhook - image 1"><figcaption></figcaption></figure>

<figure><img src="https://1405008107-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgmiOMzBfoNFwmKJFHMcJ%2Fuploads%2Fgit-blob-70b8f18e5d2f994f5e5acdc80a5f42df3cb63a1b%2Fintegrations-destinations-webhook-image-2.png?alt=media" alt="Bindplane docs - Webhook - image 2"><figcaption></figcaption></figure>

**Standalone Destination**

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Destination
metadata:
  id: webhook
  name: webhook
spec:
  type: webhook
  parameters:
    - name: scheme
      value: https
    - name: hostname
      value: api.example.com
    - name: port
      value: '443'
    - name: path
      value: webhook
    - name: enable_tls
      value: 'true'
    - name: skip_tls_verify
      value: 'false'
    - name: tls_ca_file
      value: '/path/to/ca.crt'
    - name: mutual_tls
      value: 'true'
    - name: tls_client_cert_file
      value: '/path/to/client.crt'
    - name: tls_client_key_file
      value: '/path/to/client.key'
```

### Notes

* The webhook destination sends data in JSON format
* Non-2xx HTTP responses are treated as errors
* Connection timeouts are handled according to the configured timeout settings
