Skip to content
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

Consider adding OpenTelemetry [Metrics] Exporter #1727

Closed
sargun opened this issue Sep 2, 2020 · 5 comments
Closed

Consider adding OpenTelemetry [Metrics] Exporter #1727

sargun opened this issue Sep 2, 2020 · 5 comments
Labels
enhancement New feature or request

Comments

@sargun
Copy link

sargun commented Sep 2, 2020

Is your feature request related to a problem? Please describe.
We would like to be able to chain OpenTelemetry components and send metrics from the opentelemetry collector to other systems that have opentelemetry compatibility.

Describe the solution you'd like
A exporter which can export to either the protobuf / JSON over HTTP or GRPC Opentelemetry collector endpoint as described in (https://github.com/open-telemetry/opentelemetry-proto/blob/master/opentelemetry/proto/collector/metrics/v1/metrics_service.proto).

Describe alternatives you've considered
We can either fork OT Contrib and add a custom exporter that exports to our internal system, or read from the file based exporter. The Prometheus exporter just adds another layer of indirection. The closest thing to this we have right now is the opencensus exporter, which basically does everything that the Opentelemetry protocol does, but not quite.

Additional context
We have an internal metrics system which probably doesn't make sense to add to contrib. We would like to be able to use collector and have it send metrics to our internal system. We can (relatively) easily implement the OpenTelemetry Metrics endpoint, or alternatively, build a custom exporter for opentelemetry collector.

What we would then do is something like this:

                           ┌−−−−−−−−−−−−−−−−−−−−−−−−−−−┐
                           ╎        generators         ╎
                           ╎                           ╎
                           ╎ ┌───────────────────────┐ ╎
                           ╎ │        Kubelet        │ ╎
                           ╎ └───────────────────────┘ ╎
                           ╎                           ╎
                           └−−−−−−−−−−−−−−−−−−−−−−−−−−−┘
                               │
                               │ kubeletstatsreceiver
                               │
┌−−−−−−−−−−−−−−┐               │                                       ┌−−−−−−−−−−−−−┐
╎              ╎               │                                       ╎             ╎
╎              ╎               ▼                                       ╎             ╎
╎ ┌──────────┐ ╎             ┌───────────────────────┐                 ╎ ┌─────────┐ ╎
╎ │          │ ╎             │     Opentelemetry     │                 ╎ │         │ ╎
╎ │ Node App │ ╎  statsd     │   Contrib Collector   │    prometheus   ╎ │ Systemd │ ╎
╎ │          │ ╎ ────────▶   │    otelcontribcol     │   ◀──────────── ╎ │         │ ╎
╎ └──────────┘ ╎             └───────────────────────┘                 ╎ └─────────┘ ╎
╎              ╎                                                       ╎             ╎
└−−−−−−−−−−−−−−┘                                                       └−−−−−−−−−−−−−┘
                               │
                               │ OT grpc
                               ▼
                             ┌───────────────────────┐
                             │     Opentelemetry     │
                             │   Custom Collector    │
                             └───────────────────────┘
                               │
                               │ Custom exporter
                               ▼
                             ┌───────────────────────┐
                             │      Propietary       │
                             │    Global Metrics     │
                             │        System         │
                             └───────────────────────┘

This way we wouldn't have to do a bunch of messy go forking / mod hackery.

@bogdandrutu
Copy link
Member

This is already supported (using gRPC) unless I am missing something

@sargun
Copy link
Author

sargun commented Sep 3, 2020

@bogdandrutu Would HTTP (either protobuf or JSON) be considered to be added?

@bogdandrutu
Copy link
Member

Yes, see #1719 where someone else asks for the same thing.

@sargun
Copy link
Author

sargun commented Sep 3, 2020

Linking the actual bug: #882

@sargun sargun closed this as completed Sep 3, 2020
@andrewhsu andrewhsu added the enhancement New feature or request label Jan 6, 2021
MovieStoreGuy pushed a commit to atlassian-forks/opentelemetry-collector that referenced this issue Nov 11, 2021
* Update SamplingParameters

Remove HasRemoteParent fields from SamplingParameters. The
HasRemoteParent field is a duplicate of the Remote field of the parent
span context contained in the ParentContext.

Change the `ParentContext` field from storing a `SpanContext` to a
`context.Context` that holds the parent span. This is to conform with
the OpenTelemetry specification and resolve open-telemetry#1727.

* Update PR number
hughesjj pushed a commit to hughesjj/opentelemetry-collector that referenced this issue Apr 27, 2023
Troels51 pushed a commit to Troels51/opentelemetry-collector that referenced this issue Jul 5, 2024
* + Rename `LogProcessor` to `LogRecordProcessor`
+ Rename `LogExporter` to `LogRecordExporter`
+ Move `*log_processor*` to `*log_record_processor*`
+ Move `*log_exporter*` to `*log_record_exporter*`

Signed-off-by: owent <admin@owent.net>

* Add changelog

Signed-off-by: owent <admin@owent.net>

Signed-off-by: owent <admin@owent.net>
Co-authored-by: Ehsan Saei <71217171+esigo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants