You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the bootstrap implementation of the prometheus exporter (#334), we have been using the prometheus client lib to aggregate and export metrics to the Prometheus format. To make that works, we needed to keep every recorded metric point on the sdk (i.e., not aggregate at all), so prometheus could aggregate itself, this is could be expensive.
We could start using the Prometheus client to only export data and let the metrics SDK do all the necessary aggregation work but there is some work that need to be done before. This would optimize the metrics SDK that would not need to keep track of all the metric points to calculate a histogram, for example.
From what I've understood of the OpenCensus Prometheus Exporter, we would need to implement the prometheus.Collector to send const metric points to the prometheus client that would then export these via the promhttp.Handler.
To achieve something similar to OpenCensus we would need:
Implement a pull based controller;
the usage of this controller would be close to: promhttp.Handler -> Otel Prometheus Exporter -> PullController.Tick()
Change the Prometheus exporter to only create these const metrics points and implement the prometheus.Collector interface.
I'm not sure if we should make a PullControler or make a cache of the last CheckpointSet of the existing PushController, since calling PullController.Tick() could be expensive?
This has been discussed on the Otel Metrics office hour and I'm opening this issue to track this suggestion. More investigation need to be done to make sure that we are not missing anything here.
I'll do a PoC for this to check how viable this proposal is and to find out what we would need to do first.
The text was updated successfully, but these errors were encountered:
With the bootstrap implementation of the prometheus exporter (#334), we have been using the prometheus client lib to aggregate and export metrics to the Prometheus format. To make that works, we needed to keep every recorded metric point on the sdk (i.e., not aggregate at all), so prometheus could aggregate itself, this is could be expensive.
We could start using the Prometheus client to only export data and let the metrics SDK do all the necessary aggregation work but there is some work that need to be done before. This would optimize the metrics SDK that would not need to keep track of all the metric points to calculate a histogram, for example.
From what I've understood of the OpenCensus Prometheus Exporter, we would need to implement the
prometheus.Collector
to send const metric points to the prometheus client that would then export these via thepromhttp.Handler
.To achieve something similar to OpenCensus we would need:
the usage of this controller would be close to:
promhttp.Handler
->Otel Prometheus Exporter
->PullController.Tick()
prometheus.Collector
interface.I'm not sure if we should make a
PullControler
or make a cache of the lastCheckpointSet
of the existingPushController
, since callingPullController.Tick()
could be expensive?This has been discussed on the Otel Metrics office hour and I'm opening this issue to track this suggestion. More investigation need to be done to make sure that we are not missing anything here.
I'll do a PoC for this to check how viable this proposal is and to find out what we would need to do first.
The text was updated successfully, but these errors were encountered: