tests/test_tenant_external_model_attachment.py::TestAttachmentLifecycleCleanup::test_detach_removes_only_that_attachment@tenant_ipp {"namespace": "ai-tenant-e2e-extmod-b-8c9b0f", "pod": "payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx", "status": {"conditions": [{"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:37:46Z", "observedGeneration": 1, "status": "True", "type": "PodReadyToStartContainers"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:37:45Z", "observedGeneration": 1, "status": "True", "type": "Initialized"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:37:57Z", "observedGeneration": 1, "status": "True", "type": "Ready"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:37:57Z", "observedGeneration": 1, "status": "True", "type": "ContainersReady"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:37:45Z", "observedGeneration": 1, "status": "True", "type": "PodScheduled"}], "containerStatuses": [{"allocatedResources": {"cpu": "50m", "memory": "64Mi"}, "containerID": "cri-o://43ab9a3dcb4dcc1a64aec263f036f2666300e0a1966e6e06866ca2fc63544e0f", "image": "quay.io/opendatahub/odh-praxis-extproc:odh-stable", "imageID": "quay.io/opendatahub/odh-praxis-extproc@sha256:8b7084478cc266b2373bbfb04190ed3ca6fe759428663bddbab63b9c3ad8f130", "lastState": {}, "name": "payload-processing", "ready": true, "resources": {"limits": {"cpu": "500m", "memory": "256Mi"}, "requests": {"cpu": "50m", "memory": "64Mi"}}, "restartCount": 0, "started": true, "state": {"running": {"startedAt": "2026-11-03T17:37:46Z"}}, "user": {"linux": {"gid": 0, "supplementalGroups": [0, 1000860000], "uid": 1000860000}}, "volumeMounts": [{"mountPath": "/etc/praxis", "name": "plugins-config-volume", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/etc/praxis/routing", "name": "routing-overlay-volume", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/etc/praxis/credentials", "name": "provider-credentials", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/var/run/secrets/kubernetes.io/serviceaccount", "name": "kube-api-access-xw5hq", "readOnly": true, "recursiveReadOnly": "Disabled"}]}], "hostIP": "10.0.143.117", "hostIPs": [{"ip": "10.0.143.117"}], "observedGeneration": 1, "phase": "Running", "podIP": "10.133.0.121", "podIPs": [{"ip": "10.133.0.121"}], "qosClass": "Burstable", "startTime": "2026-11-03T17:37:45Z"}} [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.057630Z  INFO praxis_extproc::fips: installed rustls crypto provider provider="openssl" provider_fips=false kernel_fips=Some(false) fips_required=false [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.064945Z  INFO praxis_ai_filters::routing::intelligent_route: intelligent_route: overlay snapshot initialized path=/etc/praxis/routing/routing-overlay.json contract_format=Envelope schema_version="1.0.0" accepted_revision="17d7725ee95ff9a721a9b997451539de3d9e2297524d6a12014b7ea78f6adf84" serving_revision="17d7725ee95ff9a721a9b997451539de3d9e2297524d6a12014b7ea78f6adf84" candidate_count=3 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.065293Z  INFO praxis_ai_filters::routing::overlay: intelligent_route: overlay file watcher started path=/etc/praxis/routing/routing-overlay.json debounce_ms=500 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.066292Z  INFO praxis_extproc: starting ExtProc server grpc=0.0.0.0:9004 health=0.0.0.0:50052 metrics=0.0.0.0:9090 filters=3 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.066317Z  INFO praxis_extproc: gRPC max decoding message size configured bytes=33554432 env="GRPC_MAX_RECV_MSG_SIZE" [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.066322Z  INFO praxis_extproc::tls: generating self-signed TLS certificate [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.066342Z  INFO praxis_extproc::health: health server listening address=0.0.0.0:50052 serving=true fips=false [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:37:46.067068Z  INFO praxis_extproc::metrics: metrics server listening address=0.0.0.0:9090 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:38:42.850292Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:38:48.405601Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:38:53.727623Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:38:59.069178Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:04.382738Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:09.673460Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:15.033465Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:20.526551Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:25.842826Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:38.343409Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:43.648580Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:49.045096Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:54.545486Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:39:59.857102Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:05.154474Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:10.462177Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:15.772067Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:21.087035Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:26.613428Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:31.906176Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:37.212473Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:42.612521Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:47.920895Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:53.233490Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:40:58.823502Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:04.113335Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:09.412436Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:14.761516Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:20.101813Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:25.423685Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:30.900311Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:36.286424Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:41.575820Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:46.873588Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 [pod/payload-processing-external-model-e2e-extmod-b-8c9b0f-fc8f25xdx/payload-processing] 2026-11-03T17:41:52.195099Z  WARN praxis_filter::pipeline::http_utils: request rejected by filter filter="credential_inject" status=503 {"namespace": "models-as-a-service", "pod": "payload-processing-external-model-67bfdd8c49-4rgpl", "status": {"conditions": [{"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:41:29Z", "observedGeneration": 1, "status": "True", "type": "PodReadyToStartContainers"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:41:25Z", "observedGeneration": 1, "status": "True", "type": "Initialized"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:41:25Z", "message": "containers with unready status: [payload-processing]", "observedGeneration": 1, "reason": "ContainersNotReady", "status": "False", "type": "Ready"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:41:25Z", "message": "containers with unready status: [payload-processing]", "observedGeneration": 1, "reason": "ContainersNotReady", "status": "False", "type": "ContainersReady"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:41:25Z", "observedGeneration": 1, "status": "True", "type": "PodScheduled"}], "containerStatuses": [{"allocatedResources": {"cpu": "50m", "memory": "64Mi"}, "containerID": "cri-o://dafb2d78d8bb1fcf26dc4f64f57d151133e52ba078867c75a7e51c6b258e8e52", "image": "quay.io/opendatahub/odh-praxis-extproc:odh-stable", "imageID": "quay.io/opendatahub/odh-praxis-extproc@sha256:8b7084478cc266b2373bbfb04190ed3ca6fe759428663bddbab63b9c3ad8f130", "lastState": {}, "name": "payload-processing", "ready": false, "resources": {"limits": {"cpu": "500m", "memory": "256Mi"}, "requests": {"cpu": "50m", "memory": "64Mi"}}, "restartCount": 0, "started": true, "state": {"running": {"startedAt": "2026-11-03T17:41:28Z"}}, "user": {"linux": {"gid": 0, "supplementalGroups": [0, 1000710000], "uid": 1000710000}}, "volumeMounts": [{"mountPath": "/etc/praxis", "name": "plugins-config-volume", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/etc/praxis/routing", "name": "routing-overlay-volume", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/etc/praxis/credentials", "name": "provider-credentials", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/var/run/secrets/kubernetes.io/serviceaccount", "name": "kube-api-access-k8sht", "readOnly": true, "recursiveReadOnly": "Disabled"}]}], "hostIP": "10.0.129.76", "hostIPs": [{"ip": "10.0.129.76"}], "observedGeneration": 1, "phase": "Running", "podIP": "10.134.0.69", "podIPs": [{"ip": "10.134.0.69"}], "qosClass": "Burstable", "startTime": "2026-11-03T17:41:25Z"}} [pod/payload-processing-external-model-67bfdd8c49-4rgpl/payload-processing] 2026-11-03T17:41:28.920368Z  INFO praxis_extproc::fips: installed rustls crypto provider provider="openssl" provider_fips=false kernel_fips=Some(false) fips_required=false [pod/payload-processing-external-model-67bfdd8c49-4rgpl/payload-processing] 2026-11-03T17:41:28.928050Z  INFO praxis_ai_filters::routing::intelligent_route: intelligent_route: overlay snapshot initialized path=/etc/praxis/routing/routing-overlay.json contract_format=Envelope schema_version="1.0.0" accepted_revision="d81c9d5a10e143fbd71af1749f497c4c664331972a75e9653c3d7eac13f69cd0" serving_revision="d81c9d5a10e143fbd71af1749f497c4c664331972a75e9653c3d7eac13f69cd0" candidate_count=1 [pod/payload-processing-external-model-67bfdd8c49-4rgpl/payload-processing] 2026-11-03T17:41:28.928377Z  INFO praxis_ai_filters::routing::overlay: intelligent_route: overlay file watcher started path=/etc/praxis/routing/routing-overlay.json debounce_ms=500 [pod/payload-processing-external-model-67bfdd8c49-4rgpl/payload-processing] 2026-11-03T17:41:28.928466Z  INFO praxis_ai_filters::routing::overlay: intelligent_route: overlay file watcher shutting down [pod/payload-processing-external-model-67bfdd8c49-4rgpl/payload-processing] 2026-11-03T17:41:28.933538Z ERROR praxis_extproc: filter pipeline build failed; reporting NotServing error=pipeline: credential_inject: cannot read file '/etc/praxis/credentials/agc-cred-adbf463d8a89-4d66c0fb3e6b/api-key' for 'agc-cred-adbf463d8a89/models-as-a-service/api-key': No such file or directory (os error 2) health=0.0.0.0:50052 [pod/payload-processing-external-model-67bfdd8c49-4rgpl/payload-processing] 2026-11-03T17:41:28.933599Z  INFO praxis_extproc::health: health server listening address=0.0.0.0:50052 serving=false fips=false [pod/payload-processing-external-model-67bfdd8c49-4rgpl/payload-processing] 2026-11-03T17:41:28.934435Z  INFO praxis_extproc::metrics: metrics server listening address=0.0.0.0:9090 {"namespace": "models-as-a-service", "pod": "payload-processing-external-model-8657f8dff8-j9qn4", "status": {"conditions": [{"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:40:57Z", "observedGeneration": 1, "status": "True", "type": "PodReadyToStartContainers"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:40:55Z", "observedGeneration": 1, "status": "True", "type": "Initialized"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:41:08Z", "observedGeneration": 1, "status": "True", "type": "Ready"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:41:08Z", "observedGeneration": 1, "status": "True", "type": "ContainersReady"}, {"lastProbeTime": null, "lastTransitionTime": "2026-11-03T17:40:55Z", "observedGeneration": 1, "status": "True", "type": "PodScheduled"}], "containerStatuses": [{"allocatedResources": {"cpu": "50m", "memory": "64Mi"}, "containerID": "cri-o://a2b0250db61dfffcb5a5f13bb0d0a1059e7eae71c38951e5ca9eecb5e88fac97", "image": "quay.io/opendatahub/odh-praxis-extproc:odh-stable", "imageID": "quay.io/opendatahub/odh-praxis-extproc@sha256:8b7084478cc266b2373bbfb04190ed3ca6fe759428663bddbab63b9c3ad8f130", "lastState": {}, "name": "payload-processing", "ready": true, "resources": {"limits": {"cpu": "500m", "memory": "256Mi"}, "requests": {"cpu": "50m", "memory": "64Mi"}}, "restartCount": 0, "started": true, "state": {"running": {"startedAt": "2026-11-03T17:40:56Z"}}, "user": {"linux": {"gid": 0, "supplementalGroups": [0, 1000710000], "uid": 1000710000}}, "volumeMounts": [{"mountPath": "/etc/praxis", "name": "plugins-config-volume", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/etc/praxis/routing", "name": "routing-overlay-volume", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/etc/praxis/credentials", "name": "provider-credentials", "readOnly": true, "recursiveReadOnly": "Disabled"}, {"mountPath": "/var/run/secrets/kubernetes.io/serviceaccount", "name": "kube-api-access-82fjx", "readOnly": true, "recursiveReadOnly": "Disabled"}]}], "hostIP": "10.0.143.117", "hostIPs": [{"ip": "10.0.143.117"}], "observedGeneration": 1, "phase": "Running", "podIP": "10.133.0.144", "podIPs": [{"ip": "10.133.0.144"}], "qosClass": "Burstable", "startTime": "2026-11-03T17:40:55Z"}} [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.576910Z  INFO praxis_extproc::fips: installed rustls crypto provider provider="openssl" provider_fips=false kernel_fips=Some(false) fips_required=false [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.584486Z  INFO praxis_ai_filters::routing::intelligent_route: intelligent_route: overlay snapshot initialized path=/etc/praxis/routing/routing-overlay.json contract_format=Envelope schema_version="1.0.0" accepted_revision="a252bff9514bec1ed3977d5a42b02c2f10b24efe344f33fa596d9075feb57218" serving_revision="a252bff9514bec1ed3977d5a42b02c2f10b24efe344f33fa596d9075feb57218" candidate_count=2 [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.584836Z  INFO praxis_ai_filters::routing::overlay: intelligent_route: overlay file watcher started path=/etc/praxis/routing/routing-overlay.json debounce_ms=500 [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.585867Z  INFO praxis_extproc: starting ExtProc server grpc=0.0.0.0:9004 health=0.0.0.0:50052 metrics=0.0.0.0:9090 filters=3 [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.585902Z  INFO praxis_extproc: gRPC max decoding message size configured bytes=33554432 env="GRPC_MAX_RECV_MSG_SIZE" [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.585909Z  INFO praxis_extproc::tls: generating self-signed TLS certificate [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.585925Z  INFO praxis_extproc::health: health server listening address=0.0.0.0:50052 serving=true fips=false [pod/payload-processing-external-model-8657f8dff8-j9qn4/payload-processing] 2026-11-03T17:40:56.586766Z  INFO praxis_extproc::metrics: metrics server listening address=0.0.0.0:9090