Closed Bug 1632150 Opened 5 years ago Closed 5 years ago

Implement the labeled boolean metric type for Project FOG

Categories

(Toolkit :: Telemetry, task, P1)

task

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox77 --- fixed

People

(Reporter: chutten, Assigned: janerik)

References

Details

(Whiteboard: [telemetry:fog:m3])

Attachments

(1 file)

Implement the labeled boolean metric for Project FOG.

Things you won't be needing at the moment, but might want to keep in mind:

  • in-tree usage Documentation (rustdoc is always appreciated)
  • Tests (bug 1627024)
  • IPC (that's coming in Milestone 4)
Assignee: nobody → jrediger

This turned out to be a bit more tricky than anticipated:

  • We want users to see the type this crate exposes, so we need to wrap
    it all.
  • We don't want to deal with validating labels here, so we need to
    delegate.
  • We need it to be thread-safe, so that we can generate globals.
    But we also don't want users to deal with locking.
  • We want a nice-ish API.

This now achieves all of this with just one little trick: a sealed
trait.
That way we can easily extend it to more types, without adding much more
code.

Note: It might have been nice to use the index operator ([]), but
that's defined by a trait in Rust and returns a reference to existing
data.
We thus can't use it and instead provide a simple get() method.

Pushed by jrediger@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/38245c49aea7 Implement the labeled boolean metric type for Project FOG. r=chutten,Dexter
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla77
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: