# Conflicts: # cmd/builder/go.sum # cmd/mdatagen/go.mod # cmd/mdatagen/go.sum # cmd/otelcorecol/go.mod # cmd/otelcorecol/go.sum # component/componenttest/go.sum # config/configauth/go.sum # config/configgrpc/go.mod # config/configgrpc/go.sum # config/confighttp/go.sum # config/confighttp/xconfighttp/go.sum # config/configmiddleware/go.sum # connector/connectortest/go.mod # connector/connectortest/go.sum # connector/forwardconnector/go.mod # connector/forwardconnector/go.sum # connector/go.mod # connector/go.sum # connector/xconnector/go.mod # connector/xconnector/go.sum # exporter/debugexporter/go.mod # exporter/debugexporter/go.sum # exporter/exporterhelper/go.mod # exporter/exporterhelper/go.sum # exporter/exporterhelper/xexporterhelper/go.mod # exporter/exporterhelper/xexporterhelper/go.sum # exporter/exportertest/go.mod # exporter/exportertest/go.sum # exporter/go.mod # exporter/go.sum # exporter/nopexporter/go.mod # exporter/nopexporter/go.sum # exporter/otlpexporter/go.mod # exporter/otlpexporter/go.sum # exporter/otlphttpexporter/go.mod # exporter/otlphttpexporter/go.sum # exporter/xexporter/go.mod # exporter/xexporter/go.sum # extension/extensionauth/extensionauthtest/go.sum # extension/extensionmiddleware/extensionmiddlewaretest/go.sum # extension/extensiontest/go.sum # extension/xextension/go.sum # extension/zpagesextension/go.sum # go.mod # internal/e2e/go.mod # internal/e2e/go.sum # internal/sharedcomponent/go.sum # otelcol/go.mod # otelcol/go.sum # otelcol/otelcoltest/go.mod # otelcol/otelcoltest/go.sum # pdata/pprofile/go.mod # pdata/pprofile/go.sum # processor/processorhelper/go.sum # processor/processorhelper/xprocessorhelper/go.sum # processor/processortest/go.sum # receiver/otlpreceiver/go.sum # receiver/receiverhelper/go.sum # receiver/receivertest/go.sum # scraper/go.sum # scraper/scraperhelper/go.sum # scraper/scraperhelper/xscraperhelper/go.sum # scraper/scrapertest/go.sum # scraper/xscraper/go.sum # service/go.mod # service/go.sum # service/telemetry/telemetrytest/go.mod # service/telemetry/telemetrytest/go.sum Co-authored-by: Hanzo Dev <[email protected]>
OTLP Receiver
| Status | |
|---|---|
| Stability | alpha: profiles |
| stable: traces, metrics, logs | |
| Distributions | core, contrib, k8s, otlp |
| Issues |
Receives data via gRPC or HTTP using OTLP format.
Getting Started
All that is required to enable the OTLP receiver is to include it in the receiver definitions. A protocol can be disabled by simply not specifying it in the list of protocols.
receivers:
otlp:
protocols:
grpc:
http:
The following settings are configurable:
endpoint(default = localhost:4317 for grpc protocol, localhost:4318 http protocol): host:port to which the receiver is going to receive data. The valid syntax is described at https://github.com/grpc/grpc/blob/master/doc/naming.md. See our security best practices doc to understand how to set the endpoint in different environments.
Advanced Configuration
Several helper files are leveraged to provide additional capabilities automatically:
- gRPC settings including CORS
- HTTP settings
- TLS and mTLS settings
- Auth settings
Writing with HTTP/JSON
The OTLP receiver can receive trace export calls via HTTP/JSON in addition to gRPC. The HTTP/JSON address is the same as gRPC as the protocol is recognized and processed accordingly. Note the serialization format needs to be OTLP JSON.
The HTTP/JSON configuration also provides traces_url_path,
metrics_url_path, logs_url_path, and profiles_url_path configurations to
allow the URL paths that signal data needs to be sent to be modified per signal
type. These default to /v1/traces, /v1/metrics, /v1/logs, and
/v1/profiles respectively.
To write traces with HTTP/JSON, POST to [address]/[traces_url_path] for
traces, to [address]/[metrics_url_path] for metrics, to
[address]/[logs_url_path] for logs, and to [address]/[profiles_url_path] for
profiles.
The default port is 4318. When using the otlphttpexporter peer to
communicate with this component, use the traces_endpoint,
metrics_endpoint, logs_endpoint, and profiles_endpoint settings in the
otlphttpexporter to set the proper URL to match the address and URL signal
path on the otlpreceiver.
CORS (Cross-origin resource sharing)
The HTTP/JSON endpoint can also optionally configure CORS under cors:.
Specify what origins (or wildcard patterns) to allow requests from as
allowed_origins. To allow additional request headers outside of the default
safelist, set allowed_headers. Browsers can be instructed to
cache responses to preflight requests by setting max_age.
receivers:
otlp:
protocols:
http:
endpoint: "localhost:4318"
cors:
allowed_origins:
- http://test.com
# Origins can have wildcards with *, use * by itself to match any origin.
- https://*.example.com
allowed_headers:
- Example-Header
max_age: 7200