Skip to content

Commit c273220

Browse files
feat(engine): add composition metrics (#476)
1 parent 8d22eb1 commit c273220

File tree

6 files changed

+38
-7
lines changed

6 files changed

+38
-7
lines changed

charts/cf-runtime/Chart.yaml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v2
22
description: A Helm chart for Codefresh Runner
33
name: cf-runtime
4-
version: 6.3.38
4+
version: 6.3.39
55
keywords:
66
- codefresh
77
- runner
@@ -18,7 +18,20 @@ annotations:
1818
# Supported kinds: `added`, `changed`, `deprecated`, `removed`, `fixed`, `security`:
1919
artifacthub.io/changes: |
2020
- kind: changed
21-
description: Downgrade dind image to 26.0.0-1.28.6
21+
description: Engine image updated to 1.173.2
22+
- kind: changed
23+
description: Engine image size reduced by 70%
24+
- kind: added
25+
description: Added METRICS_PROMETHEUS_HOST and METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS engine env variables
26+
- kind: changed
27+
description: [BREAKING CHANGE] By default, process metrics will not be collected by the engine. Use METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS=true env variable to enable it
28+
- kind: deprecated
29+
description: The following engine metrics are deprecated and disabled by default: workflow_step_status, workflow_step_duration, workflow_phase_status, workflow_phase_duration, workflow_status, workflow_duration, workflow_docker_lib_reuse, workflow_cf_volume_reuse. Use METRICS_PROMETHEUS_ENABLE_LEGACY_METRICS=true env variable to enable them. These metrics will be removed in future versions, please consider migrating to new metrics.
30+
- kind: added
31+
description: New engine metrics are added. Please check the documentation for more details
32+
links:
33+
- name: Engine metrics documentation
34+
url: https://codefresh.io/docs/docs/kb/articles/enable-engine-pod-metrics
2235
dependencies:
2336
- name: cf-common
2437
repository: oci://quay.io/codefresh/charts

charts/cf-runtime/README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Codefresh Runner
22

3-
![Version: 6.3.38](https://img.shields.io/badge/Version-6.3.38-informational?style=flat-square)
3+
![Version: 6.3.39](https://img.shields.io/badge/Version-6.3.39-informational?style=flat-square)
44

55
Helm chart for deploying [Codefresh Runner](https://codefresh.io/docs/docs/installation/codefresh-runner/) to Kubernetes.
66

@@ -1142,17 +1142,20 @@ Go to [https://<YOUR_ONPREM_DOMAIN_HERE>/admin/runtime-environments/system](http
11421142
| runtime.dind.userVolumeMounts | object | `{}` | Add extra volume mounts |
11431143
| runtime.dind.userVolumes | object | `{}` | Add extra volumes |
11441144
| runtime.dindDaemon | object | See below | DinD pod daemon config |
1145-
| runtime.engine | object | `{"affinity":{},"command":["npm","run","start"],"env":{"CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS":1000,"DOCKER_REQUEST_TIMEOUT_MS":30000,"FORCE_COMPOSE_SERIAL_PULL":false,"LOGGER_LEVEL":"debug","LOG_OUTGOING_HTTP_REQUESTS":false,"METRICS_PROMETHEUS_ENABLED":true},"image":{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.171.3"},"nodeSelector":{},"podAnnotations":{},"podLabels":{},"resources":{"limits":{"cpu":"1000m","memory":"2048Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"runtimeImages":{"COMPOSE_IMAGE":"quay.io/codefresh/compose:v2.20.3-1.4.0","CONTAINER_LOGGER_IMAGE":"quay.io/codefresh/cf-container-logger:1.11.4","CR_6177_FIXER":"quay.io/codefresh/alpine:edge","DOCKER_BUILDER_IMAGE":"quay.io/codefresh/cf-docker-builder:1.3.11","DOCKER_PULLER_IMAGE":"quay.io/codefresh/cf-docker-puller:8.0.17","DOCKER_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-pusher:6.0.15","DOCKER_TAG_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-tag-pusher:1.3.13","FS_OPS_IMAGE":"quay.io/codefresh/fs-ops:1.2.3","GC_BUILDER_IMAGE":"quay.io/codefresh/cf-gc-builder:0.5.3","GIT_CLONE_IMAGE":"quay.io/codefresh/cf-git-cloner:10.1.26","KUBE_DEPLOY":"quay.io/codefresh/cf-deploy-kubernetes:16.1.11","PIPELINE_DEBUGGER_IMAGE":"quay.io/codefresh/cf-debugger:1.3.0","TEMPLATE_ENGINE":"quay.io/codefresh/pikolo:0.14.0"},"schedulerName":"","serviceAccount":"codefresh-engine","tolerations":[],"userEnvVars":[],"workflowLimits":{"MAXIMUM_ALLOWED_TIME_BEFORE_PRE_STEPS_SUCCESS":600,"MAXIMUM_ALLOWED_WORKFLOW_AGE_BEFORE_TERMINATION":86400,"MAXIMUM_ELECTED_STATE_AGE_ALLOWED":900,"MAXIMUM_RETRY_ATTEMPTS_ALLOWED":20,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED":900,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED_WITHOUT_UPDATE":300,"TIME_ENGINE_INACTIVE_UNTIL_TERMINATION":300,"TIME_ENGINE_INACTIVE_UNTIL_UNHEALTHY":60,"TIME_INACTIVE_UNTIL_TERMINATION":2700}}` | Parameters for Engine pod (aka "pipeline" orchestrator). |
1145+
| runtime.engine | object | `{"affinity":{},"command":["npm","run","start"],"env":{"CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS":1000,"DOCKER_REQUEST_TIMEOUT_MS":30000,"FORCE_COMPOSE_SERIAL_PULL":false,"LOGGER_LEVEL":"debug","LOG_OUTGOING_HTTP_REQUESTS":false,"METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS":false,"METRICS_PROMETHEUS_ENABLED":true,"METRICS_PROMETHEUS_HOST":"0.0.0.0","METRICS_PROMETHEUS_PORT":9100},"image":{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.173.2"},"nodeSelector":{},"podAnnotations":{},"podLabels":{},"resources":{"limits":{"cpu":"1000m","memory":"2048Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"runtimeImages":{"COMPOSE_IMAGE":"quay.io/codefresh/compose:v2.20.3-1.4.0","CONTAINER_LOGGER_IMAGE":"quay.io/codefresh/cf-container-logger:1.11.4","CR_6177_FIXER":"quay.io/codefresh/alpine:edge","DOCKER_BUILDER_IMAGE":"quay.io/codefresh/cf-docker-builder:1.3.11","DOCKER_PULLER_IMAGE":"quay.io/codefresh/cf-docker-puller:8.0.17","DOCKER_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-pusher:6.0.15","DOCKER_TAG_PUSHER_IMAGE":"quay.io/codefresh/cf-docker-tag-pusher:1.3.13","FS_OPS_IMAGE":"quay.io/codefresh/fs-ops:1.2.3","GC_BUILDER_IMAGE":"quay.io/codefresh/cf-gc-builder:0.5.3","GIT_CLONE_IMAGE":"quay.io/codefresh/cf-git-cloner:10.1.26","KUBE_DEPLOY":"quay.io/codefresh/cf-deploy-kubernetes:16.1.11","PIPELINE_DEBUGGER_IMAGE":"quay.io/codefresh/cf-debugger:1.3.0","TEMPLATE_ENGINE":"quay.io/codefresh/pikolo:0.14.0"},"schedulerName":"","serviceAccount":"codefresh-engine","tolerations":[],"userEnvVars":[],"workflowLimits":{"MAXIMUM_ALLOWED_TIME_BEFORE_PRE_STEPS_SUCCESS":600,"MAXIMUM_ALLOWED_WORKFLOW_AGE_BEFORE_TERMINATION":86400,"MAXIMUM_ELECTED_STATE_AGE_ALLOWED":900,"MAXIMUM_RETRY_ATTEMPTS_ALLOWED":20,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED":900,"MAXIMUM_TERMINATING_STATE_AGE_ALLOWED_WITHOUT_UPDATE":300,"TIME_ENGINE_INACTIVE_UNTIL_TERMINATION":300,"TIME_ENGINE_INACTIVE_UNTIL_UNHEALTHY":60,"TIME_INACTIVE_UNTIL_TERMINATION":2700}}` | Parameters for Engine pod (aka "pipeline" orchestrator). |
11461146
| runtime.engine.affinity | object | `{}` | Set affinity |
11471147
| runtime.engine.command | list | `["npm","run","start"]` | Set container command. |
1148-
| runtime.engine.env | object | `{"CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS":1000,"DOCKER_REQUEST_TIMEOUT_MS":30000,"FORCE_COMPOSE_SERIAL_PULL":false,"LOGGER_LEVEL":"debug","LOG_OUTGOING_HTTP_REQUESTS":false,"METRICS_PROMETHEUS_ENABLED":true}` | Set additional env vars. |
1148+
| runtime.engine.env | object | `{"CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS":1000,"DOCKER_REQUEST_TIMEOUT_MS":30000,"FORCE_COMPOSE_SERIAL_PULL":false,"LOGGER_LEVEL":"debug","LOG_OUTGOING_HTTP_REQUESTS":false,"METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS":false,"METRICS_PROMETHEUS_ENABLED":true,"METRICS_PROMETHEUS_HOST":"0.0.0.0","METRICS_PROMETHEUS_PORT":9100}` | Set additional env vars. |
11491149
| runtime.engine.env.CONTAINER_LOGGER_EXEC_CHECK_INTERVAL_MS | int | `1000` | Interval to check the exec status in the container-logger |
11501150
| runtime.engine.env.DOCKER_REQUEST_TIMEOUT_MS | int | `30000` | Timeout while doing requests to the Docker daemon |
11511151
| runtime.engine.env.FORCE_COMPOSE_SERIAL_PULL | bool | `false` | If "true", composition images will be pulled sequentially |
11521152
| runtime.engine.env.LOGGER_LEVEL | string | `"debug"` | Level of logging for engine |
11531153
| runtime.engine.env.LOG_OUTGOING_HTTP_REQUESTS | bool | `false` | Enable debug-level logging of outgoing HTTP/HTTPS requests |
1154+
| runtime.engine.env.METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS | bool | `false` | Enable collecting process metrics |
11541155
| runtime.engine.env.METRICS_PROMETHEUS_ENABLED | bool | `true` | Enable emitting metrics from engine |
1155-
| runtime.engine.image | object | `{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.171.3"}` | Set image. |
1156+
| runtime.engine.env.METRICS_PROMETHEUS_HOST | string | `"0.0.0.0"` | Host for Prometheus metrics server |
1157+
| runtime.engine.env.METRICS_PROMETHEUS_PORT | int | `9100` | Port for Prometheus metrics server |
1158+
| runtime.engine.image | object | `{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"codefresh/engine","tag":"1.173.2"}` | Set image. |
11561159
| runtime.engine.nodeSelector | object | `{}` | Set node selector. |
11571160
| runtime.engine.podAnnotations | object | `{}` | Set pod annotations. |
11581161
| runtime.engine.podLabels | object | `{}` | Set pod labels. |

charts/cf-runtime/tests/private-registry/private_registry_test.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ tests:
4343
FORCE_COMPOSE_SERIAL_PULL: 'false'
4444
LOGGER_LEVEL: debug
4545
LOG_OUTGOING_HTTP_REQUESTS: 'false'
46+
METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: 'false'
4647
METRICS_PROMETHEUS_ENABLED: 'true'
48+
METRICS_PROMETHEUS_HOST: 0.0.0.0
49+
METRICS_PROMETHEUS_PORT: '9100'
4750
COMPOSE_IMAGE: 'somedomain.io/codefresh/compose:tagoverride'
4851
CONTAINER_LOGGER_IMAGE: 'somedomain.io/codefresh/cf-container-logger:tagoverride'
4952
DOCKER_BUILDER_IMAGE: 'somedomain.io/codefresh/cf-docker-builder:tagoverride'

charts/cf-runtime/tests/runtime/runtime_onprem_test.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ tests:
5151
FORCE_COMPOSE_SERIAL_PULL: 'false'
5252
LOGGER_LEVEL: debug
5353
LOG_OUTGOING_HTTP_REQUESTS: 'false'
54+
METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: 'false'
5455
METRICS_PROMETHEUS_ENABLED: 'true'
56+
METRICS_PROMETHEUS_HOST: 0.0.0.0
57+
METRICS_PROMETHEUS_PORT: '9100'
5558
COMPOSE_IMAGE: 'quay.io/codefresh/compose:tagoverride'
5659
CONTAINER_LOGGER_IMAGE: 'quay.io/codefresh/cf-container-logger:tagoverride'
5760
DOCKER_BUILDER_IMAGE: 'quay.io/codefresh/cf-docker-builder:tagoverride'

charts/cf-runtime/tests/runtime/runtime_test.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ tests:
5252
FORCE_COMPOSE_SERIAL_PULL: 'false'
5353
LOGGER_LEVEL: debug
5454
LOG_OUTGOING_HTTP_REQUESTS: 'false'
55+
METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: 'false'
5556
METRICS_PROMETHEUS_ENABLED: 'true'
57+
METRICS_PROMETHEUS_HOST: 0.0.0.0
58+
METRICS_PROMETHEUS_PORT: '9100'
5659
COMPOSE_IMAGE: 'quay.io/codefresh/compose:tagoverride'
5760
CONTAINER_LOGGER_IMAGE: 'quay.io/codefresh/cf-container-logger:tagoverride'
5861
DOCKER_BUILDER_IMAGE: 'quay.io/codefresh/cf-docker-builder:tagoverride'

charts/cf-runtime/values.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ runtime:
501501
image:
502502
registry: quay.io
503503
repository: codefresh/engine
504-
tag: 1.171.3
504+
tag: 1.173.2
505505
pullPolicy: IfNotPresent
506506
# -- Set container command.
507507
command:
@@ -546,6 +546,12 @@ runtime:
546546
LOG_OUTGOING_HTTP_REQUESTS: false
547547
# -- Enable emitting metrics from engine
548548
METRICS_PROMETHEUS_ENABLED: true
549+
# -- Enable collecting process metrics
550+
METRICS_PROMETHEUS_COLLECT_PROCESS_METRICS: false
551+
# -- Host for Prometheus metrics server
552+
METRICS_PROMETHEUS_HOST: '0.0.0.0'
553+
# -- Port for Prometheus metrics server
554+
METRICS_PROMETHEUS_PORT: 9100
549555
# -- Set workflow limits.
550556
workflowLimits:
551557
# -- Maximum time allowed to the engine to wait for the pre-steps (aka "Initializing Process") to succeed; seconds.

0 commit comments

Comments
 (0)