Closed Bug 1662868 Opened 4 years ago Closed 3 years ago

Bring the Rust language binding into the Glean repositories

Categories

(Data Platform and Tools :: Glean: SDK, task, P1)

task

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: chutten, Assigned: Dexter)

References

Details

(Whiteboard: [telemetry:fog:m6])

Attachments

(16 files, 8 obsolete files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

For the purposes of expediency many parts of the Rust Language Binding used by FOG are resident in mozilla-central. Now's the time to split off the pieces that are common across Rust consumers and factor them out into the glean repositories.

These pieces include:

  • The Rust metrics API generation template and outputter for glean_parser
  • The dispatcher and pre-init queue (see bug 1659109)
  • Off-thread init
  • Core metrics persistence
  • The global GLEAN object
  • The uploader interfaces (maybe not including the viaduct implementation)
  • Anything else in toolkit/components/glean/src/api.rs or toolkit/components/glean/api/src that looks relevant
    • Not IPC, though. Or the files that include the generated Rust APIs.
  • API documentation (not present in FOG, but you'll want to write it)
  • Tests (watch out for the ones that expect IPC to be present)

Ideally you'll also reconfigure FOG to use these crates and outputter templates as a part of this effort, but maybe we'll need a bug in Toolkit::Telemetry for that part.

Assignee: nobody → alessio.placitelli
Severity: -- → N/A
Status: NEW → ASSIGNED
Priority: -- → P1
Depends on: 1631768

Will leave this assigned to me, but the work is happening in other bugs.

Assignee: alessio.placitelli → nobody
Status: ASSIGNED → NEW
Summary: Bring the Rust language binding into the Glean repositories → [meta] Bring the Rust language binding into the Glean repositories
Assignee: nobody → alessio.placitelli
Summary: [meta] Bring the Rust language binding into the Glean repositories → Bring the Rust language binding into the Glean repositories

Depends on D97545

Depends on D97546

Depends on D97547

Attached file Bug 1662868 - fixme: various (obsolete) —

Depends on D97548

Depends on D97549

Attached file Bug 1662868 - test2 (obsolete) —

Depends on D97550

Attachment #9188779 - Attachment is obsolete: true
Attachment #9188780 - Attachment is obsolete: true
Attachment #9188781 - Attachment is obsolete: true
Attachment #9188782 - Attachment is obsolete: true
Attachment #9188783 - Attachment is obsolete: true
Attachment #9188784 - Attachment is obsolete: true
Attachment #9188785 - Attachment is obsolete: true

In addition to use the labeled type from the RLB, this defines
new sealed traits to be used in m-c for restricting the possible
types that are allowed to be labeled.

Depends on D98062

Depends on D98063

Depends on D98065

This implements the Glean ping uploader trait to provide Firefox-specific
Viaduct-based uploading capabilities. This is mostly what was in the
'register_uploader' function, with little changes to adjust it to the
new trait-based structure.

Depends on D98066

This is needed otherwise rusttests will hang: non-RLB types use
a different dispatcher, which locks up the execution of tests.
These tests are safe to be disabled, since we are not planning
on using these metrics before the RLB are fully back in m-c.

Depends on D98069

This will need to be removed before merging. It's only here for
convenience, to enable reviewers testing this stack locally.

Depends on D98071

Depends on: 1677455
Blocks: 1679835

Depends on D98299

Attachment #9189993 - Attachment is obsolete: true
Pushed by aplacitelli@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2f342eaea13e
Use the inherent crate in FOG and update Cargo.lock. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/6f4740140fe1
Use Glean's Boolean implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/82c6c1b7a24a
Use Glean's Counter implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/6a5e0257086c
Use Glean's String implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/f631a1d04d0a
Use Glean's Labeled implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/b727f5c658f5
Use Glean's General API. r=janerik
https://hg.mozilla.org/integration/autoland/rev/43245bce408a
Use Glean's Uuid implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/6e38bfcb8587
Use Glean's Ping type. r=janerik
https://hg.mozilla.org/integration/autoland/rev/98415dd8ee7e
Create a Viaduct-based Glean uploader. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/1803b5acd0f8
Remove unused or obsolete FOG code. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/be7a168ee182
Fixup the test utils to use the Glean RLB. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/33a5ec2378cd
Disable Rust tests on non-RLB types for FOG. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/21f7b675b3b9
Disable xpcshell tests on non-RLB types for FOG. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/99df04f55be1
Disable gtest on non-RLB types for FOG. r=janerik
https://hg.mozilla.org/integration/autoland/rev/fe1462617a8d
Vendor Glean 33.5.0. r=chutten
Blocks: 1680474

We will investigate the root cause of the TSAN problem in bug
1680474, but we need to land this massive stack first.

Depends on D98356

Flags: needinfo?(alessio.placitelli)
Pushed by aplacitelli@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e730de1209c7
Use the inherent crate in FOG and update Cargo.lock. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/2d0782cd3750
Use Glean's Boolean implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/f41cdd40b9d4
Use Glean's Counter implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/4a11c9af0b7f
Use Glean's String implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/c8888e6f5402
Use Glean's Labeled implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/f8c46a80f6a3
Use Glean's General API. r=janerik
https://hg.mozilla.org/integration/autoland/rev/17ed3d6338c9
Use Glean's Uuid implementation. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/9ee8a6765b48
Use Glean's Ping type. r=janerik
https://hg.mozilla.org/integration/autoland/rev/2f61e330b136
Create a Viaduct-based Glean uploader. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/ba78ebabdb7e
Remove unused or obsolete FOG code. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/16e411f7f49e
Fixup the test utils to use the Glean RLB. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/27fc2db19c00
Disable Rust tests on non-RLB types for FOG. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/db4c369f4e30
Disable xpcshell tests on non-RLB types for FOG. r=janerik,chutten
https://hg.mozilla.org/integration/autoland/rev/e4cc2a12b7fe
Disable gtest on non-RLB types for FOG. r=janerik
https://hg.mozilla.org/integration/autoland/rev/7f2e65c912fe
Vendor Glean 33.5.0. r=chutten
https://hg.mozilla.org/integration/autoland/rev/8fc94e3eefff
Add a TSAN suppression for the Glean dispatcher. r=decoder
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: