diff --git a/numalogic/udfs/__main__.py b/numalogic/udfs/__main__.py index b9404142..ce0ea244 100644 --- a/numalogic/udfs/__main__.py +++ b/numalogic/udfs/__main__.py @@ -19,7 +19,7 @@ BASE_CONF_FILE_PATH: Final[str] = os.getenv("BASE_CONF_PATH", default=DEFAULT_BASE_CONF_PATH) APP_CONF_FILE_PATH: Final[str] = os.getenv("APP_CONF_PATH", default=DEFAULT_APP_CONF_PATH) METRICS_PORT: Final[int] = int(os.getenv("METRICS_PORT", default=DEFAULT_METRICS_PORT)) -METRICS_ENABLED: Final[bool] = bool(os.getenv("METRICS_ENABLED", default="True")) +METRICS_ENABLED: Final[bool] = bool(int(os.getenv("METRICS_ENABLED", default="1"))) METRICS_CONF_PATH: Final[str] = os.getenv("METRICS_CONF_PATH", default=DEFAULT_METRICS_CONF_PATH) diff --git a/numalogic/udfs/inference.py b/numalogic/udfs/inference.py index 13f865a0..144a76b3 100644 --- a/numalogic/udfs/inference.py +++ b/numalogic/udfs/inference.py @@ -31,7 +31,7 @@ LOCAL_CACHE_TTL = int(os.getenv("LOCAL_CACHE_TTL", "3600")) LOCAL_CACHE_SIZE = int(os.getenv("LOCAL_CACHE_SIZE", "10000")) LOAD_LATEST = os.getenv("LOAD_LATEST", "false").lower() == "true" -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) class InferenceUDF(NumalogicUDF): diff --git a/numalogic/udfs/payloadtx.py b/numalogic/udfs/payloadtx.py index 00c481a2..c5b05513 100644 --- a/numalogic/udfs/payloadtx.py +++ b/numalogic/udfs/payloadtx.py @@ -12,7 +12,7 @@ from numalogic.udfs._logger import configure_logger, log_data_payload_values from numalogic.udfs._metrics_utility import _increment_counter -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) _struct_log = configure_logger() diff --git a/numalogic/udfs/postprocess.py b/numalogic/udfs/postprocess.py index 13df0dd4..3f7e629f 100644 --- a/numalogic/udfs/postprocess.py +++ b/numalogic/udfs/postprocess.py @@ -30,7 +30,7 @@ LOCAL_CACHE_TTL = int(os.getenv("LOCAL_CACHE_TTL", "3600")) LOCAL_CACHE_SIZE = int(os.getenv("LOCAL_CACHE_SIZE", "10000")) LOAD_LATEST = os.getenv("LOAD_LATEST", "false").lower() == "true" -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) SCORE_PREFIX = os.getenv("SCORE_PREFIX", "unified") _struct_log = configure_logger() diff --git a/numalogic/udfs/preprocess.py b/numalogic/udfs/preprocess.py index b7b60af3..a6f0917e 100644 --- a/numalogic/udfs/preprocess.py +++ b/numalogic/udfs/preprocess.py @@ -31,8 +31,7 @@ LOCAL_CACHE_TTL = int(os.getenv("LOCAL_CACHE_TTL", "3600")) LOCAL_CACHE_SIZE = int(os.getenv("LOCAL_CACHE_SIZE", "10000")) LOAD_LATEST = os.getenv("LOAD_LATEST", "false").lower() == "true" -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" - +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) _struct_log = configure_logger() diff --git a/numalogic/udfs/staticthresh.py b/numalogic/udfs/staticthresh.py index 880a2594..86452fb3 100644 --- a/numalogic/udfs/staticthresh.py +++ b/numalogic/udfs/staticthresh.py @@ -13,7 +13,7 @@ from numalogic.udfs._metrics_utility import _increment_counter from numalogic.udfs.entities import StreamPayload, OutputPayload -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) SCORE_PREFIX = os.getenv("SCORE_PREFIX", "unified") _struct_log = configure_logger() diff --git a/numalogic/udfs/tools.py b/numalogic/udfs/tools.py index 70685217..182bc16b 100644 --- a/numalogic/udfs/tools.py +++ b/numalogic/udfs/tools.py @@ -17,7 +17,7 @@ from numalogic.udfs._metrics_utility import _set_gauge, _increment_counter, _add_info from numalogic.udfs.entities import StreamPayload, TrainerPayload -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) _struct_log = configure_logger() diff --git a/numalogic/udfs/trainer/_base.py b/numalogic/udfs/trainer/_base.py index 87d5af98..cbb5ed27 100644 --- a/numalogic/udfs/trainer/_base.py +++ b/numalogic/udfs/trainer/_base.py @@ -25,8 +25,7 @@ from numalogic.udfs.tools import TrainMsgDeduplicator import torch -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" - +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) _struct_log = configure_logger() diff --git a/numalogic/udfs/trainer/_druid.py b/numalogic/udfs/trainer/_druid.py index 48f1d5a2..ebe8f633 100644 --- a/numalogic/udfs/trainer/_druid.py +++ b/numalogic/udfs/trainer/_druid.py @@ -14,8 +14,7 @@ from numalogic.udfs.trainer._base import TrainerUDF from numalogic.udfs._metrics_utility import _increment_counter, _add_summary -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" - +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) _struct_log = configure_logger() diff --git a/numalogic/udfs/trainer/_prom.py b/numalogic/udfs/trainer/_prom.py index 59e53c44..d887160c 100644 --- a/numalogic/udfs/trainer/_prom.py +++ b/numalogic/udfs/trainer/_prom.py @@ -15,8 +15,7 @@ from numalogic.udfs._metrics_utility import _increment_counter, _add_summary from numalogic.udfs.trainer._base import TrainerUDF -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" - +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) _struct_log = configure_logger() diff --git a/numalogic/udfs/trainer/_rds.py b/numalogic/udfs/trainer/_rds.py index 21cdd8ee..f27eab74 100644 --- a/numalogic/udfs/trainer/_rds.py +++ b/numalogic/udfs/trainer/_rds.py @@ -15,8 +15,7 @@ from datetime import datetime, timedelta import pytz -METRICS_ENABLED = os.getenv("METRICS_ENABLED", "True").lower() == "true" - +METRICS_ENABLED = bool(int(os.getenv("METRICS_ENABLED", default="1"))) _LOGGER = logging.getLogger(__name__) diff --git a/tests/udfs/resources/numalogic_udf_metrics.yaml b/tests/udfs/resources/numalogic_udf_metrics.yaml index 1ff9f7c4..109b3237 100644 --- a/tests/udfs/resources/numalogic_udf_metrics.yaml +++ b/tests/udfs/resources/numalogic_udf_metrics.yaml @@ -1,158 +1,165 @@ -numalogic_metrics: - - type: Gauge - metrics: - - name: RECORDED_DATA_GAUGE - description: Gauge metric to observe the mean value of the window - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - metric_name: "" - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - type: Info - metrics: - - name: MODEL_INFO - description: Model Info - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - "composite_key" : "" - "config_id" : "" - "pipeline_id": "" - - type: Summary - metrics: - - name: FETCH_TIME_SUMMARY - description: Train Data Fetch time - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - composite_key: "" - config_id: "" - pipeline_id: "" - - name: NAN_SUMMARY - description: Summary of NaN values - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - composite_key: "" - config_id: "" - pipeline_id: "" - - name: INF_SUMMARY - description: Summary of Inf values - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - composite_key: "" - config_id: "" - pipeline_id: "" - - name: DATAFRAME_SHAPE_SUMMARY - description: Summary of Dataframe shape - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - composite_key: "" - config_id: "" - pipeline_id: "" - - type: Counter - metrics: - - name: MSG_IN_COUNTER - description: Count msgs flowing in - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: MSG_DROPPED_COUNTER - description: Count msgs dropped - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: MSG_PROCESSED_COUNTER - description: Count msgs processed - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: SOURCE_COUNTER - description: Count artifact source (registry or cache) calls - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - artifact_source: "" - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: INSUFFICIENT_DATA_COUNTER - description: Count insufficient data while Training - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - composite_key: "" - config_id: "" - pipeline_id: "" - - name: MODEL_STATUS_COUNTER - description: Count model status - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - status: "" - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: DATASHAPE_ERROR_COUNTER - description: Count datashape errors - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: REDIS_ERROR_COUNTER - description: Count redis errors - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: EXCEPTION_COUNTER - description: Count exceptions - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: RUNTIME_ERROR_COUNTER - description: Count runtime errors - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - vertex: "" - composite_key: "" - config_id: "" - pipeline_id: "" - - name: FETCH_EXCEPTION_COUNTER - description: Count exceptions during train data fetch calls - static_label_pairs: - source: "numalogic_udf_metrics" - label_pairs: - composite_key: "" - config_id: "" - pipeline_id: "" +apiVersion: v1 +kind: ConfigMap +metadata: + name: numalogic-udf-metrics + namespace: numalogic-rollouts +data: + config.yaml: | + numalogic_metrics: + - type: Gauge + metrics: + - name: RECORDED_DATA_GAUGE + description: Gauge metric to observe the mean value of the window + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + metric_name: "" + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - type: Info + metrics: + - name: MODEL_INFO + description: Model Info + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + "composite_key" : "" + "config_id" : "" + "pipeline_id": "" + - type: Summary + metrics: + - name: FETCH_TIME_SUMMARY + description: Train Data Fetch time + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + composite_key: "" + config_id: "" + pipeline_id: "" + - name: NAN_SUMMARY + description: Summary of NaN values + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + composite_key: "" + config_id: "" + pipeline_id: "" + - name: INF_SUMMARY + description: Summary of Inf values + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + composite_key: "" + config_id: "" + pipeline_id: "" + - name: DATAFRAME_SHAPE_SUMMARY + description: Summary of Dataframe shape + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + composite_key: "" + config_id: "" + pipeline_id: "" + - type: Counter + metrics: + - name: MSG_IN_COUNTER + description: Count msgs flowing in + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: MSG_DROPPED_COUNTER + description: Count msgs dropped + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: MSG_PROCESSED_COUNTER + description: Count msgs processed + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: SOURCE_COUNTER + description: Count artifact source (registry or cache) calls + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + artifact_source: "" + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: INSUFFICIENT_DATA_COUNTER + description: Count insufficient data while Training + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + composite_key: "" + config_id: "" + pipeline_id: "" + - name: MODEL_STATUS_COUNTER + description: Count model status + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + status: "" + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: DATASHAPE_ERROR_COUNTER + description: Count datashape errors + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: REDIS_ERROR_COUNTER + description: Count redis errors + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: EXCEPTION_COUNTER + description: Count exceptions + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: RUNTIME_ERROR_COUNTER + description: Count runtime errors + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + vertex: "" + composite_key: "" + config_id: "" + pipeline_id: "" + - name: FETCH_EXCEPTION_COUNTER + description: Count exceptions during train data fetch calls + static_label_pairs: + source: "numalogic_udf_metrics" + label_pairs: + composite_key: "" + config_id: "" + pipeline_id: "" diff --git a/tests/udfs/resources/pipeline.yaml b/tests/udfs/resources/pipeline.yaml new file mode 100644 index 00000000..bd4e9101 --- /dev/null +++ b/tests/udfs/resources/pipeline.yaml @@ -0,0 +1,496 @@ +apiVersion: numaflow.numaproj.io/v1alpha1 +kind: Pipeline +metadata: + name: aiops-rollouts-pl +spec: + edges: + - from: input + to: window + - from: window + to: preprocess + - from: preprocess + to: inference + conditions: + tags: + operator: or + values: + - inference + - from: preprocess + to: staticthresh + conditions: + tags: + operator: or + values: + - staticthresh + - from: preprocess + to: trainer + conditions: + tags: + operator: or + values: + - train + - from: inference + to: postprocess + conditions: + tags: + operator: or + values: + - postprocess + - from: inference + to: trainer + conditions: + tags: + operator: or + values: + - train + - from: inference + to: staticthresh + conditions: + tags: + operator: or + values: + - staticthresh + - from: postprocess + to: prom-pusher + conditions: + tags: + operator: or + values: + - output + - from: postprocess + to: trainer + conditions: + tags: + operator: or + values: + - train + onFull: discardLatest + - from: postprocess + to: staticthresh + conditions: + tags: + operator: or + values: + - staticthresh + - from: staticthresh + to: prom-pusher + - from: trainer + to: trainer-out + interStepBufferServiceName: numalogic-isbs + vertices: + - name: input + scale: + max: 1 + min: 1 + containerTemplate: + resources: + limits: + cpu: 512m + memory: 512Mi + requests: + cpu: 100m + memory: 256Mi + source: + http: + service: false + transformer: + container: + args: + - namespace + - app + env: + - name: DEBUG + value: "true" + - name: NUM_CPU_MULTIPROC + value: "2" + - name: MAX_THREADS + value: "3" + - name: LABELS_TO_INCLUDE + value: namespace,app,assetId,intuit_alert + image: docker.intuit.com/oss-analytics/numalogic-udfs/service/srctx:master-30d7992 + resources: + limits: + cpu: 512m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + - limits: + readBatchSize: 200 + name: window + scale: + max: 1 + min: 1 + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + udf: + container: + env: + - name: DEBUG + value: "true" + - name: BASE_CONF_PATH + value: /app/config/default-configs/config.yaml + - name: METRICS_CONF_PATH + value: /app/config/default-configs/metrics.yaml + image: docker.intuit.com/oss-analytics/numalogic-udfs/service/reducer:master-30d7992 + resources: + limits: + cpu: 500m + memory: 2Gi + requests: + cpu: 50m + memory: 1Gi + imagePullPolicy: Always + volumeMounts: + - mountPath: /app/config/app-configs + name: app-configs + - mountPath: /app/config/default-configs + name: default-configs + groupBy: + keyed: true + storage: + persistentVolumeClaim: + accessMode: ReadWriteOnce + volumeSize: 5Gi + window: + sliding: + length: 7m0s + slide: 30s + volumes: + - configMap: + name: numalogic-rollouts-default-mv-configs + name: default-configs + - configMap: + name: numalogic-rollouts-app-mv-configs + name: app-configs + - limits: + readBatchSize: 200 + name: preprocess + scale: + max: 1 + min: 1 + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + udf: + container: + args: + - python + - -m + - numalogic.udfs + - preprocess + env: + - name: DEBUG + value: "true" + - name: BASE_CONF_PATH + value: /app/config/default-configs/config.yaml + - name: METRICS_CONF_PATH + value: /app/config/default-configs/metrics.yaml + - name: REDIS_AUTH + valueFrom: + secretKeyRef: + key: redis-password + name: isbsvc-redis-isbs-redis-auth + image: docker.intuit.com/quay-rmt/numaio/numalogic/udf:v0.11.0 + imagePullPolicy: Always + resources: + limits: + cpu: 500m + memory: 2Gi + requests: + cpu: 70m + memory: 512Mi + volumeMounts: + - mountPath: /app/config/app-configs + name: app-configs + - mountPath: /app/config/default-configs + name: default-configs + volumes: + - configMap: + name: numalogic-rollouts-app-mv-configs + name: app-configs + - configMap: + name: numalogic-rollouts-default-mv-configs + name: default-configs + - limits: + readBatchSize: 100 + name: inference + scale: + max: 1 + min: 1 + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + udf: + container: + args: + - python + - -m + - numalogic.udfs + - inference + - multiproc + env: + - name: NUM_CPU_MULTIPROC + value: "4" + - name: DEBUG + value: "true" + - name: BASE_CONF_PATH + value: /app/config/default-configs/config.yaml + - name: METRICS_CONF_PATH + value: /app/config/default-configs/metrics.yaml + - name: REDIS_AUTH + valueFrom: + secretKeyRef: + key: redis-password + name: isbsvc-redis-isbs-redis-auth + image: docker.intuit.com/quay-rmt/numaio/numalogic/udf:v0.11.0 + imagePullPolicy: Always + resources: + limits: + cpu: 500m + memory: 2Gi + requests: + cpu: 70m + memory: 512Mi + volumeMounts: + - mountPath: /app/config/app-configs + name: app-configs + - mountPath: /app/config/default-configs + name: default-configs + volumes: + - configMap: + name: numalogic-rollouts-app-mv-configs + name: app-configs + - configMap: + name: numalogic-rollouts-default-mv-configs + name: default-configs + - limits: + readBatchSize: 200 + name: postprocess + scale: + max: 1 + min: 1 + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + udf: + container: + args: + - python + - -m + - numalogic.udfs + - postprocess + env: + - name: SCORE_PREFIX + value: namespace_app_rollouts_unified + - name: DEBUG + value: "true" + - name: BASE_CONF_PATH + value: /app/config/default-configs/config.yaml + - name: METRICS_CONF_PATH + value: /app/config/default-configs/metrics.yaml + - name: REDIS_AUTH + valueFrom: + secretKeyRef: + key: redis-password + name: isbsvc-redis-isbs-redis-auth + image: docker.intuit.com/quay-rmt/numaio/numalogic/udf:v0.11.0 + imagePullPolicy: Always + resources: + limits: + cpu: 500m + memory: 2Gi + requests: + cpu: 70m + memory: 512Mi + volumeMounts: + - mountPath: /app/config/app-configs + name: app-configs + - mountPath: /app/config/default-configs + name: default-configs + volumes: + - configMap: + name: numalogic-rollouts-app-mv-configs + name: app-configs + - configMap: + name: numalogic-rollouts-default-mv-configs + name: default-configs + - limits: + readBatchSize: 200 + name: staticthresh + scale: + max: 1 + min: 1 + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + udf: + container: + args: + - python + - -m + - numalogic.udfs + - staticthresh + env: + - name: SCORE_PREFIX + value: namespace_app_rollouts_unified + - name: DEBUG + value: "true" + - name: BASE_CONF_PATH + value: /app/config/default-configs/config.yaml + - name: METRICS_CONF_PATH + value: /app/config/default-configs/metrics.yaml + - name: REDIS_AUTH + valueFrom: + secretKeyRef: + key: redis-password + name: isbsvc-redis-isbs-redis-auth + image: docker.intuit.com/quay-rmt/numaio/numalogic/udf:v0.11.0 + imagePullPolicy: Always + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 50m + memory: 512Mi + volumeMounts: + - mountPath: /app/config/app-configs + name: app-configs + - mountPath: /app/config/default-configs + name: default-configs + volumes: + - configMap: + name: numalogic-rollouts-app-mv-configs + name: app-configs + - configMap: + name: numalogic-rollouts-default-mv-configs + name: default-configs + - limits: + readBatchSize: 1 + name: trainer + scale: + max: 3 + min: 1 + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + udf: + container: + args: + - python + - -m + - numalogic.udfs + - promtrainer + - multiproc + env: + - name: DEBUG + value: "true" + - name: BASE_CONF_PATH + value: /app/config/default-configs/config.yaml + - name: METRICS_CONF_PATH + value: /app/config/default-configs/metrics.yaml + - name: NUM_CPU_MULTIPROC + value: "4" + - name: REDIS_AUTH + valueFrom: + secretKeyRef: + key: redis-password + name: isbsvc-redis-isbs-redis-auth + image: docker.intuit.com/quay-rmt/numaio/numalogic/udf:v0.11.0 + imagePullPolicy: Always + resources: + limits: + cpu: "1" + memory: 4Gi + requests: + cpu: 100m + memory: 2Gi + volumeMounts: + - mountPath: /app/config/app-configs + name: app-configs + - mountPath: /app/config/default-configs + name: default-configs + volumes: + - configMap: + name: numalogic-rollouts-app-mv-configs + name: app-configs + - configMap: + name: numalogic-rollouts-default-mv-configs + name: default-configs + - name: trainer-out + sink: + blackhole: {} + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + - name: prom-pusher + scale: + max: 5 + min: 1 + containerTemplate: + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi + sink: + udsink: + container: + args: + - ./main + - --enableMsgTransformer + - "true" + env: + - name: SKIP_VALIDATION_FAILED + value: "true" + - name: PROMETHEUS_SERVER + value: http://prometheus-pushgateway.addon-metricset-ns.svc:9091 + - name: METRICS_NAME + value: namespace_app_rollouts_unified_anomaly + image: docker.intuit.com/quay-rmt/numaio/numaflow-sink/prometheus-pusher:v0.1.5 + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 50m + memory: 256Mi \ No newline at end of file