bindplane-otel-contrib

August 10, 2026 ยท View on GitHub

License

Contrib components (receivers, processors, exporters, extensions) for the Bindplane OpenTelemetry Collector.

Directory Structure

receiver/           Custom receivers
processor/          Custom processors
exporter/           Custom exporters
extension/          Custom extensions
internal/           Shared internal packages
  aws/              AWS utilities (S3/SQS client, backoff, event types)
  azureblob/        Azure Blob Storage client interfaces
  blobconsume/      Checkpoint mechanism for blob-consuming receivers
  exporterutils/    Utility functions for exporters
  measurements/     Throughput measurement management
  storageclient/    Data storage interfaces and implementations
  testutils/        Test utilities and helpers
  tools/            Build tools and development dependencies
pkg/                Public utility packages
  counter/          Telemetry counting grouped by resource and attributes
  expr/             Expression evaluation against OTEL data structures
  osinfo/           OS information retrieval
  snapshot/         Snapshot collection and filtering
  version/          Collector version data set at compile time

Components

Receivers

ComponentDescription
awss3eventreceiverConsumes S3 event notifications for object creation events and emits the S3 object as the body of a log record
awss3rehydrationreceiverRehydrates OTLP data from AWS S3 that was stored using the AWS S3 exporter
azureblobpollingreceiverContinuously polls Azure Blob Storage at configurable intervals for new data
azureblobrehydrationreceiverRehydrates OTLP data from Azure Blob Storage that was stored using the Azure Blob exporter
bindplaneauditlogsCollects audit logs from a Bindplane instance via API
gcspubsubeventreceiverConsumes GCS event notifications via Google Cloud Pub/Sub and emits object contents as log records
googlecloudstoragerehydrationreceiverRehydrates OTLP data from Google Cloud Storage that was stored using the GCS exporter
httpreceiverCollects logs from services via HTTP
m365receiverReceives metrics and logs from Microsoft 365 via the Microsoft Graph and Management APIs
oktareceiverCollects logs from an Okta domain
pcapreceiverCaptures network packets and emits them as OpenTelemetry logs
pluginreceiverRuns templated OpenTelemetry pipelines stored within a plugin
restapireceiverPulls data from any REST API endpoint, supporting logs and metrics with configurable auth and pagination
routereceiverReceives telemetry routed from other pipelines (logs, metrics, traces)
sapnetweaverreceiverCollects metrics from SAP NetWeaver via the SAPControl Web Service Interface
splunksearchapireceiverCollects Splunk events using the Splunk Search API for historical data migration
telemetrygeneratorreceiverGenerates synthetic telemetry for testing and configuration purposes
windowseventtracereceiverCollects Event Tracing for Windows (ETW) events (experimental)

Processors

ComponentDescription
datapointcountprocessorConverts the number of datapoints received during an interval into a metric
logcountprocessorConverts the number of logs received during an interval into a metric
lookupprocessorLooks up values from a CSV file, Redis, or HTTP API and adds matching record values to telemetry context, with optional TTL caching
maskprocessorDetects and masks sensitive data using configurable regex rules
metricextractprocessorExtracts metrics from logs
metricstatsprocessorCalculates statistics from metrics over a configurable interval for sampling or volume reduction
ocsfstandardizationprocessorCreates JSON OCSF-compliant log bodies from OTEL logs (alpha)
randomfailureprocessorTests error resiliency by randomly returning errors with configurable probability
removeemptyvaluesprocessorRemoves empty values from telemetry attributes, resource attributes, and log record bodies
resourceattributetransposerprocessorCopies resource-level attributes to all individual logs or metric data points
samplingprocessorSamples incoming OTLP objects and drops those based on a configured drop ratio
snapshotprocessorStores telemetry temporarily in an internal buffer for snapshot functionality
spancountprocessorConverts the number of spans received during an interval into a metric
throughputmeasurementprocessorSamples OTLP payloads and measures protobuf size and OTLP object counts
topologyprocessorUtilizes request headers to provide extended topology functionality in Bindplane

Exporters

ComponentDescription
awssecuritylakeexporterExports OCSF-formatted logs as Parquet files to AWS Security Lake via S3 (alpha)
azureblobexporterExports metrics, traces, and logs to Azure Blob Storage in OTLP JSON format
azureloganalyticsexporterExports logs to Azure Log Analytics via the Log Analytics Ingestion API
chronicleexporterSends logs to Chronicle using the v2 ingestion API
chronicleforwarderexporterForwards logs to a Chronicle Forwarder endpoint using Syslog or file-based methods
googlecloudexporterSends metrics, traces, and logs to Google Cloud Monitoring
googlecloudstorageexporterExports logs, metrics, and traces to Google Cloud Storage in OTLP JSON format
googlemanagedprometheusexporterSends metrics to Google Cloud Managed Service for Prometheus
qradarForwards logs to a QRadar instance using its Syslog endpoint
snowflakeexporterSends logs, metrics, and traces to Snowflake cloud data warehouse
webhookexporterSends telemetry data to a webhook endpoint

Extensions

ComponentDescription
awss3eventextensionDownloads newly created S3 objects to a specified directory by reading from an SQS queue
badgerextensionProvides persistent storage using BadgerDB
bindplaneextensionDeprecated. Stores Bindplane-specific information for custom collector distributions
opampgatewayRelays OpAMP messages between downstream agents and an upstream OpAMP server (alpha)
pebbleextensionProvides persistent storage using Pebble

Development

Prerequisites

  • Go (version specified in internal/tools/go.mod)

Setup

# Install development tools
make install-tools

# Generate a go.work file for IDE support
./scripts/generate-gowork.sh

Common Commands

# Run all tests
make test

# Run all CI checks (format, license, lint, gosec, test)
make ci-checks

# Build the collector against your local contrib changes (requires a local
# collector checkout; see "Local Development with Collector" below)
make build-collector

# Lint
make lint

# Format code
make fmt

# Tidy all modules
make tidy

Local Development with Collector

Create a .local.env file to configure the path to your local collector repo:

COLLECTOR_PATH=../bindplane-otel-collector

Then run make build-collector to build the collector with your local contrib changes.

The collector build is ocb-driven and lives in the collector repo: its manifests/observIQ/manifest.yaml pins each contrib component at a released version. make build-collector writes a copy of that manifest which replaces every contrib module with its on-disk path.

License

Apache License 2.0 โ€” see LICENSE.