Page MenuHomePhabricator

[EPIC] Update Metrics Platform Client Libraries to accept instrument name
Open, HighPublic

Description

Background

Data Products and Data Platform Engineering have arrived at an alternative to dynamically creating/destroying stream configs: We create a stream per Metrics Platform Base Schema and submit all Base-Schema-conforming events to those streams. Product Analysts will need to distinguish between events submitted by different instruments and so we will update the Base Schemas to include discriminating/filter fields (see T366802). We will also need to update the Metrics Platform Client Libraries so that they can accept values for those fields, i.e.

module mw {
  interface eventLog {
    submit( streamName: string, schemaID: string, event: Record<string, any> ): void;
  }
}

becomes:

module mw {
  interface metricsPlatform {
    submit( instrumentName: string, event: Record<string, any> ): void;
  }
}

and so that they know which stream to send the events to, e.g. the JavaScript and PHP Client Libraries may default to sending them to metrics_platform.all_instruments.web (say), whereas the Java Client Library may default to sending them to metrics_platform.all_instruments.app.

Requirements

  • Documentation

Event Timeline

@phuedx are there additional tasks we can/should include as part of this work based on this slack conversation and this other thread with @mpopov?

@phuedx are there additional tasks we can/should include as part of this work based on this slack conversation and this other thread with @mpopov?

Since we'll be looking at the Core/Base schema, we'll definitely have room to work on what's being discussed in the first thread, provided that @mpopov has the bandwidth for a consult.

Oh cool! Yeah I'd love to squeeze that into scope. Should I make a separate task?

Oh cool! Yeah I'd love to squeeze that into scope. Should I make a separate task?

<3 That'd be very helpful. Thanks!