Skip to content

Commit

Permalink
Fix the unit of some OTel metrics (#937)
Browse files Browse the repository at this point in the history
  • Loading branch information
cyrille-leclerc authored Sep 10, 2024
1 parent 6a5fe00 commit cbaab97
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,21 +72,21 @@ public void postConstruct() {
meter.gaugeBuilder(JenkinsSemanticMetrics.JENKINS_AGENTS_OFFLINE)
.ofLongs()
.setDescription("Number of offline agents")
.setUnit("1")
.setUnit("{agents}")
.buildWithCallback(valueObserver -> valueObserver.record(this.getOfflineAgentsCount()));
meter.gaugeBuilder(JenkinsSemanticMetrics.JENKINS_AGENTS_ONLINE)
.ofLongs()
.setDescription("Number of online agents")
.setUnit("1")
.setUnit("{agents}")
.buildWithCallback(valueObserver -> valueObserver.record(this.getOnlineAgentsCount()));
meter.gaugeBuilder(JenkinsSemanticMetrics.JENKINS_AGENTS_TOTAL)
.ofLongs()
.setDescription("Number of agents")
.setUnit("1")
.setUnit("{agents}")
.buildWithCallback(valueObserver -> valueObserver.record(this.getAgentsCount()));
failureAgentCounter = meter.counterBuilder(JenkinsSemanticMetrics.JENKINS_AGENTS_LAUNCH_FAILURE)
.setDescription("Number of ComputerLauncher failures")
.setUnit("1")
.setUnit("{agents}")
.build();

LOGGER.log(Level.FINE, () -> "Start monitoring Jenkins agents management...");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public void postConstruct() {
meter.gaugeBuilder(GITHUB_API_RATE_LIMIT_REMAINING_REQUESTS)
.ofLongs()
.setDescription("GitHub Repository API rate limit remaining requests")
.setUnit("1")
.setUnit("{requests}")
.buildWithCallback(gauge -> {
logger.log(Level.FINE, () -> "Collect GitHub client API rate limit metrics");
reverseLookup.keySet().forEach(gitHub -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ public void postConstruct() {
logger.log(Level.FINE, () -> "Start monitoring Jenkins controller executor pool...");

Meter meter = Objects.requireNonNull(jenkinsControllerOpenTelemetry).getDefaultMeter();
final ObservableLongMeasurement availableExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_AVAILABLE).setUnit("1").setDescription("Available executors").ofLongs().buildObserver();
final ObservableLongMeasurement busyExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_BUSY).setUnit("1").setDescription("Busy executors").ofLongs().buildObserver();
final ObservableLongMeasurement idleExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_IDLE).setUnit("1").setDescription("Idle executors").ofLongs().buildObserver();
final ObservableLongMeasurement onlineExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_ONLINE).setUnit("1").setDescription("Online executors").ofLongs().buildObserver();
final ObservableLongMeasurement connectingExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_CONNECTING).setUnit("1").setDescription("Connecting executors").ofLongs().buildObserver();
final ObservableLongMeasurement definedExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_DEFINED).setUnit("1").setDescription("Defined executors").ofLongs().buildObserver();
final ObservableLongMeasurement queueLength = meter.gaugeBuilder(JENKINS_EXECUTOR_QUEUE).setUnit("1").setDescription("Defined executors").ofLongs().buildObserver();
final ObservableLongMeasurement availableExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_AVAILABLE).setUnit("${executors}").setDescription("Available executors").ofLongs().buildObserver();
final ObservableLongMeasurement busyExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_BUSY).setUnit("${executors}").setDescription("Busy executors").ofLongs().buildObserver();
final ObservableLongMeasurement idleExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_IDLE).setUnit("${executors}").setDescription("Idle executors").ofLongs().buildObserver();
final ObservableLongMeasurement onlineExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_ONLINE).setUnit("${executors}").setDescription("Online executors").ofLongs().buildObserver();
final ObservableLongMeasurement connectingExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_CONNECTING).setUnit("${executors}").setDescription("Connecting executors").ofLongs().buildObserver();
final ObservableLongMeasurement definedExecutors = meter.gaugeBuilder(JENKINS_EXECUTOR_DEFINED).setUnit("${executors}").setDescription("Defined executors").ofLongs().buildObserver();
final ObservableLongMeasurement queueLength = meter.gaugeBuilder(JENKINS_EXECUTOR_QUEUE).setUnit("${executors}").setDescription("Defined executors").ofLongs().buildObserver();
logger.log(Level.FINER, () -> "Metrics: " + availableExecutors + ", " + busyExecutors + ", " + idleExecutors + ", " + onlineExecutors + ", " + connectingExecutors + ", " + definedExecutors + ", " + queueLength);

meter.batchCallback(() -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,22 @@ public void postConstruct() {
Meter meter = Objects.requireNonNull(jenkinsControllerOpenTelemetry).getDefaultMeter();
meter.counterBuilder(JenkinsSemanticMetrics.JENKINS_SCM_EVENT_POOL_SIZE)
.setDescription("Number of threads handling SCM Events")
.setUnit("1")
.setUnit("{events}")
.buildWithCallback(valueObserver -> valueObserver.record(SCMEvent.getEventProcessingMetrics().getPoolSize()));

meter.upDownCounterBuilder(JenkinsSemanticMetrics.JENKINS_SCM_EVENT_ACTIVE_THREADS)
.setDescription("Number of threads actively handling SCM Events")
.setUnit("1")
.setUnit("{threads}")
.buildWithCallback(valueObserver -> valueObserver.record(SCMEvent.getEventProcessingMetrics().getActiveThreads()));

meter.upDownCounterBuilder(JenkinsSemanticMetrics.JENKINS_SCM_EVENT_QUEUED_TASKS)
.setDescription("Number of queued SCM Event tasks")
.setUnit("1")
.setUnit("{tasks}")
.buildWithCallback(valueObserver -> valueObserver.record(SCMEvent.getEventProcessingMetrics().getQueuedTasks()));

meter.counterBuilder(JenkinsSemanticMetrics.JENKINS_SCM_EVENT_COMPLETED_TASKS)
.setDescription("Number of completed SCM Event tasks")
.setUnit("1")
.setUnit("{tasks}")
.buildWithCallback(valueObserver -> valueObserver.record(SCMEvent.getEventProcessingMetrics().getCompletedTasks()));

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,32 +112,32 @@ public void postConstruct() {
runLaunchedCounter =
meter.counterBuilder(JenkinsSemanticMetrics.CI_PIPELINE_RUN_LAUNCHED)
.setDescription("Job launched")
.setUnit("1")
.setUnit("{jobs}")
.build();
runStartedCounter =
meter.counterBuilder(JenkinsSemanticMetrics.CI_PIPELINE_RUN_STARTED)
.setDescription("Job started")
.setUnit("1")
.setUnit("{jobs}")
.build();
runSuccessCounter =
meter.counterBuilder(JenkinsSemanticMetrics.CI_PIPELINE_RUN_SUCCESS)
.setDescription("Job succeed")
.setUnit("1")
.setUnit("{jobs}")
.build();
runFailedCounter =
meter.counterBuilder(JenkinsSemanticMetrics.CI_PIPELINE_RUN_FAILED)
.setDescription("Job failed")
.setUnit("1")
.setUnit("{jobs}")
.build();
runAbortedCounter =
meter.counterBuilder(JenkinsSemanticMetrics.CI_PIPELINE_RUN_ABORTED)
.setDescription("Job aborted")
.setUnit("1")
.setUnit("{jobs}")
.build();
runCompletedCounter =
meter.counterBuilder(JenkinsSemanticMetrics.CI_PIPELINE_RUN_COMPLETED)
.setDescription("Job completed")
.setUnit("1")
.setUnit("{jobs}")
.build();

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,28 +57,28 @@ public void postConstruct() {
meter.gaugeBuilder(JenkinsSemanticMetrics.JENKINS_QUEUE_WAITING)
.ofLongs()
.setDescription("Number of tasks in the queue with the status 'waiting', 'buildable' or 'pending'")
.setUnit("1")
.setUnit("{tasks}")
.buildWithCallback(valueObserver -> valueObserver.record((long)
Optional.ofNullable(Jenkins.getInstanceOrNull()).map(j -> j.getQueue()).
map(q -> q.getUnblockedItems().size()).orElse(0)));

meter.gaugeBuilder(JenkinsSemanticMetrics.JENKINS_QUEUE_BLOCKED)
.ofLongs()
.setDescription("Number of blocked tasks in the queue. Note that waiting for an executor to be available is not a reason to be counted as blocked")
.setUnit("1")
.setUnit("{tasks}")
.buildWithCallback(valueObserver -> valueObserver.record(this.blockedItemGauge.longValue()));

meter.gaugeBuilder(JenkinsSemanticMetrics.JENKINS_QUEUE_BUILDABLE)
.ofLongs()
.setDescription("Number of tasks in the queue with the status 'buildable' or 'pending'")
.setUnit("1")
.setUnit("{tasks}")
.buildWithCallback(valueObserver -> valueObserver.record((long)
Optional.ofNullable(Jenkins.getInstanceOrNull()).map(j -> j.getQueue()).
map(q -> q.countBuildableItems()).orElse(0)));

leftItemCounter = meter.counterBuilder(JenkinsSemanticMetrics.JENKINS_QUEUE_LEFT)
.setDescription("Total count of tasks that have been processed")
.setUnit("1")
.setUnit("{tasks}")
.build();
timeInQueueInMillisCounter = meter.counterBuilder(JenkinsSemanticMetrics.JENKINS_QUEUE_TIME_SPENT_MILLIS)
.setDescription("Total time spent in queue by the tasks that have been processed")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,18 +62,18 @@ public void postConstruct() {
loginSuccessCounter =
meter.counterBuilder(JenkinsSemanticMetrics.LOGIN_SUCCESS)
.setDescription("Successful logins")
.setUnit("1")
.setUnit("${logins}")
.build();
loginFailureCounter =
meter.counterBuilder(JenkinsSemanticMetrics.LOGIN_FAILURE)
.setDescription("Failing logins")
.setUnit("1")
.setUnit("${logins}")
.build();

loginCounter =
meter.counterBuilder(JenkinsSemanticMetrics.LOGIN)
.setDescription("Logins")
.setUnit("1")
.setUnit("${logins}")
.build();

}
Expand Down

0 comments on commit cbaab97

Please sign in to comment.