Page MenuHomePhabricator

Reroute LiftWing endpoints
Closed, ResolvedPublic

Description

  • T418145: Configure ATS to allow fractional routing for api.wikimedia.org
  • Configure the REST gateway to correctly route /service/lw API routes to the right liftwing services
  • Add liftwing-specific rate limits T413448: [5.2.2c Epic]: Support Higher Rate Limits for Lift Wing
  • Progressive rollout by liftwing model
    • revscoring_articletopic
    • revscoring_articletopic_outlink
    • revscoring_articlequality
    • articlequality_language_agnostic
    • article_country_language_agnostic
    • revscoring_drafttopic
    • revscoring_draftquality
    • revscoring_editquality_damaging
    • revscoring_editquality_goodfaith
    • revscoring_editquality_reverted
    • revertrisk
    • readability
    • langid
    • articledesc
    • reference_need
    • reference_risk
    • editcheck
    • recommendation-api-ng

We can use sample calls from https://api.wikimedia.org/wiki/Lift_Wing_API for testing purposes, summarized in the table below

The general procedure to follow is:

  • Make a CR that changes the endpoint's load_fraction to 1 in gateway-check.lua.conf
  • Disable puppet on all A:cp-text nodes
  • Submit and merge the CR
  • Enable and run puppet on one cp-text node (for example cp6009.drmrs.wmnet)
  • Check trafficserver reloaded the lua correctly sudo journalctl -u trafficserver.service
  • Test that the cp node curl works correctly for this endpoint (returns 200 rest-gateway)
  • Enable puppet on all A:cp-text nodes
  • Monitor grafana for this route on both eqiad and codfw https://grafana.wikimedia.org/goto/ffjnfdmjs7bwgf?orgId=1

LiftWing Route Tests

Common headers used in all commands:

  • Content-Type: application/json
  • User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)
  • Host: api.wikimedia.org

Returns only HTTP status code and the via header if it exists

Route NamePathReferencecp node curlrest-gateway curl
revscoring_articletopic/service/lw/inference/v1/models/enwiki-articletopic:predictGet revscoring articletopic predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-articletopic:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/enwiki-articletopic:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
revscoring_articletopic_outlink/service/lw/inference/v1/models/outlink-topic-model:predictGet articletopic outlink predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/outlink-topic-model:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"page_title":"Douglas_Adams","lang":"en"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/outlink-topic-model:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"page_title":"Douglas_Adams","lang":"en"}'
revscoring_articlequality/service/lw/inference/v1/models/enwiki-articlequality:predictGet revscoring articlequality predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-articlequality:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/enwiki-articlequality:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
articlequality_language_agnostic/service/lw/inference/v1/models/articlequality:predictGet language agnostic articlequality predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/articlequality:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/articlequality:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
article_country_language_agnostic/service/lw/inference/v1/models/article-country:predictGet article countrycurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/article-country:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"lang":"en","title":"Toni_Morrison"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/article-country:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"lang":"en","title":"Toni_Morrison"}'
revscoring_drafttopic/service/lw/inference/v1/models/enwiki-drafttopic:predictGet revscoring drafttopic predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-drafttopic:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/enwiki-drafttopic:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
revscoring_draftquality/service/lw/inference/v1/models/enwiki-draftquality:predictGet revscoring draftquality predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-draftquality:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/enwiki-draftquality:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
revscoring_editquality_damaging/service/lw/inference/v1/models/enwiki-damaging:predictGet revscoring damaging predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-damaging:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/enwiki-damaging:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
revscoring_editquality_goodfaith/service/lw/inference/v1/models/enwiki-goodfaith:predictGet revscoring goodfaith predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-goodfaith:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/enwiki-goodfaith:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
revscoring_editquality_reverted/service/lw/inference/v1/models/viwiki-reverted:predictGet revscoring reverted predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/viwiki-reverted:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/viwiki-reverted:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
revertrisk/service/lw/inference/v1/models/revertrisk-multilingual:predictGet reverted risk multilingual predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/revertrisk-multilingual:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/revertrisk-multilingual:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
revertrisk/service/lw/inference/v1/models/revertrisk-language-agnostic:predictGet reverted risk language agnostic predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/revertrisk-language-agnostic:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/revertrisk-language-agnostic:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
readability/service/lw/inference/v1/models/readability:predictGet readability predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/readability:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/readability:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
langid/service/lw/inference/v1/models/langid:predictGet language identification predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/langid:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"text":"Some sample text in any language that we want to identify"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/langid:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"text":"Some sample text in any language that we want to identify"}'
articledesc/service/lw/inference/v1/models/article-descriptions:predictGet article descriptionscurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/article-descriptions:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"lang":"en","title":"Clandonald","num_beams":2,"debug":1}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/article-descriptions:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"lang":"en","title":"Clandonald","num_beams":2,"debug":1}'
reference_need/service/lw/inference/v1/models/reference-need:predictGet reference need predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/reference-need:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/reference-need:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
reference_risk/service/lw/inference/v1/models/reference-risk:predictGet reference risk predictioncurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/reference-risk:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":1242378206,"lang":"en"}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/reference-risk:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":1242378206,"lang":"en"}'
editcheck/service/lw/inference/v1/models/edit-check:predicteditcheck httpbb testcurl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/edit-check:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"instances":[{"original_text":"","modified_text":"this is a great example of work","check_type":"tone","lang":"en","page_title":"Test_Page"}]}'curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST "https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/edit-check:predict" -H "Host: api.wikimedia.org" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"instances":[{"original_text":"","modified_text":"this is a great example of work","check_type":"tone","lang":"en","page_title":"Test_Page"}]}'
recommendation-api-ng/service/lw/recommendation/api/v1/translationGet content translation recommendationcurl -si -o /dev/null -w "%{http_code} %header{via}\n" -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/recommendation/api/v1/translation?source=en&target=fr&count=3&seed=Apple" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)"curl -si -o /dev/null -w "%{http_code} %header{via}\n" "https://rest-gateway.discovery.wmnet:4113/service/lw/recommendation/api/v1/translation?source=en&target=fr&count=3&seed=Apple" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)"

Event Timeline

Clement_Goubert changed the task status from Open to In Progress.
Clement_Goubert triaged this task as High priority.
Clement_Goubert moved this task from Inbox to In Progress on the ServiceOps new board.

Change #1269398 had a related patch set uploaded (by Clément Goubert; author: Clément Goubert):

[operations/puppet@production] service-catalog: Add recommendation-api-ng

https://gerrit.wikimedia.org/r/1269398

Change #1269401 had a related patch set uploaded (by Clément Goubert; author: Clément Goubert):

[operations/deployment-charts@master] rest-gateway: Add liftwing listeners and network policies

https://gerrit.wikimedia.org/r/1269401

Change #1269403 had a related patch set uploaded (by Clément Goubert; author: Clément Goubert):

[operations/deployment-charts@master] rest-gateway: Add revscoring_articletopic routing

https://gerrit.wikimedia.org/r/1269403

Change #1269398 merged by Clément Goubert:

[operations/puppet@production] service-catalog: Add recommendation-api-ng

https://gerrit.wikimedia.org/r/1269398

Change #1270434 had a related patch set uploaded (by Clément Goubert; author: Clément Goubert):

[operations/deployment-charts@master] rest-gateway: Add liftwing recommendation-api-ng routes

https://gerrit.wikimedia.org/r/1270434

Change #1271804 had a related patch set uploaded (by Clément Goubert; author: Clément Goubert):

[operations/puppet@production] gateway-check: Add matchers for liftwing and recommendation-api-ng

https://gerrit.wikimedia.org/r/1271804

Change #1269401 merged by jenkins-bot:

[operations/deployment-charts@master] rest-gateway: Add liftwing listeners and network policies

https://gerrit.wikimedia.org/r/1269401

Change #1269403 merged by jenkins-bot:

[operations/deployment-charts@master] rest-gateway: Add liftwing inference routes

https://gerrit.wikimedia.org/r/1269403

Change #1270434 merged by jenkins-bot:

[operations/deployment-charts@master] rest-gateway: Add liftwing recommendation-api-ng routes

https://gerrit.wikimedia.org/r/1270434

Routes merged into the rest-gateway, initial tests look good:

$ curl -H 'Host: api.wikimedia.org' https://rest-gateway.discovery.wmnet:4113/service/lw/inference/v1/models/enwiki-goodfaith:predict -X POST -d '{"rev_id": 12345}' -H "Content-type: application/json"
{"enwiki":{"models":{"goodfaith":{"version":"0.5.1"}},"scores":{"12345":{"goodfaith":{"score":{"prediction":true,"probability":{"false":0.07396339218373627,"true":0.9260366078162637}}}}}}}

$ curl -H 'Host: api.wikimedia.org' "https://rest-gateway.discovery.wmnet:4113/service/lw/recommendation/api/v1/translation?source=en&target=fr&count=3&seed=Apple"
{"recommendations":[{"title":"Aymak Djangaliev","pageviews":0,"wikidata_id":"Q12527473","rank":492,"langlinks_count":2,"size":8114,"lead_section_size":null,"collection":null},{"title":"Summerland Research and Development Centre","pageviews":0,"wikidata_id":"Q60742547","rank":465,"langlinks_count":1,"size":7857,"lead_section_size":null,"collection":null},{"title":"List of national fruits","pageviews":0,"wikidata_id":"Q3351254","rank":374,"langlinks_count":8,"size":9942,"lead_section_size":null,"collection":null}],"continue_offset":null,"continue_seed":null}

Now I'll compile the examples from https://api.wikimedia.org/wiki/Lift_Wing_API/Reference into a test plan for the rest-gateway, and for external testing through ATS.
Once the rate limits are in, we can start moving traffic.

@Clement_Goubert Hi, do we need to change anything on the recommendation-api side for this change?

@Clement_Goubert Hi, do we need to change anything on the recommendation-api side for this change?

Hi Kartik, I don't think so, my test above looks ok to me but I admittedly don't know the service. It should be transparent for the backend services, but just to be sure, do you use any specific headers that would have been injected by the api-gateway?

Change #1271804 merged by Clément Goubert:

[operations/puppet@production] gateway-check: Add matchers for liftwing and recommendation-api-ng

https://gerrit.wikimedia.org/r/1271804

Change #1275852 had a related patch set uploaded (by Clément Goubert; author: Clément Goubert):

[operations/puppet@production] gateway-check: Escape - in lua patterns

https://gerrit.wikimedia.org/r/1275852

Change #1275852 merged by Clément Goubert:

[operations/puppet@production] gateway-check: Escape - in lua patterns

https://gerrit.wikimedia.org/r/1275852

Clement_Goubert changed the task status from In Progress to Stalled.Apr 21 2026, 11:21 AM
Clement_Goubert moved this task from In Progress to Needs Info / Blocked on the ServiceOps new board.

After some finaggling with lua patterns, everything on our side is now in place to start migrating traffic once rate limits for liftwing are implemented. Marking stalled pending resolution of T413448: [5.2.2c Epic]: Support Higher Rate Limits for Lift Wing.

Change #1285307 had a related patch set uploaded (by Blake; author: Blake):

[operations/puppet@production] gateway-check.lua: Route articletopic through the REST gateway.

https://gerrit.wikimedia.org/r/1285307

Change #1285307 merged by Blake:

[operations/puppet@production] gateway-check.lua: Route articletopic through the REST gateway.

https://gerrit.wikimedia.org/r/1285307

All of the traffic for revscoring_articletopic has been migrated, and things look good. I don't really want to migrate many endpoints on a Friday, so we'll leave this to cook over the weekend, and I'll start migrating in larger batches on Monday :)

blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-articletopic:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
200 rest-gateway

Change #1285732 had a related patch set uploaded (by Blake; author: Blake):

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1285732

Change #1285732 merged by Blake:

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1285732

Blake changed the task status from Stalled to In Progress.Mon, May 11, 8:59 AM

Next set complete:

blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/outlink-topic-model:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"page_title":"Douglas_Adams","lang":"en"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-articlequality:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/articlequality:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/article-country:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"lang":"en","title":"Toni_Morrison"}'
200 rest-gateway

I'll monitor this, then migrate another batch later today.

Change #1285827 had a related patch set uploaded (by Blake; author: Blake):

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1285827

Change #1285827 merged by Blake:

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1285827

Next set complete:

blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-drafttopic:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-draftquality:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-damaging:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/enwiki-goodfaith:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/viwiki-reverted:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":12345}'
200 rest-gateway

I'll monitor this, and migrate the last set in 2 batches tomorrow.

Change #1286284 had a related patch set uploaded (by Blake; author: Blake):

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1286284

Change #1286284 merged by Blake:

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1286284

Next set complete:

blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/revertrisk-multilingual:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/revertrisk-language-agnostic:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/readability:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/langid:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"text":"Some sample text in any language that we want to identify"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/article-descriptions:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"lang":"en","title":"Clandonald","num_beams":2,"debug":1}'
200 rest-gateway

I'll monitor this, and migrate the last batch later today.

Change #1286298 had a related patch set uploaded (by Blake; author: Blake):

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1286298

Change #1286298 merged by Blake:

[operations/puppet@production] gateway-check.lua: Route some LiftWing endpoints through the REST gateway.

https://gerrit.wikimedia.org/r/1286298

Final set complete:

blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/reference-need:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":123456,"lang":"en"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/reference-risk:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"rev_id":1242378206,"lang":"en"}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -X POST -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/inference/v1/models/edit-check:predict" -H "Content-Type: application/json" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)" --data '{"instances":[{"original_text":"","modified_text":"this is a great example of work","check_type":"tone","lang":"en","page_title":"Test_Page"}]}'
200 rest-gateway
blake@cp6009:~$ curl -si -o /dev/null -w "%{http_code} %header{via}\n" -H "Host: api.wikimedia.org" "http://api.wikimedia.org:3128/service/lw/recommendation/api/v1/translation?source=en&target=fr&count=3&seed=Apple" -H "User-Agent: ServiceOpsTest (sre-serviceops@wikimedia.org)"
200 rest-gateway

I'll keep an eye on these, but things look good so far. I'll follow up with Claime when they're back to see if we can close this out.

Thanks to @Blake for powering through the migration. This is done, we can move on to T422937: Cleanup ATS configuration for API paths