Skip to content

Commit 2f87a1d

Browse files
feat: initialize metrics exporter http gem (#1670)
* feat: initialize metrics exporter http gem * remove version_rb_path for metrics exporter in release * lint * chore: Update metrics exporter README This removes content related to installing the gem before the metrics API and SDK gems were released. * chore: Update MetricsExporter class in example Now, there's an extra Metrics:: namespace * chore: Update class for MetricsExporter * revision * add force_flush --------- Co-authored-by: Kayla Reopelle <kreopelle@newrelic.com>
1 parent 62bb150 commit 2f87a1d

File tree

11 files changed

+523
-545
lines changed

11 files changed

+523
-545
lines changed

.toys/.data/releases.yml

+4
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ gems:
6363
directory: exporter/otlp
6464
version_constant: [OpenTelemetry, Exporter, OTLP, VERSION]
6565

66+
- name: opentelemetry-exporter-otlp-metrics
67+
directory: exporter/otlp-metrics
68+
version_constant: [OpenTelemetry, Exporter, OTLP, Metrics, VERSION]
69+
6670
- name: opentelemetry-exporter-zipkin
6771
directory: exporter/zipkin
6872
version_constant: [OpenTelemetry, Exporter, Zipkin, VERSION]

examples/metrics_sdk/metrics_collect_otlp.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
OpenTelemetry::SDK.configure
2222

23-
otlp_metric_exporter = OpenTelemetry::Exporter::OTLP::MetricsExporter.new
23+
otlp_metric_exporter = OpenTelemetry::Exporter::OTLP::Metrics::MetricsExporter.new
2424

2525
OpenTelemetry.meter_provider.add_metric_reader(otlp_metric_exporter)
2626

exporter/otlp-metrics/README.md

+6-40
Original file line numberDiff line numberDiff line change
@@ -18,55 +18,21 @@ Generally, *libraries* that produce telemetry data should avoid depending direct
1818

1919
This gem supports the [v0.20.0 release][otel-proto-release] of OTLP.
2020

21-
## Prerequisite
22-
23-
The exporter-oltp-metrics depends on two gems that have not been officially released: opentelemetry-metrics-sdk and opentelemetry-metrics-api.
24-
25-
Within the .gemspec file, these gems are not listed as dependencies. However, for users who need utilize this metrics exporter, they must first install and load these two gems before they can use the exporter.
26-
27-
To facilitate this, there are couple recommended approaches:
28-
29-
#### 1. Download the source code
30-
31-
1. Download the [opentelemetry-ruby](https://github.com/open-telemetry/opentelemetry-ruby).
32-
2. Navigate to subfolder, then build the [metrics_sdk](https://github.com/open-telemetry/opentelemetry-ruby/tree/main/metrics_sdk) and [metrics_api](https://github.com/open-telemetry/opentelemetry-ruby/tree/main/metrics_api).
33-
3. Execute `gem build *.gemspec`.
34-
4. Lastly, install the built gem into the system.
35-
36-
#### 2. Using `path:` option in Gemfile with downloaded source code
37-
38-
git clone [opentelemetry-ruby](https://github.com/open-telemetry/opentelemetry-ruby) first, then use Gemfile
39-
40-
```ruby
41-
# Gemfile
42-
source 'https://rubygems.org'
43-
gem 'opentelemetry-metrics-api', path: "opentelemetry-ruby/metrics_api"
44-
gem 'opentelemetry-metrics-sdk', path: "opentelemetry-ruby/metrics_sdk"
45-
```
46-
47-
#### 3. Using `git:` option in Gemfile
48-
49-
```ruby
50-
# Gemfile
51-
source 'https://rubygems.org'
52-
gem 'opentelemetry-metrics-api', git: "https://github.com/open-telemetry/opentelemetry-ruby", glob: 'metrics_api/*.gemspec'
53-
gem 'opentelemetry-metrics-sdk', git: "https://github.com/open-telemetry/opentelemetry-ruby", glob: 'metrics_sdk/*.gemspec'
54-
```
55-
5621
## How do I get started?
5722

5823
Install the gem using:
5924

6025
```console
6126

6227
gem install opentelemetry-sdk
28+
gem install opentelemetry-metrics-sdk
6329
gem install opentelemetry-exporter-otlp-metrics
6430

6531
```
6632

67-
Or, if you use [bundler][bundler-home], include `opentelemetry-sdk` in your `Gemfile`.
33+
Or, if you use [bundler][bundler-home], include `opentelemetry-sdk`, `opentelemetry-metrics-sdk`, and `opentelemetry-exporter-otlp-metrics` in your `Gemfile`.
6834

69-
Then, configure the SDK to use the OTLP metrics exporter
35+
Then, configure the SDK to use the OTLP metrics exporter
7036

7137
```ruby
7238
require 'opentelemetry/sdk'
@@ -77,7 +43,7 @@ OpenTelemetry::SDK.configure
7743

7844
# To start a trace you need to get a Tracer from the TracerProvider
7945

80-
otlp_metric_exporter = OpenTelemetry::Exporter::OTLP::MetricsExporter.new
46+
otlp_metric_exporter = OpenTelemetry::Exporter::OTLP::Metrics::MetricsExporter.new
8147

8248
OpenTelemetry.meter_provider.add_metric_reader(otlp_metric_exporter)
8349

@@ -112,7 +78,7 @@ The collector exporter can be configured explicitly in code, or via environment
11278

11379
## How can I get involved?
11480

115-
The `opentelemetry-exporter-otlp-metrics` gem source is [on github][repo-github], along with related gems including `opentelemetry-sdk`.
81+
The `opentelemetry-exporter-otlp-metrics` gem source is [on github][repo-github], along with related gems including `opentelemetry-metrics-sdk`.
11682

11783
The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us in [GitHub Discussions][discussions-url] or attending our weekly meeting. See the [meeting calendar][community-meetings] for dates and times. For more information on this and other language SIGs, see the OpenTelemetry [community page][ruby-sig].
11884

@@ -176,4 +142,4 @@ $> bundle exec rake test
176142
[protoc-install]: https://github.com/protocolbuffers/protobuf/releases/tag/v22.5
177143
[ruby-downloads]: https://www.ruby-lang.org/en/downloads/
178144
[otel-proto-github]: https://github.com/open-telemetry/opentelemetry-proto
179-
[otel-proto-release]: https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v0.20.0
145+
[otel-proto-release]: https://github.com/open-telemetry/opentelemetry-proto/releases/tag/v0.20.0

0 commit comments

Comments
 (0)