-
Notifications
You must be signed in to change notification settings - Fork 450
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
[Enhancement] Possibility to add services for custom exporters #931
Comments
Does it have to be an additional service or can the operator open the Prometheus exporter port on the existing collector service? |
Hi @pavolloffay, thanks for your response! There's no real need for an additional service. If the existing collector service would expose the Prometheus exporter it'd be fine :) Cheers |
Hi @devops-42 I'm going to take a look at this. Can you send me the (possibly simplified) CR that you are using? It would be helpful as I'm not really that familiar with using the prometheus exporter. |
HI @kevinearls, here we go:
I omitted the parts for tracing and logging. In this setup I received metrics via OLTP. The collector itself provides two endpoints:
Hope, that helps! |
@devops-42 Thanks! |
+1 on this. @kevinearls just wondering if you had any chance to look into this or need any help. i am familiar with go and OTel, have a local OTel collector dev env but not the operator dev env yet. I need this for an internal o11y project where we have to send metrics received into the Otel collector to a Prometheus backend, seems like a fairly common requirement. We can create a prom The OTel sample demo project has a similar example where a prometheus exporter port The TOBS project works around this by using Prometheus push but that is not always possible. See: https://github.com/timescale/tobs/blob/main/chart/values.yaml#L426 |
Hi @lakamsani I am no longer working on the OTEL operator, so feel free to go ahead and work on this. |
@VineethReddy02 FYI ☝️if you have any thoughts on this in terms of level of effort. |
@lakamsani this isn't an L effort. I have contributed in the past to expose receiver ports based on the OtelCollector config. Here is the parser directory exposing receiver ports. Adding something similar for exporters should do the job. |
Any update? It would be great if we could expose the |
@stillya you could try the approach proposed in MoizBhayani#1 . We can confirm it works in our environment in as far making the port available for use for scraping by prometheus via the exporter. You will have to build your own operator locally with those changes. However we did run into an issue with the exporter code that converts from OTel metrics to Prometheus based on a review of error logs. We opened an issue for that open-telemetry/opentelemetry-collector-contrib#20885 On the MoizBhayani#1 PR we got improvement feedback via email from @jaronoff97 , quoting:
We have not had a chance to try either enhancement yet. I don't believe either enhancement is related to or will fix the format conversion error open-telemetry/opentelemetry-collector-contrib#20885 . On that issue our plan is to try with the latest release of OTel SDKs and collectors as announced here |
For people looking at a workaround. The prometheus exporter port can be exposed explicitly in the collector CR e.g. mode: deployment
ports:
- name: promexporter
port: 8889
protocol: TCP |
Hi @pavolloffay that is great to know. Any specific version of the OTel operator and the collector it pulls via the CR that we need for this to work. With reference to operator releases listed here We are currently using As of this writing seems like |
Related #1689 |
I think we can close this issue now because the ports are exposed in the `Service. |
Hi,
with the deployment of the CRD
OpenTelemetryCollector
three services will deployed by default:<APP>-collector
<APP>-collector-headless
<APP>-collector-monitoring
The documentation is stating, that
Is this behaviour possible for exporters too? My setup has a prometheus exporter configured listening on port
8889
:To access this service, e.g., from a remote Prometheus instance, I need to create a service manually, i.e. this service is not managed by the operator and may get changed or destroyed without reconciliation.
Question: Is it possible to create additional services by the operator when using exporters which have ports bound on the collector container? This issue might be related to #898
Thanks for your feedback in advance!
Cheers
The text was updated successfully, but these errors were encountered: