-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Conductor server metrics not getting published #600
Comments
Any update on this ticket? It would be really helpful to have the server metrics pushed to JMX |
@clari-akhilesh did you manage to figure this out ? @cyzhao @v1r3n are we missing something here ? We also were able to export worker metrics by adding Metrics3 registry but how should we approach the same on the server ? |
Both Monitors and WorkflowTaskMetrics use |
@cyzhao We also have the same requirement, we want to check the metrics for server and worker, is there any detail guide to see the metrics? it's really helpful for monitoring to see how't the server and worker performing. Looking forward to getting reply. |
@cyzhao , what do you mean by |
@clari-akhilesh as described in http://netflix.github.io/spectator/en/latest/registry/metrics3/, add com.netflix.spectator:spectator-reg-metrics3:0.69.0 to gradle and provide MetricsRegistry as Registry |
we currently use maven war artifact in our deployment. if I understand correctly, you don't have any bindings for the |
@clari-akhilesh did you end up finding a way to provide a Spectator registry while still using the prebuilt jar? |
@rileymichael , unfortunately not. waiting to hear from @cyzhao if a code change is needed to accomplish this. |
@clari-akhilesh sorry for the late response, I don't think you need to submit a PR for this, you can initialize the Registry and add it to the global registry via |
@cyzhao Is there a better way to do this without chaging the code? |
@clari-akhilesh Conductor Server has a feature to load additional modules dynamically, this feature can be controlled using this the following configuration.
Using this feature, you can basically create your own Since you mentioned that you're using maven, then you can create an independent maven project that produces a JAR file with all the dependecies using It's a bit complecated, but it's doable. I used this way to publish promethues metrics from conductor, with very little changes to conductor server, I can share how I manged to do it in case you're interested. |
@mohelsaka Thanks for the explanation! I'd be very interested in seeing how you are publishing metrics w/ prometheus. |
@kishorebanala @apanicker-nflx please make sure this is covered in the new documentation we are working on. |
@mohelsaka , thanks for the explanation. I'll be sure to give this a try. |
Please refer the documentation here to publish metrics from conductor. |
Not quite up to spec with the docs, but workable solution for providing prometheus endpoint: |
Thank you for sharing. Wondering why this is not merged to master yet. Do we have any other approach? |
For those interested in this support working with Prometheus: Using latest main branch, and after consulting:
DEVin server/build.gradle file add:
in server/src/main/resources/application.properties add:
** EDITED ** Remove the instantiation of Prometheus registry, and let Spring inject the actuator one:
then hit at root: ./gradlew server PRDFor production, build a docker image with the change in server/build.gradle and then configure your container as showed. |
I solved this by add the following packages to pom.xml since I am using maven. <dependency>
<groupId>com.netflix.spectator</groupId>
<artifactId>spectator-reg-metrics3</artifactId>
<version>0.90.0</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.netflix.spectator</groupId>
<artifactId>spectator-reg-micrometer</artifactId>
<version>0.130.0</version>
</dependency> |
We're looking to monitor the performance of conductor servers and workers in our production environment. The documentation lists some of the metrics that are published from the servers and workers. While the metrics for the workers look good, I don't see any metrics for conductor servers.
Digging through the code, I see that you use Netflix spectator library to record the metrics and the registry is being created as follows:
private static Registry registry = Spectator.globalRegistry();
The javadoc for this method is as follows:
Returns the global composite registry. This method can be used for use-cases where it is necessary to get a static reference to a registry. It will not do anything unless other registries are added.
It looks like we're not adding any registries and I suspect that is the reason we're not seeing any metrics on the server side. Here are some of the metrics I expect to see on the server side - https://netflix.github.io/conductor/metrics/
I hope this is addressed in the next release as we don't have any visibility on how the conductor servers are performing. Thank you in advance!
The text was updated successfully, but these errors were encountered: