-
Notifications
You must be signed in to change notification settings - Fork 638
[ISSUE #3430] Refactor eventmesh-metrics-prometheus module #4840
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
[ISSUE #3430] Refactor eventmesh-metrics-prometheus module #4840
Conversation
ef6dd44
to
8936c98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've read all the code from your last PR before. Is there any new commit that needs to be read between these two PRs? 😊
eventmesh-common/src/main/java/org/apache/eventmesh/common/MetricsConstants.java
Outdated
Show resolved
Hide resolved
eventmesh-common/src/main/java/org/apache/eventmesh/common/Pair.java
Outdated
Show resolved
Hide resolved
package org.apache.eventmesh.metrics.api.model; | ||
|
||
public abstract class AbstractMetric implements Metric { | ||
|
||
private InstrumentFurther further; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The classes under org.apache.eventmesh.metrics.api.model
are too many and their inheritance relationship seems a little messy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be better to extract implementation classes to a sub-package?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no need to put this in a subclass; this covers all implementations. Using an abstract class makes it easier for future extensions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant to move files location without making changes to the class. The directory structure may like this:
model/
counters/
CounterA (Impl)
CounterB (Impl)
xxx/
xxxA (Impl)
xxxB (Impl)
Counter (Interface)
xxx (Interface)
xxxX (AbstractClass)
xxxY (AbstractClass)
It may be easier to find out how many interfaces and abstract classes are under this package and locate them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The model
package is mainly used to store metrics. Personally, I don't think it's necessary to further classify the types of metrics. They can be uniformly placed in this package. Similarly, this package basically includes metrics that adhere to the existing OpenTelemetry specification. Being too granular makes the code look bloated.
eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/metrics/MetricInstrumentUnit.java
Outdated
Show resolved
Hide resolved
eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/metrics/MetricsManager.java
Outdated
Show resolved
Hide resolved
eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/metrics/GeneralMetricsManager.java
Outdated
Show resolved
Hide resolved
eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/boot/EventMeshServer.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…che#4840) * [ISSUE apache#3430]Refactor eventmesh-metrics-prometheus module * optimize code * optimize code
Fixes #3430
Motivation
Modifications
Refactor eventmesh-metrics-prometheus module

Documentation