summaryrefslogtreecommitdiff
path: root/opendc-workflow/opendc-workflow-service/src/main
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 14:53:54 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 14:53:54 +0200
commitaa9b32f8cd1467e9718959f400f6777e5d71737d (patch)
treeb88bbede15108c6855d7f94ded4c7054df186a72 /opendc-workflow/opendc-workflow-service/src/main
parenteb0e0a3bc557c05a70eead388797ab850ea87366 (diff)
parentb7a71e5b4aa77b41ef41deec2ace42b67a5a13a7 (diff)
merge: Integrate v2.1 progress into public repository
This pull request integrates the changes planned for the v2.1 release of OpenDC into the public Github repository in order to sync the progress of both repositories.
Diffstat (limited to 'opendc-workflow/opendc-workflow-service/src/main')
-rw-r--r--opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/WorkflowService.kt8
-rw-r--r--opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/internal/WorkflowServiceImpl.kt20
2 files changed, 17 insertions, 11 deletions
diff --git a/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/WorkflowService.kt b/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/WorkflowService.kt
index d3358ef1..a0248a93 100644
--- a/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/WorkflowService.kt
+++ b/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/WorkflowService.kt
@@ -22,7 +22,7 @@
package org.opendc.workflow.service
-import io.opentelemetry.api.metrics.Meter
+import io.opentelemetry.api.metrics.MeterProvider
import org.opendc.compute.api.ComputeClient
import org.opendc.workflow.api.Job
import org.opendc.workflow.service.internal.WorkflowServiceImpl
@@ -62,7 +62,7 @@ public interface WorkflowService : AutoCloseable {
* @param context The [CoroutineContext] to use in the service.
* @param clock The clock instance to use.
* @param tracer The event tracer to use.
- * @param meter The meter to use.
+ * @param meterProvider The meter provider to use.
* @param compute The compute client to use.
* @param mode The scheduling mode to use.
* @param jobAdmissionPolicy The job admission policy to use.
@@ -73,7 +73,7 @@ public interface WorkflowService : AutoCloseable {
public operator fun invoke(
context: CoroutineContext,
clock: Clock,
- meter: Meter,
+ meterProvider: MeterProvider,
compute: ComputeClient,
mode: WorkflowSchedulerMode,
jobAdmissionPolicy: JobAdmissionPolicy,
@@ -84,7 +84,7 @@ public interface WorkflowService : AutoCloseable {
return WorkflowServiceImpl(
context,
clock,
- meter,
+ meterProvider,
compute,
mode,
jobAdmissionPolicy,
diff --git a/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/internal/WorkflowServiceImpl.kt b/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/internal/WorkflowServiceImpl.kt
index 32191b8f..a0fd3fad 100644
--- a/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/internal/WorkflowServiceImpl.kt
+++ b/opendc-workflow/opendc-workflow-service/src/main/kotlin/org/opendc/workflow/service/internal/WorkflowServiceImpl.kt
@@ -23,6 +23,7 @@
package org.opendc.workflow.service.internal
import io.opentelemetry.api.metrics.Meter
+import io.opentelemetry.api.metrics.MeterProvider
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.map
import mu.KotlinLogging
@@ -48,7 +49,7 @@ import kotlin.coroutines.resume
public class WorkflowServiceImpl(
context: CoroutineContext,
internal val clock: Clock,
- private val meter: Meter,
+ meterProvider: MeterProvider,
private val computeClient: ComputeClient,
mode: WorkflowSchedulerMode,
jobAdmissionPolicy: JobAdmissionPolicy,
@@ -67,6 +68,11 @@ public class WorkflowServiceImpl(
private val logger = KotlinLogging.logger {}
/**
+ * The [Meter] to collect metrics of this service.
+ */
+ private val meter = meterProvider.get("org.opendc.workflow.service")
+
+ /**
* The incoming jobs ready to be processed by the scheduler.
*/
internal val incomingJobs: MutableSet<JobState> = linkedSetOf()
@@ -155,7 +161,7 @@ public class WorkflowServiceImpl(
/**
* The number of jobs that have been submitted to the service.
*/
- private val submittedJobs = meter.longCounterBuilder("jobs.submitted")
+ private val submittedJobs = meter.counterBuilder("jobs.submitted")
.setDescription("Number of submitted jobs")
.setUnit("1")
.build()
@@ -163,7 +169,7 @@ public class WorkflowServiceImpl(
/**
* The number of jobs that are running.
*/
- private val runningJobs = meter.longUpDownCounterBuilder("jobs.active")
+ private val runningJobs = meter.upDownCounterBuilder("jobs.active")
.setDescription("Number of jobs running")
.setUnit("1")
.build()
@@ -171,7 +177,7 @@ public class WorkflowServiceImpl(
/**
* The number of jobs that have finished running.
*/
- private val finishedJobs = meter.longCounterBuilder("jobs.finished")
+ private val finishedJobs = meter.counterBuilder("jobs.finished")
.setDescription("Number of jobs that finished running")
.setUnit("1")
.build()
@@ -179,7 +185,7 @@ public class WorkflowServiceImpl(
/**
* The number of tasks that have been submitted to the service.
*/
- private val submittedTasks = meter.longCounterBuilder("tasks.submitted")
+ private val submittedTasks = meter.counterBuilder("tasks.submitted")
.setDescription("Number of submitted tasks")
.setUnit("1")
.build()
@@ -187,7 +193,7 @@ public class WorkflowServiceImpl(
/**
* The number of jobs that are running.
*/
- private val runningTasks = meter.longUpDownCounterBuilder("tasks.active")
+ private val runningTasks = meter.upDownCounterBuilder("tasks.active")
.setDescription("Number of tasks running")
.setUnit("1")
.build()
@@ -195,7 +201,7 @@ public class WorkflowServiceImpl(
/**
* The number of jobs that have finished running.
*/
- private val finishedTasks = meter.longCounterBuilder("tasks.finished")
+ private val finishedTasks = meter.counterBuilder("tasks.finished")
.setDescription("Number of tasks that finished running")
.setUnit("1")
.build()