Class: Gitlab::Observability::OtelExporter
- Inherits:
-
Object
- Object
- Gitlab::Observability::OtelExporter
- Includes:
- Utils::StrongMemoize
- Defined in:
- lib/gitlab/observability/otel_exporter.rb
Constant Summary collapse
- ExportError =
Class.new(StandardError)
- AuthenticationError =
Class.new(ExportError)
- NetworkError =
Class.new(ExportError)
- ENDPOINTS =
{ traces: '/v1/traces', metrics: '/v1/metrics', logs: '/v1/logs' }.freeze
Instance Method Summary collapse
- #export_logs(logs_data) ⇒ Object
- #export_metrics(metrics_data) ⇒ Object
- #export_traces(traces_data) ⇒ Object
-
#initialize(integration) ⇒ OtelExporter
constructor
A new instance of OtelExporter.
Constructor Details
#initialize(integration) ⇒ OtelExporter
Returns a new instance of OtelExporter.
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/gitlab/observability/otel_exporter.rb', line 18 def initialize(integration) @integration = integration unless integration.respond_to?(:otel_endpoint_url) && integration.respond_to?(:otel_headers) raise ArgumentError, "Integration must respond to otel_endpoint_url and otel_headers" end @endpoint_url = integration.otel_endpoint_url @headers = integration.otel_headers end |
Instance Method Details
#export_logs(logs_data) ⇒ Object
37 38 39 |
# File 'lib/gitlab/observability/otel_exporter.rb', line 37 def export_logs(logs_data) export_data(:logs, logs_data) end |
#export_metrics(metrics_data) ⇒ Object
33 34 35 |
# File 'lib/gitlab/observability/otel_exporter.rb', line 33 def export_metrics(metrics_data) export_data(:metrics, metrics_data) end |
#export_traces(traces_data) ⇒ Object
29 30 31 |
# File 'lib/gitlab/observability/otel_exporter.rb', line 29 def export_traces(traces_data) export_data(:traces, traces_data) end |