Skip to content

observIQ/bindplane-otel-contrib

Repository files navigation

bindplane-otel-contrib

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

Component Description
awss3eventreceiver Consumes S3 event notifications for object creation events and emits the S3 object as the body of a log record
awss3rehydrationreceiver Rehydrates OTLP data from AWS S3 that was stored using the AWS S3 exporter
azureblobpollingreceiver Continuously polls Azure Blob Storage at configurable intervals for new data
azureblobrehydrationreceiver Rehydrates OTLP data from Azure Blob Storage that was stored using the Azure Blob exporter
bindplaneauditlogs Collects audit logs from a Bindplane instance via API
gcspubsubeventreceiver Consumes GCS event notifications via Google Cloud Pub/Sub and emits object contents as log records
googlecloudstoragerehydrationreceiver Rehydrates OTLP data from Google Cloud Storage that was stored using the GCS exporter
httpreceiver Collects logs from services via HTTP
m365receiver Receives metrics and logs from Microsoft 365 via the Microsoft Graph and Management APIs
oktareceiver Collects logs from an Okta domain
pcapreceiver Captures network packets and emits them as OpenTelemetry logs
pluginreceiver Runs templated OpenTelemetry pipelines stored within a plugin
restapireceiver Pulls data from any REST API endpoint, supporting logs and metrics with configurable auth and pagination
routereceiver Receives telemetry routed from other pipelines (logs, metrics, traces)
sapnetweaverreceiver Collects metrics from SAP NetWeaver via the SAPControl Web Service Interface
splunksearchapireceiver Collects Splunk events using the Splunk Search API for historical data migration
telemetrygeneratorreceiver Generates synthetic telemetry for testing and configuration purposes
windowseventtracereceiver Collects Event Tracing for Windows (ETW) events (experimental)

Processors

Component Description
datapointcountprocessor Converts the number of datapoints received during an interval into a metric
logcountprocessor Converts the number of logs received during an interval into a metric
lookupprocessor Looks up values in a CSV file and adds matching record values to telemetry context
maskprocessor Detects and masks sensitive data using configurable regex rules
metricextractprocessor Extracts metrics from logs
metricstatsprocessor Calculates statistics from metrics over a configurable interval for sampling or volume reduction
ocsfstandardizationprocessor Creates JSON OCSF-compliant log bodies from OTEL logs (alpha)
randomfailureprocessor Tests error resiliency by randomly returning errors with configurable probability
removeemptyvaluesprocessor Removes empty values from telemetry attributes, resource attributes, and log record bodies
resourceattributetransposerprocessor Copies resource-level attributes to all individual logs or metric data points
samplingprocessor Samples incoming OTLP objects and drops those based on a configured drop ratio
snapshotprocessor Stores telemetry temporarily in an internal buffer for snapshot functionality
spancountprocessor Converts the number of spans received during an interval into a metric
throughputmeasurementprocessor Samples OTLP payloads and measures protobuf size and OTLP object counts
topologyprocessor Utilizes request headers to provide extended topology functionality in Bindplane

Exporters

Component Description
awssecuritylakeexporter Exports OCSF-formatted logs as Parquet files to AWS Security Lake via S3 (alpha)
azureblobexporter Exports metrics, traces, and logs to Azure Blob Storage in OTLP JSON format
azureloganalyticsexporter Exports logs to Azure Log Analytics via the Log Analytics Ingestion API
chronicleexporter Sends logs to Chronicle using the v2 ingestion API
chronicleforwarderexporter Forwards logs to a Chronicle Forwarder endpoint using Syslog or file-based methods
googlecloudexporter Sends metrics, traces, and logs to Google Cloud Monitoring
googlecloudstorageexporter Exports logs, metrics, and traces to Google Cloud Storage in OTLP JSON format
googlemanagedprometheusexporter Sends metrics to Google Cloud Managed Service for Prometheus
qradar Forwards logs to a QRadar instance using its Syslog endpoint
snowflakeexporter Sends logs, metrics, and traces to Snowflake cloud data warehouse
webhookexporter Sends telemetry data to a webhook endpoint

Extensions

Component Description
awss3eventextension Downloads newly created S3 objects to a specified directory by reading from an SQS queue
badgerextension Provides persistent storage using BadgerDB
bindplaneextension Stores Bindplane-specific information for custom collector distributions
opampgateway Relays OpAMP messages between downstream agents and an upstream OpAMP server (alpha)
pebbleextension Provides 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 using the local collector repo
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 binary with your local contrib changes.

License

Apache License 2.0 — see LICENSE.

About

A collection of OpenTelemetry Collector components compatible with any build of the collector.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages