Closed Bug 1677567 Opened 4 years ago Closed 4 years ago

Adding `rally-` prefix as acceptable schema prefix for pioneer/rally projects

Categories

(Data Platform and Tools Graveyard :: Operations, enhancement, P3)

enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: amiyaguchi, Assigned: whd)

References

Details

Attachments

(1 file)

Now that Rally is the new official name for what was known as pioneer-v2, new studies will want to be prefixed with the rally- prefix in mozilla-pipeline-schemas. The behavior should remain the same for existing pioneer- prefixed datasets. We would likely create projects with the rally- prefix too.

See https://github.com/mozilla-ion/ion-core-addon/issues/124 and https://docs.google.com/document/d/1_DNHPmFOdfPg_PLleenur185mcgVKUH8EGp4V-UeJZk/edit?ts=5faec577#heading=h.561oygfk6bnm (in particular, option (2)).

I think we should probably focus more on the migration to Glean.js, if this takes effort. We will migrate to Glean.js anyway, so we might as well save some bandwidth for us :)

Agreed, this is a forward facing bug. I do think it'll be confusing in the future to be calling everything in infrastructure code pioneer and everything externally rally.

Note also that we've embedded pioneer into schemas (i.e. pioneer_id) and so this change is going to require more than edge routing and project provisioning changes. I strongly agree that we should avoid making these changes until we've sorted everything else out.

Assignee: nobody → whd
Priority: -- → P3

I met with :amiyaguchi briefly to discuss the particulars of this work. We came up with the following:

  1. Pipeline family and associated infrastructure retain pioneer in their names
    i.e. pubsub topics, gcp projects, bigquery datasets, vpc-sc etc. will all stay the same. Since the application view into the data uses authorized views, the fact that the internal name of the datasets is pioneer will largely be invisible.
  2. The edge ROUTE_TABLE will be updated to route by namespace prefix "rally-" to the pioneer/rally environment
  3. Pioneer deployment of MPS schemas will include "rally-" in addition to "pioneer-"
    Likewise, data-shared will exclude "rally-".
  4. Operational schemas for payload_bytes_{decoded,error} will add a new optional rally_id field
    We're choosing to include both rally_id and the existing pioneer_id in operational tables to avoid major changes to infrastructure.
  5. Views into errors for any particular study will SELECT * EXCEPT to remove the client id field that isn't being used for a particular study
  6. Rally schemas will use rally_id instead of pioneer_id
  7. Any other application (beam) updates needed to support rally_id, as determined by :amiyaguchi
    This includes sorting out deletion-request semantics and behavior with :Dexter.
  8. Shredder will be updated to support rally_id
    This depends on sorting out application-level piece.
  9. Analysis project naming convention will be to changed to use rally instead of pioneer
    The convention for external partners is to include their organization in the namespace: rally-[org]-[study-id], and for project ids to be of the form moz-fx-data-rally-[truncated org]-[secrets.token_hex(2)]

(In reply to Wesley Dawson [:whd] from comment #4)

I met with :amiyaguchi briefly to discuss the particulars of this work. We came up with the following:

  1. Pipeline family and associated infrastructure retain pioneer in their names
    i.e. pubsub topics, gcp projects, bigquery datasets, vpc-sc etc. will all stay the same. Since the application view into the data uses authorized views, the fact that the internal name of the datasets is pioneer will largely be invisible.
  2. The edge ROUTE_TABLE will be updated to route by namespace prefix "rally-" to the pioneer/rally environment
  3. Pioneer deployment of MPS schemas will include "rally-" in addition to "pioneer-"
    Likewise, data-shared will exclude "rally-".
  4. Operational schemas for payload_bytes_{decoded,error} will add a new optional rally_id field
    We're choosing to include both rally_id and the existing pioneer_id in operational tables to avoid major changes to infrastructure.
  5. Views into errors for any particular study will SELECT * EXCEPT to remove the client id field that isn't being used for a particular study
  6. Rally schemas will use rally_id instead of pioneer_id
  7. Any other application (beam) updates needed to support rally_id, as determined by :amiyaguchi
    This includes sorting out deletion-request semantics and behavior with :Dexter.
  8. Shredder will be updated to support rally_id
    This depends on sorting out application-level piece.
  9. Analysis project naming convention will be to changed to use rally instead of pioneer
    The convention for external partners is to include their organization in the namespace: rally-[org]-[study-id], and for project ids to be of the form moz-fx-data-rally-[truncated org]-[secrets.token_hex(2)]

I'll be talking to Anthony later today/this week to go through this. Let's hold back any action/update until we sync up, please :)

Blocks: 1693305

NI: amiyaguchi and :Dexter for results of discussion, as I haven't made any progress here per comment #5.

Flags: needinfo?(amiyaguchi)
Flags: needinfo?(alessio.placitelli)

(In reply to Wesley Dawson [:whd] from comment #6)

NI: amiyaguchi and :Dexter for results of discussion, as I haven't made any progress here per comment #5.

I don't think that's required for the upcoming study we're planning to launch, since it will be using the legacy data collection mechanism.

Flags: needinfo?(alessio.placitelli)

I'm going to leave the NI on :amiyaguchi because I still need this information to proceed and I'd like to avoid a situation where this work becomes a last minute blocking request.

No longer blocks: 1693305

My understanding that the deadline for this is 2021-03-31, in order to support the implementation for bug 1675479. Please correct me if I'm wrong. I'm planning to make the mozilla-pipeline-schemas changes before making the decoder changes, which I am planning to start in the next two weeks.

Flags: needinfo?(amiyaguchi)

(In reply to Anthony Miyaguchi [:amiyaguchi] from comment #9)

My understanding that the deadline for this is 2021-03-31, in order to support the implementation for bug 1675479. Please correct me if I'm wrong. I'm planning to make the mozilla-pipeline-schemas changes before making the decoder changes, which I am planning to start in the next two weeks.

You are correct.

Blocks: 1697342

Alessio and I did meet on on 2021-01-21 regarding comment #5, the day after :whd and I discussed the operational piece regarding comment #4. I wish I had notes to recall the outcome of that discussion, but my current understanding is that this operational plan to bring the rally namespace online shouldn't conflict with the proposal/specification outlined in the Glean.js encryption document discussed and approved in bug 1675479.

Simply, the rally id will be in the client_info.client_id section and pulled out into a rally_id field in the metadata schema for operational purposes (errors, shredder, sample_id, etc). This will be visible to consumers as a primary client id field, in addition to the client_info.client_id field.

See Also: → 1698913

(In reply to Anthony Miyaguchi [:amiyaguchi] from comment #11)

Simply, the rally id will be in the client_info.client_id section and pulled out into a rally_id field in the metadata schema for operational purposes (errors, shredder, sample_id, etc). This will be visible to consumers as a primary client id field, in addition to the client_info.client_id field.

Consumers of the Glean SDK/Client can't set the client id manually. We will define a new metric, "rally_id", and send this with Glean pings coming from Rally.

Flags: needinfo?(amiyaguchi)

Will all pings, including things like the baseline ping, be guaranteed to include this "rally_id" metric? What is client_info.client_id set to if it's not set by the core addon? We need a stable client identifier for shredder to appropriately delete data; it would be useful to know what can be extracted during decoding re: bug 1697342.

Flags: needinfo?(amiyaguchi) → needinfo?(alessio.placitelli)

(In reply to Anthony Miyaguchi [:amiyaguchi] from comment #13)

Will all pings, including things like the baseline ping, be guaranteed to include this "rally_id" metric? What is client_info.client_id set to if it's not set by the core addon? We need a stable client identifier for shredder to appropriately delete data; it would be useful to know what can be extracted during decoding re: bug 1697342.

Glean.js doesn't currently define pings other than the deletion-request (so this is not an immediate problem). In the future, Rally will likely not be sending baseline pings or, if it ever will, it will include the "rally_id" metric.

Flags: needinfo?(alessio.placitelli)

https://github.com/mozilla-services/cloudops-infra/pull/2962 contains most of the ops changes codifying comment #4. I will plan to deploy the edge routing changes before the first rally- schemas are deployed (probably rally-debug from bug #1698913).

Shredder work exists in https://bugzilla.mozilla.org/show_bug.cgi?id=1697454 https://bugzilla.mozilla.org/show_bug.cgi?id=1698934 which :akomar will mostly be handling.

Per resolution of bug #1698913 this work is also complete.

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Product: Data Platform and Tools → Data Platform and Tools Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: