Skip to content

Conversation

15skumar
Copy link
Contributor

@15skumar 15skumar commented Aug 6, 2025

This PR is not to be merged, it is just for the basic performance benchmark checks.

This PR has all of the OTel integration including CLI parameters, and all Mountpoint metrics being published.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

15skumar and others added 3 commits July 23, 2025 16:37
This PR adds an implementation of OpenTelemetry Exporting of metrics
through the OpenTelemetry protocol (OTLP). Changes are: a new
OtlpMetricsExporter struct which handles exporting metrics to an OTLP
endpoint, and integration of the OTLP exporter with the existing metrics
system.

Testing:
I tested the implementation with a test otlp_metrics() in metrics.rs and
ran a docker container running the OpenTelemetry Collector at the
default port

docker run -d --name otel-collector \
  -p 4318:4318 -p 4317:4317 \
  -v $(pwd)/collector-config.yaml:/etc/otelcol/config.yaml \
  otel/opentelemetry-collector-contrib:latest

Once I ran the test, I verified that the test metrics can be viewed in
the collector logs. (viewed using 'docker logs otel-collector'). Here is
a screenshot of an example of a test metric collected at the endpoint:
<img width="391" alt="Screenshot 2025-06-18 at 15 32 16"
src="https://github.com/user-attachments/assets/aab7e20a-0472-495b-af1d-23e966495e21"
/>

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Signed-off-by: Shivangi Kumar <shivyk@amazon.com>
Co-authored-by: Shivangi Kumar <shivyk@amazon.com>
No impact on existing behavior, only adding on to existing behavior.
Note that we have removed publishing of Histogram metrics for now while
we figure out how to integrate the percentiles into CloudWatch. All
other metrics, i.e. counters and gauges are published.

This PR adds a CLI argument which enables users to run Mountpoint with
the functionality of publishing metrics to a specified endpoint, and
includes a change to allow normal metrics logging and metrics publishing
at the same time.

Added functionality:
Run Mountpoint with `--log-metrics-otlp http://localhost:4318` flag to
enable publishing metrics to port 4318 (otlp port)
Optionally you can also specify the exporting interval with the
`--log-metrics-otlp-interval` flag.

To verify the implementation I ran a docker container running the
OpenTelemetry Collector at the default port, and ran Mountpoint with the
new flag with endpoint specified.
I verified that the Mountpoint metrics were visible in the collector
logs. Here is a screenshot of an example Mountpoint metric collected at
the endpoint:
<img width="408" alt="Screenshot 2025-06-24 at 17 23 38"
src="https://github.com/user-attachments/assets/a7acfdda-bb85-4595-96ea-633969418b79"
/>

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Signed-off-by: Shivangi Kumar <shivyk@amazon.com>
Co-authored-by: Shivangi Kumar <shivyk@amazon.com>
This PR adds documentation that includes instructions to publish
Mountpoint metrics to CloudWatch/Prometheus.

### Does this change impact existing behavior?
No impact on existing behaviour.

No breaking changes.


---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

---------

Signed-off-by: Shivangi Kumar <shivyk@amazon.com>
Co-authored-by: Shivangi Kumar <shivyk@amazon.com>
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 14:34 — with GitHub Actions Inactive
@15skumar 15skumar added the performance PRs to run benchmarks on label Aug 6, 2025
This PR removes unnecessary default dimensions which are published by
the OpenTelemetry SDK. This is to make the published metrics on
CloudWatch more readable and focused on specific Mountpoint metrics
dimensions.

No impact on existing behaviour.

No breaking change.

Tested by checking metrics published to CloudWatch - the OpenTelemetry
SDK dimensions are no longer published.
The specific dimensions that you want to aggregate can be configured in
the CloudWatch Agent configuration file.

Before:

<img width="1221" alt="Screenshot 2025-07-02 at 18 22 10"
src="https://github.com/user-attachments/assets/0ea75255-a279-432c-b6fd-cad0174aa7d3"
/>

After:

<img width="1222" alt="Screenshot 2025-07-02 at 18 22 32"
src="https://github.com/user-attachments/assets/76b6f597-f13d-491e-aebd-45035037b649"
/>

---

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and I agree to the terms of
the [Developer Certificate of Origin
(DCO)](https://developercertificate.org/).

Signed-off-by: Shivangi Kumar <shivyk@amazon.com>
Co-authored-by: Shivangi Kumar <shivyk@amazon.com>
@15skumar 15skumar force-pushed the otel-integration-performance branch from fc81758 to b1f8959 Compare August 6, 2025 15:07
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
@15skumar 15skumar temporarily deployed to PR integration tests August 6, 2025 15:07 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

performance PRs to run benchmarks on

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant