Vector
Vector is a popular high-performance observability pipeline. You can use the opentelemetry sink to offload data to Unblind.
Before you can make requests to the Unblind API, you will need to grab your API key. You can create one in Settings.
Configuration
Add the following to your Vector configuration:
# (Optional) OTLP HTTP source, skip if you have other source
sources:
otlp:
type: opentelemetry
http:
address: "0.0.0.0:4318"
grpc:
address: "0.0.0.0:4317"
# Reference: https://vector.dev/highlights/2025-09-23-otlp-support/
use_otlp_decoding: true
sinks:
# Send metrics to Unblind
unblind_metrics:
type: opentelemetry
inputs:
- otlp.metrics
protocol:
type: http
uri: "https://otlp.unblind.dev/v1/metrics"
compression: "gzip"
encoding:
codec: otlp
auth:
strategy: bearer
token: "${UNBLIND_API_KEY}"
# Send logs to Unblind
unblind_logs:
type: opentelemetry
inputs:
- otlp.logs
protocol:
type: http
uri: "https://otlp.unblind.dev/v1/logs"
method: post
compression: "gzip"
encoding:
type: http
codec: otlp
auth:
strategy: bearer
token: "${UNBLIND_API_KEY}"
Identifying Tenants
Unblind isolates data into per-tenant datasets by detecting the tenant.id attribute in your telemetry data. The Unblind data pipeline then strips this value internally and uses it to determine which tenant each piece of telemetry belongs to.
The attribute can be set at the Resource level (recommended for resources owned by the tenant) or the Attribute level (useful for multi-tenant scenarios). If both are present, the Attribute-level identifier takes precedence.
If your telemetry data already contains a tenant.id attribute, you can skip the processor configuration below.
transforms:
add_tenant_id:
type: remap
inputs:
- your_source
source: |
.tenant.id = get_env_var!("TENANT_ID")
sinks:
unblind_metrics:
type: opentelemetry
inputs:
- add_tenant_id
protocol:
type: http
uri: "https://otlp.unblind.dev/v1/metrics"
compression: "gzip"
encoding:
codec: otlp
auth:
strategy: bearer
token: "${UNBLIND_API_KEY}"
Filtering Metrics
You may not want to send every single metric your application emits. To reduce noise and manage costs, you can filter your telemetry pipeline to only forward high-value metrics (e.g., CPU, Memory, or specific Business KPIs) to Unblind.
Below is an example of how to configure an "Allowlist", dropping everything except the specific metrics you define.
# Use a filter transform before your sink
# Docs: https://vector.dev/docs/reference/configuration/transforms/filter/
allow_specific_metrics:
type: filter
inputs:
- metrics_source
condition: |
includes(["system.cpu.time", "system.memory.usage"], .name)
sinks:
unblind:
type: opentelemetry
inputs:
- allow_specific_metrics
endpoint: https://otlp.unblind.dev