User Details
- User Since
- Nov 7 2023, 9:56 PM (134 w, 4 d)
- Availability
- Available
- LDAP User
- Unknown
- MediaWiki User
- GChoi-WMF [ Global Accounts ]
Fri, Jun 5
Will beging by identifying the places (in our WL code) where lang fallback is currently handled ad hoc. I can push up draft on a utility class we can route everything through
Thu, Jun 4
Nvm/update: I was able to check with the Rust pods running in Prod eqiad right now and can confirm that:
- otel-collector is running and Rust evaluator logs are clean with no export errors.
- traces are appearing in Jaeger confirming OTel is working end-to-end
I don't think we can't fully verify OTel end-to-end in staging without the collector. That said, this does confirm:
- that Rust Eval is attempting to export
- that OTel config is wired up correctly
- OTEL_EXPORTER_OTLP_ENDPOINT is set and OTEL_SERVICE_NAME is set
- createCustomSpans: true is set
@Jdforrester-WMF
The errors are specific to the Rust Evals. I just checked again and the Node Eval logs (Staging) do not have OTel export errors.
Wed, Jun 3
I see the status was changed to 'Open' again, was this intentional? Personally, comfortable resolving this; feel free to move around if other thoughts!
Are we comfortable resolving this task since observability is in its own workspace at this point anyway?
followup task to separate into own crate is done in https://phabricator.wikimedia.org/T428072
@Jdforrester-WMF decided to make this independent of that! I don't have strong opinion though!
Tue, Jun 2
Mon, Jun 1
Fri, May 29
Thu, May 28
Thank you @herron
That makes sense, being able to see state over time is valuable. We have a normalized_message field in our index as well as message. I'm looking into building a Data Table visualization that aggregates on that field, grouped by service and severity level. Do you (or anyone reading this!) know if there's a way to have it send a periodic Slack summary of those aggregated messages, as a low-friction way to stay informed without active monitoring?
Wed, May 27
Tue, May 26
may need to drop definition of ; or switch uses of it in a way in the test code; drop in orch and then schemata
Fri, May 22
Thu, May 21
The function only runs validation when the argument is a WFObject; other WFBase subclasses are silently skipped. Unclear whether WFList, WFFunctionCall, etc. should also flow through.
- Only skipping WFObject makes sense to me bc the others are more primitive-y. But it seems like WFList does have a type, which means it could be silent-skipped.
Wed, May 20
(currently pending discussion/confirmation with Product+Design before proceeding)
I will tackle this part of this task first and defer the other two as they require team decision + design
For:
The "is this a built-in validator we can skip" check is a heuristic on numeric ZID ranges (< 400, or 500 <= ZID < 10000). Brittle; should consult the actual built-in registry.
It seems like:
- WFFunctionCall.from — done by recently merged PR
- WFFunction.callWith — argument loop already parallelized (implementation loop is intentionally serial)
- WFList.realize/fullyRealize — already parallelized
- WFCompositionImpl.evaluate — nothing to parallelize
reclaiming as mentioned
Completed, confirmed in Prod:
(removing qid in parens can be followup task)
Completed and confirmed in Prod:
Tue, May 19
Update: The opentelemetry-collector namespace has no pods in staging:
Update: generateFunctionsMetrics: true is already set in staging, so x-request-id should be forwarded correctly once Orch is wired to route to the Rust evaluators. The evaluatorUri values in the staging Helm config currently point to localhost:6512/6513 (NodeJS Evals). A follow-up is needed to update these to point to the Rust evaluator services. At that point this ticket can be closed.
ex:
kubectl logs function-evaluator-evaluator-rust-javascript-585d445b6-rvsk8
Defaulted container "function-evaluator-evaluator-rust-javascript" out of: function-evaluator-evaluator-rust-javascript, function-evaluator-evaluator-rust-javascript-tls-proxy
{"@timestamp":"2026-05-19T14:51:29.402416505+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator logger initialized","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:29.402569550+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator service starting","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:31.713495083+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T21:28:36.908639960+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"received request for evaluation request_id=unknown-request-id","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
state machine log:
state machine log: calling execute in executor..., original time: 2026-05-19T21:28:36.910Z
state machine log:
state machine log:
state machine log: ...finished calling execute in executor, original time: 2026-05-19T21:28:36.911Z
state machine log:
{"@timestamp":"2026-05-19T21:28:41.711551961+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
ecarg@deploy1003:~$ kubectl logs function-evaluator-evaluator-rust-python-75fcdc788-q882q
Defaulted container "function-evaluator-evaluator-rust-python" out of: function-evaluator-evaluator-rust-python, function-evaluator-evaluator-rust-python-tls-proxy
{"@timestamp":"2026-05-19T14:51:43.407903255+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator logger initialized","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:43.408053786+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator service starting","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:43.595171131+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:44.286470712+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:48.595993929+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:54:01.238355760+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"received request for evaluation request_id=unknown-request-id","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
state machine log: calling execute in executor..., original time: 2026-05-19T14:54:01.241032
state machine log: ...finished calling execute in executor, original time: 2026-05-19T14:54:01.243123
{"@timestamp":"2026-05-19T14:54:03.596314815+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T21:37:56.136814572+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"received request for evaluation request_id=unknown-request-id","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
state machine log: calling execute in executor..., original time: 2026-05-19T21:37:56.139517
state machine log: ...finished calling execute in executor, original time: 2026-05-19T21:37:56.141278
{"@timestamp":"2026-05-19T21:37:58.595575687+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}ex:
kubectl logs function-evaluator-evaluator-rust-javascript-585d445b6-rvsk8
Defaulted container "function-evaluator-evaluator-rust-javascript" out of: function-evaluator-evaluator-rust-javascript, function-evaluator-evaluator-rust-javascript-tls-proxy
{"@timestamp":"2026-05-19T14:51:29.402416505+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator logger initialized","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:29.402569550+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator service starting","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:31.713495083+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T21:28:36.908639960+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"received request for evaluation request_id=unknown-request-id","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
state machine log:
state machine log: calling execute in executor..., original time: 2026-05-19T21:28:36.910Z
state machine log:
state machine log:
state machine log: ...finished calling execute in executor, original time: 2026-05-19T21:28:36.911Z
state machine log:
{"@timestamp":"2026-05-19T21:28:41.711551961+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
ecarg@deploy1003:~$ kubectl logs function-evaluator-evaluator-rust-python-75fcdc788-q882q
Defaulted container "function-evaluator-evaluator-rust-python" out of: function-evaluator-evaluator-rust-python, function-evaluator-evaluator-rust-python-tls-proxy
{"@timestamp":"2026-05-19T14:51:43.407903255+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator logger initialized","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:43.408053786+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"rust evaluator service starting","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:43.595171131+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:44.286470712+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:51:48.595993929+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T14:54:01.238355760+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"received request for evaluation request_id=unknown-request-id","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
state machine log: calling execute in executor..., original time: 2026-05-19T14:54:01.241032
state machine log: ...finished calling execute in executor, original time: 2026-05-19T14:54:01.243123
{"@timestamp":"2026-05-19T14:54:03.596314815+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
{"@timestamp":"2026-05-19T21:37:56.136814572+00:00","http.method":null,"http.status_code":null,"log.level":"INFO","message":"received request for evaluation request_id=unknown-request-id","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}
state machine log: calling execute in executor..., original time: 2026-05-19T21:37:56.139517
state machine log: ...finished calling execute in executor, original time: 2026-05-19T21:37:56.141278
{"@timestamp":"2026-05-19T21:37:58.595575687+00:00","http.method":null,"http.status_code":null,"log.level":"ERROR","message":"\"Failed during the export process\"","service.name":"function-evaluator","span.id":null,"trace.id":null,"x-request-id":null}Thu, May 14
Daphne's copyable qid looks good 👍
I have started on the patch for the title fetching
Execution proceeded despite no canonical connected implementation on Z825 — implementation appears to have been injected inline via Z8K4 in the request itself. Also, Z825K3 is passed as an unevaluated Z7 (call to Z20808) rather than a literal Z20420, which may have cause of the TypeError. Deferring for now.
Wed, May 13
Mon, May 11
According to recent news, this will be handled via Sloth alerting by SRE; will close this.
Fri, May 8
I believe we have used prometheus-es-exporter to alert on log levels before, here is an example. We then disabled this because they got too noisy and now only alert on rules defined here via Grafana.
May 7 2026
I will update (and close as necessary) by the end of this week as I monitor the k8s pods because I was ooo the past week and didn't get to check before yesterday's deploy
Apr 29 2026
Apr 27 2026
Update:
error.unknown_error does exist in error.js of schemata; I think that the error here is referring to the caught exception object from the catch ( error ) clause, not the imported error constant from error.js.




