On This Page

Home / Search/ Get Data In/ Sources/Ingest OpenTelemetry Data into Cribl Search

Ingest OpenTelemetry Data into Cribl Search ​

Collect metrics, traces, and logs from OTLP-compliant agents to store them in Cribl Search for fast analysis.


Before You Begin ​

You’ll need:

  • Cribl.Cloud Enterprise. For details, see Pricing.
  • Search Editor Permission, or higher. Learn who can do what at Cribl Search Permissions.
  • An OpenTelemetry agent or collector that can reach Cribl Search over OTLP/gRPC or OTLP/HTTP.

You don’t need Cribl Stream, Edge, or Lake. (Looking for the OpenTelemetry (OTel) Source in Cribl Stream instead?)

1. Add a Lakehouse Engine ​

See Lakehouse Engines in Cribl Search.

2. Set Up Your Search Datasets ​

Create the Search Datasets you’ll route events into, and set their retention. See Create Search Datasets.

If this Source will store metrics, you don’t need to create a Dataset for them. Cribl Search auto-provisions a metrics Dataset for each lakehouse engine. See The metrics Dataset.

3. Add an OpenTelemetry Source in Cribl Search ​

On the Cribl.Cloud top bar, select Products > Search > Data > Add Source > OpenTelemetry.

Adding Sources in Cribl Search
Adding Sources in Cribl Search

Describe Your Source and Set the Protocol ​

Under General, configure:

SettingDescriptionExample
IDSource ID, unique across your Cribl.Cloud Workspace.

Use letters, numbers, underscores, hyphens.
otel_prod
DescriptionDescribe your Source so others know what it’s for.Ingests OTLP from prod collectors
AddressHostname (FQDN) that your upstream sender connects to.

You’ll need this to set up your upstream sender.
search.main.foo-bar-abc123.cribl.cloud
PortNetwork port to listen on.

The drop-down labels the two OTLP defaults as gRPC Default (4317) and HTTP Default (4318). Keep the default unless it conflicts with another service.
4317 (gRPC default), 4318 (HTTP default)
OTLP versionVersion of the OTLP Protobuf spec to use.

Choose the version that matches your upstream sender.
1.3.1 (default)
ProtocolThe transport protocol to accept: gRPC (default) or HTTP.

Choose the protocol that matches your upstream sender.
gRPC (default)

Port follows Protocol. Switching to HTTP moves the port to 4318, and switching back to gRPC moves it to 4317. If another Source already uses the target port, the port stays where it is and the drop-down marks the target as already in use, so check the port before you save.

Choose Logs, Metrics, or Both ​

The Source also offers Store this source data as, which controls which OTLP signals the Source stores, and where it stores them. This setting appears only when metrics are enabled for your Organization.

OptionOTLP metricsOTLP logs and spans
Logs (default)Dropped.Stored as events in your Search Datasets.
MetricsStored in the metrics Dataset of your lakehouse engine.Dropped.
Both Logs and MetricsStored in the metrics Dataset of your lakehouse engine.Stored as events in your Search Datasets.

Keep these behaviors in mind:

  • Both Logs and Metrics stores each metric once, in the metrics Dataset. Cribl Search never keeps a second, event-shaped copy of a metric in a Search Dataset.
  • Metrics stores metrics only. If you want to keep the logs and spans that the same Source receives, select Both Logs and Metrics.
  • A Source that you created before this setting existed behaves as Logs, so the metrics it receives are dropped rather than stored as events.
  • Cribl Search extracts the individual data points from your OTLP metric payloads for you. You don’t need to configure an extraction setting.

Metrics is a Preview feature, and your metrics share the compute and storage of your lakehouse engine. To review the impact on your engine, see Explore Metrics in Cribl Search.

To learn which OTLP metric types Cribl Search stores, and how it renames them, see Supported OTLP Metrics.

Set up Authentication ​

Use authentication to make sure only authorized senders can push data to your Cribl Search Source.

Under Authentication, select the Authentication type you want to use:

NoneBasicBasic (Credentials Secret)Auth TokensAuth Token (Text Secret)

Set Up Encryption ​

TLS encryption protects your data in transit between upstream senders and your Cribl Search Source. New Sources have TLS enabled by default, with TLS 1.2 as the minimum version.

Under Encrypt, you can review or adjust the Minimum TLS version you want to accept:

TLS VersionWhen to Use
1.3Provides the strongest security. Use when your clients support it.
1.2The default. Use for broad client compatibility.
Older than 1.2Avoid if possible. These versions are no longer considered secure.

Select Save to create the Source.

4. Set Up Datatyping ​

Datatyping applies to the logs and spans that take the event path. If this Source stores metrics only, you can skip this step, because metrics route to a metrics Dataset through Metric Dataset rules instead.

Configure Datatype rules to parse, filter, and normalize your data into structured fields. We call this process Datatyping.

On the Cribl.Cloud top bar, select Products > Search > Data > Datatyping (auto). Here, you can:

See also:

5. Set Up Dataset Rules ​

Configure Dataset rules to route the parsed events into your Search Datasets.

On the Cribl.Cloud top bar, select Products > Search > Data > Datasets: Organize Your Data, and see Organize Data with Dataset Rules for details.

Route Metrics with Metric Dataset Rules ​

If this Source stores metrics, Metric Dataset rules decide which metrics Dataset receives them. By default, a single catch-all rule sends all metrics to the primary metrics Dataset. A rule for this Source matches open_telemetry:<your-source-id> - for example, open_telemetry:otel_prod.

Metric Dataset rules apply to data as it arrives and aren’t retroactive, so add your rule before you start sending data. For details, see Add Metric Dataset Rules.

6. Set Up Your OpenTelemetry Sender ​

Configure your OpenTelemetry collector to export to the Source endpoint.

You’ll need these details from your Source configuration:

Name
Example
Addresssearch.main.foo-bar-abc123.cribl.cloud
Port4317 (gRPC default), 4318 (HTTP default)
Username / Password

Or, Token
otel_user / ********

420

Examples: OpenTelemetry > Cribl Search ​

Edit the OpenTelemetry agent or collector’s YAML configuration file, using the following example. For details, see OpenTelemetry docs.

Replace the example address (search.main.foo-bar-abc123.cribl.cloud), token, and port (if you changed the defaults 4317 for gRPC or 4318 for HTTP) with your Source values.

gRPCHTTPS

7. Start Sending Data and Verify ​

Start sending events from your upstream OpenTelemetry sender, and verify that they’re successfully flowing into Cribl Search.

On the Cribl.Cloud top bar, select Products > Search > Data > Live Data.

Here, check for your OpenTelemetry Source. For details, see Live Data.

Live Data shows the logs and spans that take the event path. To confirm that your metrics arrived, open the Metrics Explorer instead: on the Cribl.Cloud top bar, select Products > Search > Metrics, then select the metrics Dataset that your Metric Dataset rules target. For details, see Explore Metrics in Cribl Search.

Supported OTLP Metrics ​

This section applies when the Source stores metrics. See Choose Logs, Metrics, or Both.

Metric Types ​

Cribl Search maps each supported OTLP metric type to a Prometheus metric type that you can query with PromQL:

OTLP metric typeStored as
GaugeGauge
Sum, monotonicCounter
Sum, non-monotonicGauge
Histogram with explicit bucketsHistogram

Cribl Search doesn’t store Summary metrics or exponential histograms. It also drops individual data points that carry an unusable name, value, or timestamp, along with histograms that arrive without a sum. Your sender receives no error when Cribl Search drops a data point, so if a metric you expect is missing from the Metrics Explorer, check its type first.

Cribl Search also drops a data point whose timestamp falls outside the metrics Dataset’s expected time range. By default, a metrics Dataset accepts timestamps up to 10 minutes in the future and has no lower bound, so a sender whose clock runs fast loses data even though the data points themselves are valid. To change the window, open the metrics Dataset and edit Earliest expected timestamp and Latest expected timestamp.

Metric and Label Names ​

To keep names valid in PromQL, Cribl Search translates OTLP metric and label names into Prometheus-compatible names. The name you query can therefore differ from the name your collector sends:

  • Cribl Search appends the unit as a suffix when the name doesn’t already include it. A metric measured in s gains _seconds, and a metric measured in By gains _bytes. A compound unit such as m/s becomes _meters_per_second. For example, http.server.duration measured in ms becomes http_server_duration_milliseconds.
  • A counter gains a _total suffix at the end of the name, such as http_server_requests_total. If the name already contains total, Cribl Search moves it to the end instead of adding a second one, so my.total.requests becomes my_requests_total.
  • A gauge measured in unit 1 gains a _ratio suffix, such as system_cpu_utilization_ratio. A non-monotonic sum stored as a gauge doesn’t gain this suffix.
  • In a metric name, any character other than a letter, a number, or a colon becomes an underscore, and a run of them collapses into a single underscore. A name that starts with a digit gains a leading underscore.
  • Label names follow the stricter label rules of Prometheus, so a colon becomes an underscore there too, and a label name that would start with a digit gains a prefix. The OTLP attribute service.name becomes the label service_name.
  • When two OTLP attribute keys translate to the same label name, Cribl Search joins their values with the ; character rather than dropping either value.
  • When your sender includes an instrumentation scope, Cribl Search adds the otel_scope_name, otel_scope_version, and otel_scope_schema_url labels.

Cribl Search stores the unit, description, timestamp, and temporality of each metric alongside the data point. It doesn’t keep the original metric name or the original attribute keys, so if a metric is missing under the name you expect, apply these translation rules to work out its queryable name.

Next Steps ​

Now that your data is in Cribl Search, you can start using it. For example: