Skip to content

Metrics - Micrometer Integration #64

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

Closed
csviri opened this issue Mar 2, 2020 · 12 comments · Fixed by #486
Closed

Metrics - Micrometer Integration #64

csviri opened this issue Mar 2, 2020 · 12 comments · Fixed by #486
Assignees
Labels

Comments

@csviri
Copy link
Collaborator

csviri commented Mar 2, 2020

Integrate micrometer to generate metrics about usage / execution. The goal is that there are now not only logs but meaningful metrics exposed about the execution.

@csviri
Copy link
Collaborator Author

csviri commented Mar 2, 2020

https://micrometer.io/

@csviri csviri added the feature label Apr 20, 2020
@csviri csviri changed the title Micrometer Integration Metrics - Micrometer Integration Apr 9, 2021
@csviri
Copy link
Collaborator Author

csviri commented Apr 9, 2021

Would be great to gather here the metrics we are interested in. Some which came to my mind:

  • number of controller executions
  • number of events processed
  • controller execution durations
  • number of custom resource managed
  • retry related metrics

Feel free to add yours.

@jmrodri
Copy link
Member

jmrodri commented Jul 1, 2021

@csviri How would something like this integrate with prometheus on kubernetes? Most operators output their metrics to be scraped by a prometheus service to expose their items to the console.

@csviri
Copy link
Collaborator Author

csviri commented Jul 2, 2021

@jmrodri The idea is that we would make it very easy to integrate with a metrics endpoint, thus to expose the metrics to http.
Prometheus is supported by micrometer so I guess that would not be a hassle.

But ideally we would not be dependent on any framework (spring / quarkus / micronaut) but would make it very easy to integrate with them. So the controller is what exposes the metrics will be native to the desired framework.

@csviri
Copy link
Collaborator Author

csviri commented Jul 15, 2021

An important part of this would be extensibility. So anybody should be able to add own metrics. The simplest way to do that (the metrics about the Custom Resource processing ) is just expose the micrometer api to the controller. So the user can add custom metrics directly to the controller implementation.
What we should provide out of the box is probably metrics that are not necessary available from the controllers. Like threading related metrics, maybe some event handling. But also some basic standard metrics mentioned above that is makes sense for everybody.

@jmrodri
Copy link
Member

jmrodri commented Jul 15, 2021

/assign @laxmikantbpandhare

@metacosm
Copy link
Collaborator

Another project to look into is https://opentelemetry.io/

@jmrodri
Copy link
Member

jmrodri commented Jul 15, 2021

Another resources mentioned during community meeting: https://quarkus.io/guides/micrometer

@metacosm
Copy link
Collaborator

Seems like Micrometer is indeed the framework of choice to deal with metrics in Quarkus. This shouldn't prevent us from looking at opentelemetry but it seems more focused on tracing than metrics.

@laxmikantbpandhare
Copy link
Member

Yes @metacosm - Micrometer is better choice as compare to OpenTelemetry. There are few differences like OpentTelemetry does not support dedicated times type, distribution summery type and also it does not have any naming conventions. OpenTelemetry is more focused on tracing while micrometer is built specifically for getting the metrics/usage of an application. OpenTelemetry would be useful to measure across many Micro-services as they hand off requests and you need to trace behavior, while Micrometer would be more useful for tracking a single application's performance and health.

@laxmikantbpandhare
Copy link
Member

I am still looking for actual API's and services that both OpenTelemetry and Micrometer offers. I will share those details shortly.

@laxmikantbpandhare
Copy link
Member

Raised PR #486

metacosm pushed a commit that referenced this issue Aug 26, 2021
feature: micrometer integration for genering metrics

feature: modified variables and made it private

feature: added changes for customize increment method

feature: removed ConterDetails class and modified IncrementCounter accordingly

feature: modified pom depedency

feature: modified pom depedency

feature: added changes and wrapped counter and timer with createAndUpdate method

feature: modified and added inceremenmt() method

feature: modified for enabling google formatter

removed spaces

removed spaces

feature: added counter and timer for delete resource

feature: added counter and timer for delete resource

feature: added changes for delete resource

feature: added changes for delete resource

feature: update control modified

feature: delete control modified

feature: delete control modified

test delete resource

feature: modiofied to retest

feature: modified according to PR review comments

feature: added count for each and event (create, update, and delete)

feature: added count for each and event (create, update, and delete)

feature: added Histogram changes for Time

feature: added histogram changes for delete as well

feature: modified name field in tags

feature: retry counter added
metacosm added a commit that referenced this issue Aug 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants