-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Telegraf/InfluxDB exporter #2952
Conversation
Codecov Report
@@ Coverage Diff @@
## main #2952 +/- ##
=======================================
Coverage 91.91% 91.91%
=======================================
Files 494 493 -1
Lines 23939 23947 +8
=======================================
+ Hits 22003 22011 +8
Misses 1429 1429
Partials 507 507
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
@jacobmarble thanks for the contribution, this is very welcome!
Unfortunately there is no easy way to do that. Collector uses Gogo Protobuf library (for performance reasons). opentelemetry-proto-go uses canonical Go Protobuf library. The in-memory representations of these 2 are different and incompatible. |
@tigrannajaryan I wanted to bring this up at the Golang SIG earlier today. Are you aware of a plan to consolidate? |
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.
Great PR, thanks.
I am only blocking until we clarify the double-registration of Protobuf messages.
exporter/influxdbexporter/README.md
Outdated
InfluxDB/IOx is an open-source time series storage engine, capable of storing and querying large (and small) time series datasets. | ||
The schema used by this OpenTelemetry exporter is optimized for InfluxDB/IOx performance. | ||
|
||
### Definitions |
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.
This is a nice writeup. I wonder if it should be extracted and moved elsewhere (can be somewhere in this repo) since it is not Influxdb-specific.
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.
I agree that it doesn't belong here. My original audience for this section was other Influx employees, not the OpenTelemetry community.
The original is copied out to a text file here. Can you suggest a specific destination for it?
No existing plans AFAIK, but we likely want to do something about it anyway, since it was recently reported that Gogo Protobufs are no longer maintained. Good topic for the next Collector or Go SIG. |
This PR was marked stale due to lack of activity. It will be closed in 7 days. |
(not stale) |
This PR was marked stale due to lack of activity. It will be closed in 7 days. |
chore: fix CI/lint chore: CI fixes
FYI the corresponding Telegraf OpenTelemetry input plugin has been merged. |
@tigrannajaryan FYI here is the corresponding receiver diff. Since there may be feedback here that improves that change, I'll wait to create that PR. |
@jacobmarble Mostly LGTM, thank you. I left a few minor comments. |
I glanced at the receiver and it appears to be doing the mirror of this exporter, which looks reasonable. |
@tigrannajaryan thanks for the thorough review. Clearly this PR has collected some dust over the last few weeks. |
… and contrib (#2952) Signed-off-by: Bogdan Drutu <[email protected]>
Description: Add
influxdbexporter
(WIP)This change adds an exporter for InfluxData line protocol, the native wire transfer protocol for Telegraf and InfluxDB.
The conversion logic lives in package
otel2influx
, and is also imported by the proposed Telegraf OpenTelemetry input plugin. The objective of this strategy is to create a canonical mapping, and an open-source implementation, of OpenTelemetry <-> Telegraf/InfluxDB translation.I am not proposing that
otel2influx
, in its current state, be the canonical mapping. Let's discuss that topic separate from this exporter.One shortcoming of this approach is that both
otel2influx
andopentelemetry-collector
package their own generated protocol buffer objects. This means that every OTLP protobuf object is serialized and deserialized in this exporter. I propose thatopentelemetry-collector
instead depend onopentelemetry-proto-go
, for the benefit of this exporter and other third-party packages.Link to tracking Issue: #2951
Testing: Little testing so far. The translation logic should be tested in package
otel2influx
(but is not currently).Documentation: README.md included in new exporter.