Closed Bug 1520740 Opened 6 years ago Closed 5 years ago

Lock down the 'baseline' ping (or limit the maximum number of data points)

Categories

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

enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: Dexter, Assigned: janerik)

References

Details

(Whiteboard: [telemetry:glean-rs:m11])

Attachments

(1 file)

After discussing bug 1508305 with Georg and Frank, we found that some application specific fields might be required to live in the baseline ping (think of the "release channel", which is only supported by some applications). Such fields are not provided out of the box, as they are not generally useful and only applicable to an handful of applications.

glean should provide a way for applications to add these new fields, with some caveats:

  • we should probably limit the number of "custom" fields to prevent overloading the baseline ping;
  • we should add a note that this invalidates the blanket "data-review" we had for the baseline ping (bug 1512938); new reviews will be required for the custom fields;
  • we should change the schemas accordingly.
Blocks: 1491345
Priority: -- → P3
Whiteboard: [telemetry:mobilesdk:m?]
Blocks: 1520741

I think our implementation supports this already, since the application can set send_in_pings to ['baseline']. But we don't limit the number of fields added to that ping or anything of that sort.

We could reserve the baseline category (which is distinct from the baseline ping) for glean itself to make reviews more obvious, i.e. if it's in the baseline category, it's part of glean and reviewed "centrally" for all apps. Otherwise, each app would need their own review for the metrics it adds.

I like what Mike suggests about leaving the baseline category as a reserved category.

I'm not sure about how the pipeline will like have different schema's for different applications when each client application adds its own metrics. I think we should consider how to keep the schema somewhat static across all apps for the baseline ping but I'm not sure yet how to best accomplish this. A somewhat flexible branch/section of the schema to hold an 'extras' dictionary for the app specific baseline metrics sounds reasonable, but I'm not sure if that approach is possible/practical or not.

I don't think a different schema or modifications to it will be required, since the schema doesn't explicitly mention specific metrics (except in the ping_info section, which doesn't come into play here).

Baseline ping would look like (in YAML here, but it's really JSON):

ping_info:
  ...
metrics:
  counter:
    baseline.sessions:
      42
    app.custom:  # <-- this is something the app added, because "baseline" is reserved
      3
Whiteboard: [telemetry:mobilesdk:m?] → [telemetry:mobilesdk:m7]
Whiteboard: [telemetry:mobilesdk:m7] → [telemetry:mobilesdk:m11]
Component: Telemetry → Glean: SDK
Product: Toolkit → Data Platform and Tools
Version: Trunk → unspecified
Whiteboard: [telemetry:mobilesdk:m11] → [telemetry:glean-rs:m?]
Whiteboard: [telemetry:glean-rs:m?] → [telemetry:glean-rs:m9]
Summary: Make it possible for glean consumers to extend the baseline ping → Lock down the 'baseline' ping (or limit the maximum number of data points)
Whiteboard: [telemetry:glean-rs:m9] → [telemetry:glean-rs:backlog]

We could use glinter for this.

Priority: P3 → P1
Whiteboard: [telemetry:glean-rs:backlog] → [telemetry:glean-rs:m11]
Assignee: nobody → jrediger
Attached file GitHub Pull Request
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: