Skip to content

Commit a1afa66

Browse files
Certification worker metrics (#123)
* enabled metrics output in the harness worker * adjust harness image name * update harness image to main
1 parent 435e5a2 commit a1afa66

4 files changed

Lines changed: 30 additions & 5 deletions

File tree

.github/workflows/harness-image.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ on:
1313
release:
1414
types: [published]
1515
workflow_dispatch:
16+
inputs:
17+
deploy:
18+
description: "Dispatch downstream deploy after the image is built"
19+
type: boolean
20+
default: true
1621

1722
concurrency:
1823
group: ${{ github.workflow }}-${{ github.ref }}
@@ -41,13 +46,21 @@ jobs:
4146
username: ${{ github.actor }}
4247
password: ${{ secrets.GITHUB_TOKEN }}
4348

49+
- name: Calculate branch tag
50+
id: vars
51+
shell: bash
52+
run: |
53+
BRANCH="${{ github.ref_name }}"
54+
CLEANED_BRANCH_NAME=$(echo "$BRANCH" | tr '/' '-' | tr '[:upper:]' '[:lower:]')
55+
echo "cleaned-branch-name=$CLEANED_BRANCH_NAME" >> "$GITHUB_OUTPUT"
56+
4457
- name: Docker metadata
4558
id: meta
4659
uses: docker/metadata-action@v5
4760
with:
4861
images: ghcr.io/conductor-oss/javascript-sdk/harness-worker
4962
tags: |
50-
type=raw,value=latest
63+
type=raw,value=${{ steps.vars.outputs.cleaned-branch-name }}-latest,enable=${{ github.event_name != 'release' }}
5164
type=raw,value=${{ github.event.release.tag_name }},enable=${{ github.event_name == 'release' }}
5265
5366
- name: Build and push
@@ -61,7 +74,9 @@ jobs:
6174
tags: ${{ steps.meta.outputs.tags }}
6275

6376
dispatch-deploy:
64-
if: github.event_name == 'release'
77+
if: |
78+
github.event_name == 'release' ||
79+
(github.event_name == 'workflow_dispatch' && inputs.deploy)
6580
needs: build-and-push
6681
runs-on: ubuntu-latest
6782
permissions:

harness/main.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
ConductorWorkflow,
44
TaskHandler,
55
simpleTask,
6+
MetricsCollector,
67
} from "../src/sdk";
78
import { MetadataResource } from "../src/open-api/generated";
89
import type { ConductorWorker } from "../src/sdk/clients/worker/types";
@@ -91,10 +92,15 @@ async function main(): Promise<void> {
9192
};
9293
});
9394

95+
const metricsPort = envIntOrDefault("HARNESS_METRICS_PORT", 9991);
96+
const metricsCollector = new MetricsCollector({ httpPort: metricsPort });
97+
console.log(`Prometheus metrics server started on port ${metricsPort}`);
98+
9499
const handler = new TaskHandler({
95100
client,
96101
workers,
97102
scanForDecorated: false,
103+
eventListeners: [metricsCollector],
98104
});
99105
await handler.startWorkers();
100106

harness/manifests/configmap-gcp.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ metadata:
66
labels:
77
app: js-sdk-harness-worker
88
data:
9-
CONDUCTOR_SERVER_URL: "https://certification-gcp.orkesconductor.com/api"
10-
CONDUCTOR_AUTH_KEY: "e6c1ac61-286b-11f1-be01-c682b5750c3a"
9+
CONDUCTOR_SERVER_URL: "https://certification-gcp.orkesconductor.io/api"
10+
CONDUCTOR_AUTH_KEY: "25b681c1-34ec-11f1-b07a-9601c7a63373"

harness/manifests/deployment.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spec:
1616
spec:
1717
containers:
1818
- name: harness
19-
image: ghcr.io/conductor-oss/javascript-sdk/harness-worker:latest
19+
image: ghcr.io/conductor-oss/javascript-sdk/harness-worker:main-latest
2020
imagePullPolicy: Always
2121
env:
2222
- name: CONDUCTOR_SERVER_URL
@@ -40,6 +40,10 @@ spec:
4040
value: "20"
4141
- name: HARNESS_POLL_INTERVAL_MS
4242
value: "100"
43+
ports:
44+
- name: metrics
45+
containerPort: 9991
46+
protocol: TCP
4347
resources:
4448
requests:
4549
memory: "256Mi"

0 commit comments

Comments
 (0)