-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Add OTLP metrics endpoint #133057
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add OTLP metrics endpoint #133057
Conversation
Pinging @elastic/es-storage-engine (Team:StorageEngine) |
...gin/otel-data/src/main/java/org/elasticsearch/xpack/oteldata/otlp/OTLPMetricsRestAction.java
Show resolved
Hide resolved
Did a quick test, and so far seems to be working as expected. For everyone that needs a config to do a quick test run with the otel collector:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Had a look at the histogram stuff only
...l-data/src/main/java/org/elasticsearch/xpack/oteldata/otlp/datapoint/HistogramConverter.java
Outdated
Show resolved
Hide resolved
...l-data/src/main/java/org/elasticsearch/xpack/oteldata/otlp/datapoint/HistogramConverter.java
Outdated
Show resolved
Hide resolved
...a/src/test/java/org/elasticsearch/xpack/oteldata/otlp/datapoint/HistogramConverterTests.java
Outdated
Show resolved
Hide resolved
335ce54
to
e6dc2db
Compare
Functionality-wise, everything has been merged. There are some outstanding performance improvements as part of #132566 but these are fully decoupled from the functionality. Currently, the endpoint is behind a feature flag, meaning that it's enabled by default on snapshot builds. |
@felixbarny the |
The idea is that on serverless, we hide the endpoint in ES so that the only OTLP endpoint is the one based on the managed OTel collector. For on-prem deployments, this endpoint is publicly available. At this instant, the endpoint is behind a feature flag. This means it's only available in snapshot builds. The plan is to release this as tech preview in 9.2. |
@felixbarny thanks, I was wondering if this endpoint will be added to the elasticsearch-specification. In that case, I suggest to mark it as |
What does visibility: private exactly do? I was planning to add this to elasticsearch-specification but only as a means to document the endpoint, not for language client code generation. I think it makes sense to document the endpoint and mention in the docs that in serverless, the managed OTLP endpoint should be used.
Completely agree. This is not an alternative to EDOT or an OTel collector. But OTel collectors can use this endpoint with the |
The |
Does this have any impact on the documentation? IIUC, the API docs also get generated from the es spec. Would setting this to private omit the endpoint from the docs? |
The endpoints marked as |
Then this is probably not the right flag for us to use. We want to have this endpoint documented. |
@felixbarny what would be the effect of someone sending a considerable amount of metrics to this endpoint on a considerably large ECH cluster? |
The effect would be similar to sending the same metrics to the _bulk endpoint. In both cases we prefer larger batches rather than many small ones. |
Adds docs for the new OTLP endpoint added via elastic/elasticsearch#133057 Closes #3363 --------- Co-authored-by: Fabrizio Ferri-Benedetti <fabri.ferribenedetti@elastic.co> Co-authored-by: Kostas Krikellas <131142368+kkrik-es@users.noreply.github.com>
Adds an OTLP endpoint for metric ingestion into TSDB.
This simplifies getting data into TSDB as configuration of mappings and dimensions isn't required. It also improves ingestion performance. Partly due to the binary encoding but also because it can re-use partial
TsidBuilder
s for common resource attributes.My aim was to retain exactly the same semantics and behavior as the OTel collector's Elasticsearch exporter, including data stream routing and mapping hints.
Depends on
To review, select from the 3rd commit (9cea250) onwards
Note that I might force-push to the branch once the PRs this depends on get merged.