> For the complete documentation index, see [llms.txt](https://docs.bindplane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bindplane.com/integrations/sources/custom.md).

# Custom

The Custom source lets you configure an OpenTelemetry receiver directly by pasting its YAML. It is useful for testing a new receiver or for fulfilling a use case that Bindplane does not yet support natively. You choose which telemetry types the receiver produces (Logs, Metrics, Traces), and Bindplane inserts your YAML into the matching pipelines.

{% hint style="warning" %}
**Not available in Bindplane Google Edition**

The Custom source is not available in Bindplane Google Edition.
{% endhint %}

{% hint style="info" %}
The Custom source can only use components that ship with the Bindplane Collector. See the [Included Components](https://github.com/observIQ/bindplane-otel-collector/tree/main#included-components) list for the receivers, processors, and exporters that are available.
{% endhint %}

### Supported Telemetry

The Custom source can emit any signal the chosen receiver supports. The signals actually collected are limited to those allowed by the specific receiver in your configuration, and to the telemetry types you select.

| Platform | Metrics | Logs | Traces |
| -------- | ------- | ---- | ------ |
| Linux    | ✓       | ✓    | ✓      |
| Windows  | ✓       | ✓    | ✓      |
| macOS    | ✓       | ✓    | ✓      |

### Prerequisites

This source is part of Bindplane's pipeline plumbing rather than a packaged integration, so it requires no external setup of its own. You do need:

* A receiver that is included in the Bindplane Collector. See the [Included Components](https://github.com/observIQ/bindplane-otel-collector/tree/main#included-components) list.
* Whatever access the receiver itself requires (network reachability, host read permissions, credentials, and so on). Those requirements come from the receiver you configure, not from this source.

### Configuration

<figure><img src="/files/R14TUs0xaqUuivrlw2FI" alt="Bindplane docs - Custom - image 1"><figcaption></figcaption></figure>

| Parameter             | Type               | Required | Default   | Description                                                                                                                                                                                                                                                           |
| --------------------- | ------------------ | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Choose Telemetry Type | Telemetry Selector | No       | *(empty)* | The telemetry types the receiver produces. Any combination of Logs, Metrics, and Traces. Bindplane inserts the configuration into the pipelines for the selected signals only.                                                                                        |
| Configuration         | YAML               | Yes      | *(empty)* | The YAML configuration for the receiver. Enter any supported OpenTelemetry receiver and the YAML is inserted into the collector configuration. See the [Receiver Syntax](https://github.com/observIQ/bindplane-otel-collector/blob/main/docs/receivers.md) reference. |

### Examples

#### SQL Server Receiver

The [SQL Server Receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/sqlserverreceiver) is already configurable through the [Microsoft SQL Server](/integrations/sources/microsoft-sql-server.md) source, but the Custom source can reach configuration options that the native source does not expose.

```yaml
sqlserver:
  collection_interval: 10s
  computer_name: CustomServer
  instance_name: CustomInstance
  resource_attributes:
    sqlserver.computer.name:
      enabled: true
    sqlserver.instance.name:
      enabled: true
```

Select **Metrics** as the telemetry type for this receiver.

### Configuration Tips

* Select only the telemetry types the receiver actually produces. Selecting a signal a receiver does not emit results in an empty pipeline for that signal.
* Paste only the receiver block (the receiver name as the top-level key and its settings beneath). Do not include the surrounding `receivers:` key or other collector sections; Bindplane wraps the YAML for you.
* Confirm the receiver is part of the Bindplane Collector before using it. Components outside the [Included Components](https://github.com/observIQ/bindplane-otel-collector/tree/main#included-components) list will not start.

### Troubleshooting

#### The collector fails to start after adding the source

Symptoms: the agent reports a configuration or unknown-type error after the Custom source is applied.

Solutions:

1. Verify the receiver name is spelled correctly and is present in the [Included Components](https://github.com/observIQ/bindplane-otel-collector/tree/main#included-components) list.
2. Validate the YAML indentation. The receiver settings must be nested under the receiver name, and the block must be valid YAML on its own.

#### No data flows from the source

Symptoms: the pipeline is healthy but no telemetry arrives.

Solutions:

1. Confirm the telemetry type you selected matches what the receiver emits. A metrics-only receiver produces nothing on the Logs or Traces pipelines.
2. Check the receiver-specific requirements (endpoint reachability, credentials, file permissions) described in that receiver's upstream documentation.

### Standalone Source

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: custom
spec:
  type: custom
  parameters:
    - name: telemetry_types
      value:
        - Metrics
    - name: configuration
      value: |-
        sqlserver:
          collection_interval: 10s
          computer_name: CustomServer
          instance_name: CustomInstance
          resource_attributes:
            sqlserver.computer.name:
              enabled: true
            sqlserver.instance.name:
              enabled: true
```

### Related Resources

* [Bindplane Collector receivers](https://github.com/observIQ/bindplane-otel-collector/blob/main/docs/receivers.md) — the receivers available to the Custom source.
* [OpenTelemetry Collector receiver configuration](https://opentelemetry.io/docs/collector/configuration/#receivers) — general reference for how OpenTelemetry receivers are configured.


---

# 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://docs.bindplane.com/integrations/sources/custom.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.
