Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion rock/admin/metrics/monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ def _should_skip(self):
def _init_telemetry(self, export_interval_millis: int):
if self._should_skip():
return
if self.env == "dev":
if self.env in {"dev", "test"}:
self.metric_reader = InMemoryMetricReader()
else:
self.otlp_exporter = OTLPMetricExporter(endpoint=self.endpoint)
Expand Down
18 changes: 12 additions & 6 deletions rock/sandbox/base_actor.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
from opentelemetry.metrics import _Gauge
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.sdk.metrics.export import InMemoryMetricReader, PeriodicExportingMetricReader

from rock import env_vars
from rock.deployments.abstract import AbstractDeployment
Expand Down Expand Up @@ -87,11 +87,17 @@ def _init_monitor(self):
self.host = host
logger.info(f"Initializing MetricsCollector with host={host}, port={port}, " f"env={env}, role={role}")
endpoint = self._metrics_endpoint or f"http://{host}:{port}/v1/metrics"
self.otlp_exporter = OTLPMetricExporter(endpoint=endpoint)
self.metric_reader = PeriodicExportingMetricReader(
self.otlp_exporter,
export_interval_millis=self._export_interval_millis,
)

# Use InMemoryMetricReader for dev/test environments to avoid OTLP collector connection errors
if env in {"dev", "test"}:
logger.info("Using InMemoryMetricReader for dev/test environment, skipping OTLP export")
self.metric_reader = InMemoryMetricReader()
else:
self.otlp_exporter = OTLPMetricExporter(endpoint=endpoint)
self.metric_reader = PeriodicExportingMetricReader(
self.otlp_exporter,
export_interval_millis=self._export_interval_millis,
)
self.meter_provider = MeterProvider(metric_readers=[self.metric_reader])
metrics.set_meter_provider(self.meter_provider)
self.meter = metrics.get_meter("XRL_GATEWAY_CONFIG")
Expand Down
Loading