中文
|
English
# OpenTelemetry OTLP Ingestion
DataBuff is an open-source, AI-native OpenTelemetry APM backend. The **Ingest** service accepts telemetry over **OTLP** (OpenTelemetry Protocol) and stores it for tracing, service metrics, topology, and AI-assisted troubleshooting in the Web UI.
## Supported signals
| Signal | OTLP gRPC (4317) | OTLP HTTP (4318) |
|--------|------------------|------------------|
| Traces | Yes | Yes (`/v1/traces`) |
| Metrics | Yes | Yes (`/v1/metrics`) |
| Logs | Yes | Yes (`/v1/logs`) |
## Compression
OTLP exporters / the OpenTelemetry Collector enable **`gzip` by default**. DataBuff Ingest accepts the encodings below — you do **not** need `compression: none`.
| Protocol | Supported compression |
|----------|------------------------|
| OTLP/gRPC | `none`, `gzip` (default), `snappy`, `zstd` |
| OTLP/HTTP | `none`, `gzip` (default), `zstd`, `zlib`, `deflate`, `snappy`, `x-snappy-framed`, `lz4` |
Collector example (`compression` can be omitted to use default gzip):
```yaml
exporters:
otlp:
endpoint: ":4317"
tls:
insecure: true
# compression: gzip # default; or snappy / zstd / none
otlphttp:
endpoint: "http://:4318"
# compression: gzip
```
## Prerequisites
Install DataBuff (Docker or Kubernetes). After installation, note the host where **Ingest** is reachable and the OTLP ports (default **4317** gRPC, **4318** HTTP).
- [Docker installation](快速入门/docker安装部署_en.md)
- [Kubernetes installation](快速入门/k8s安装部署_en.md)
- [Live demo](https://demo.databuff.ai)
## Endpoints
Replace `` with your Ingest hostname or IP (same host as the install script reports).
| Protocol | Endpoint | Notes |
|----------|----------|-------|
| OTLP/gRPC | `:4317` | Recommended for agents and Collector |
| OTLP/HTTP | `http://:4318` | Use `/v1/traces` and `/v1/metrics` paths when configuring per-signal exporters |
Default Docker install exposes both ports on the host running `docker compose`.
## Application SDK (environment variables)
Most OpenTelemetry SDKs accept:
```bash
export OTEL_EXPORTER_OTLP_ENDPOINT="http://:4318"
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
# or for gRPC:
# export OTEL_EXPORTER_OTLP_ENDPOINT="http://:4317"
# export OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
export OTEL_SERVICE_NAME="my-service"
```
Send traces and metrics from your instrumented application; open the Web UI (`http://:27403`) to view service topology and traces.
## OpenTelemetry Collector
Forward OTLP from a Collector to DataBuff Ingest:
```yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
exporters:
otlp:
endpoint: ":4317"
tls:
insecure: true
# or OTLP/HTTP:
# otlphttp:
# endpoint: "http://:4318"
service:
pipelines:
traces:
receivers: [otlp]
exporters: [otlp]
metrics:
receivers: [otlp]
exporters: [otlp]
logs:
receivers: [otlp]
exporters: [otlp]
```
For logs, set in your SDK:
```bash
export OTEL_LOGS_EXPORTER=otlp
```
For TLS-terminated or remote deployments, point exporters at the reachable OTLP URL and configure TLS on your reverse proxy.
## Verify ingestion
1. Install the optional [Demo app](快速入门/docker安装部署_en.md#_3-install-the-demo-optional) — it reports sample traces to Ingest.
2. In the Web UI, open **Application Performance** and confirm services and traces appear within a few minutes.
For how data is stored and queried, see [Telemetry Pipeline and Storage](架构设计/遥测数据流_en.md).
## Related docs
- [eBPF Ingestion](使用手册/eBPF接入_en.md) — OBI DaemonSet, zero-instrumentation HTTP / gRPC
- [Nginx Ingestion](使用手册/Nginx接入_en.md) — `ngx_otel_module` entry traces
- [Spring Boot OTLP Integration](快速入门/spring-boot-otlp-integration_en.md)
- [SkyWalking Ingestion](使用手册/SkyWalking接入_en.md)
## Open source
- Repository: [github.com/databufflabs/databuff](https://github.com/databufflabs/databuff)
- License: [AGPL-3.0](https://github.com/databufflabs/databuff/blob/main/LICENSE)