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

feature(ui): service/cluster information and status page #369

Merged
merged 21 commits into from
Dec 20, 2022

Conversation

nitram509
Copy link
Collaborator

@nitram509 nitram509 commented Feb 15, 2022

Hi,

during development, I found it useful, to check cluster version and status.
Knowing that this can be done per CLI, seeing this in Simple Monitor helps a lot as well.

⚠️ this PR enables Spring Boot Maven Plugin "build-info", in order to bake build information into the "JAR".
This is a standard feature by Spring, which is just disabled by default.
~~That said, technically this creates a META-INF/build-info.properties file, which needs to be present in the target "JAR" file OR it should be copied via the Maven "JIB" plugin into the target docker image.
Do you know out of your head, if your (image) build pipeline does that?
PS: The code is built robust, so that missing file/information will not crash the application's boot process.
(see comments)

Next to the actual cluster information (see screenshot), there's a little switch, where anyone can update auto-refresh == automated page reload.

Screenshot 2022-02-15 at 10 55 50

As usual, any feedback is welcome.

@nitram509 nitram509 changed the title feature(ui): service/cluster information and status page WiP: feature(ui): service/cluster information and status page Feb 15, 2022
@nitram509
Copy link
Collaborator Author

Unfortunately, I have to flag this as "WiP".
In my own Docker image build processes, the build number and time are not correctly autowired in Spring.
Hence, the actual maven build information are not shown in the UI.

Will try to find the root cause and report my findings.

Please, keep in mind - I have no working JIB environment - as you have.
You might want to give it a try - since my pipeline is a custom one.
If you have other ideas, please let me know.

[WARNING] Some problems were encountered while building the effective model for io.zeebe:zeebe-simple-monitor:jar:2.3.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.springframework.boot:spring-boot-maven-plugin is missing. @ line 236, column 21
@nitram509 nitram509 changed the title WiP: feature(ui): service/cluster information and status page feature(ui): service/cluster information and status page Feb 15, 2022
@nitram509
Copy link
Collaborator Author

I did further testing and I'm glad to report that JIB correctly imports the build-info.properties file.

I did verify, by running

mvn -DskipTests package  jib:dockerBuild

and afterward, spin up a Docker Compose with the snapshot docker image.
The application version is correctly shown.

One comment I did add in the CONTRIBUTION.md

@nitram509
Copy link
Collaborator Author

Apologies for the inconvenience, but I oversaw a broken test. all fixed now.

@saig0 saig0 self-requested a review February 24, 2022 10:39
@nitram509
Copy link
Collaborator Author

@saig0 I did fix the merge issue already :)
Feel free to give your review a new try :)

Copy link
Contributor

@saig0 saig0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nitram509 thank you for your contribution 🎉

First of all, you did a great job. The code looks good 👍

One small downside of the changes is that you may run into issues during local development. You documented it properly but you need to be aware of it. The only benefit is the build time which is not so important IMO. The version could be read also via Package object instead.

One bigger question for me is if the changes fit the project. The simple monitor aims to help developers during the modeling of the processes (i.e. monitoring and manual testing). But IMO the monitoring of the Zeebe cluster is a bit out of scope.

If the main concern is the question of whether Zeebe is available, then we could simplify the solution. For example, show a green or red bubble on the top/bottom of the page as an indication of the availability.

@nitram509 what do you think about it? Do you have a strong option regarding the page?

@nitram509
Copy link
Collaborator Author

@saig0 thank you for your feedback - I'm glad you like it.
I understand you're speaking about the intent of Zeebe Simple monitor to support developers.

Let me share some context of mine.
The team I'm working with (can't say who), has Zeebe running in 3 environments (dev, stage, prod).
We like the fact it's Open Source and fully operate it on our own in an AWS EKS (VPC).
So on top of you mentioning it Simple Monitor supports developers, I would like to add DevOps.
When we apply changes to either the cluster or simple monitor, we have no simple feedback via a UI.
Yes, I know by using CLI tools one could fetch all facts, but since we have the cluster in a VPC, that's not trivial.
We also have added an OAuth Proxy Sidecar to Simple Monitor, to make it public incl. protection.

I also requested a quote from Camunda and after some discussion with Sales, we concluded buying a license for Operate is not possible. Thus, the best alternative for us is to use Simple Monitor.

So overall, this status page is way more than just a gimmick to us ;)

@saig0 saig0 self-requested a review February 28, 2022 10:21
Copy link
Contributor

@saig0 saig0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nitram509 thank you for sharing your throughs 👍 I appreciate it. And I see your point.

But I'm not convinced about adding DevOps as a user group for the Simple Monitor. There should be better tools for monitoring the services. For example, Grafana.

However, I'm fine with adding this status page. But I have some suggestions, please have a look.

For the next time, I recommend discussing new (major) features before. If you create an issue then we can discuss if it fits and what it could look like. So, you don't waste your time :)

@saig0
Copy link
Contributor

saig0 commented Feb 28, 2022

@nitram509 please note that I'm on vacation 🌴 I'll give feedback as soon as possible.

@nitram509
Copy link
Collaborator Author

@nitram509 please note that I'm on vacation 🌴 I'll give feedback as soon as possible.

enjoy the time :)

@CLAassistant
Copy link

CLAassistant commented Mar 18, 2022

CLA assistant check
All committers have signed the CLA.

@saig0
Copy link
Contributor

saig0 commented Mar 30, 2022

@nitram509 any updates from your side? Are you still interested? Did you think about my previous comments?

@nitram509
Copy link
Collaborator Author

Hi, your ideas are good and I'm still interested.
Just need some days longer to find some time to implement ;)

@saig0
Copy link
Contributor

saig0 commented Apr 1, 2022

@nitram509 thanks for your update! Take your time 👍

@nitram509
Copy link
Collaborator Author

Latest implementation is like see screenshots below (show healthy modal, detected change in orange, unhealthy modal)

Screenshot 2022-10-05 at 23 38 43

Screenshot 2022-10-05 at 23 38 34

Screenshot 2022-10-05 at 23 38 19

@nitram509
Copy link
Collaborator Author

@saig0 may I ask for a review, please?
I did implement almost all of your suggestions and the result looks pretty cool.

Just the version information was some pain in the a**.
I landed with creating and manually loading a MANIFEST.

Any Feedback welcome.

@nitram509 nitram509 requested a review from saig0 October 5, 2022 22:31
@saig0
Copy link
Contributor

saig0 commented Oct 7, 2022

@nitram509 awesome. 🎉 I'll have a look at your PR in the next few days. 👀

@nitram509
Copy link
Collaborator Author

@saig0 I've merged the latest changes from main and also fix two minor issues.

Since we talked about ... what's your point of view regarding this PR?

The UI looks like this:
Screenshot 2022-12-11 at 16 57 32

@saig0
Copy link
Contributor

saig0 commented Dec 16, 2022

@nitram509 I'll have a look at your PR next week.

Copy link
Contributor

@saig0 saig0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nitram509 it looks awesome. 🎉 👍

src/main/resources/templates/service-status-view.html Outdated Show resolved Hide resolved
@nitram509 nitram509 merged commit c970538 into camunda-community-hub:main Dec 20, 2022
@nitram509 nitram509 deleted the feature/status-page branch December 20, 2022 13:52
@nitram509 nitram509 restored the feature/status-page branch February 15, 2023 14:00
@nitram509 nitram509 deleted the feature/status-page branch March 17, 2023 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants