Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PIP-264] Parent issue for implementation #21121

Open
26 of 57 tasks
asafm opened this issue Sep 4, 2023 · 4 comments
Open
26 of 57 tasks

[PIP-264] Parent issue for implementation #21121

asafm opened this issue Sep 4, 2023 · 4 comments
Assignees
Labels
type/enhancement The enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages

Comments

@asafm
Copy link
Contributor

asafm commented Sep 4, 2023

Overview

This issue will the parent issue tracking the implementation of PIP-264 (PR, issue that was converted to PR): Enhanced OTel-based metric system

Execution Plan

There are two parallel tracks of implementation:

  • OpenTelemetry - implementing all changes required to use OpenTelemetry in a low latency system such as Pulsar.
  • Pulsar - implementing the design per the parent PIP (264). See the complete design doc here.

Each part is composed of multiple epics. Some require Saga, divided into epics. The contents of each epic - its breakdown into different stories will be inside each epic, with each story having its issues. In Pulsar, many changes will require writing sub-PIPs. They will be linked appropriately inside each story issue.

🔄 = In-progress.

OpenTelemetry track

This track is mainly done in https://github.com/open-telemetry/opentelemetry-java and https://github.com/open-telemetry/opentelemetry-specification.

Pulsar track

  • 🔄 OTel scaffolding
  • All Prometheus metrics are in OTel, except BK Metrics API, Plugin metrics, Pulsar Function Metrics
    • Messaging metrics in OTel
  • Update All Grafana dashboards.
  • Run performance test manually, verifying latency is not impacted up to 10k topics
  • Adding BK Metrics API implementation for OTel
  • Add support for Pulsar Functions.
  • Plugins support for OTel
  • Rate should be fully managed.
  • Metrics documentation rule (Forcing metrics definition to contain description and units)
  • Support metrics in OTel for 100k topics per broker
    • Introduce Topic Metrics Groups
    • Introduce Filtering
    • Performance test to make sure it works just as well as the previous solution
  • Support Pulsar authentication on OTel Prometheus exporter
  • Deprecate the Prometheus system
@asafm asafm added the type/enhancement The enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages label Sep 4, 2023
@asafm asafm changed the title Parent issue for PIP-264 implementation [PIP-264] Parent issue for implementation Sep 4, 2023
@asafm
Copy link
Contributor Author

asafm commented Oct 3, 2023

In OpenTelemetry track, the support for object pooling to reduce memory allocation by almost 98% was implemented and merged but only for asynchronous instruments. I'm starting to work on doing that for synchronous instruments. In between those PRs I'm using the time to design the first sub PIP: creating the infra needed for any developer to use OTel in Pulsar, including Plugins.

Copy link

github-actions bot commented Nov 3, 2023

The issue had no activity for 30 days, mark with Stale label.

@github-actions github-actions bot added the Stale label Nov 3, 2023
@asafm
Copy link
Contributor Author

asafm commented Nov 7, 2023

@tisonkun Can this not be marked stale all the time?

@tisonkun
Copy link
Member

tisonkun commented Nov 7, 2023

@asafm I ever talked about the stale bot, you can resume the discussion and I'm on the side to disable it.

I may not have time to implement something alternatives now, so simply disable it makes sense to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement The enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages
Projects
None yet
Development

No branches or pull requests

2 participants