Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a logging service with flagsetDeliveryMetricsExportedToBigQueryEnabled to enable/disable #5139

Merged
merged 16 commits into from
Aug 17, 2021

Conversation

zwu52
Copy link
Member

@zwu52 zwu52 commented Jul 10, 2021

SUBMIT ONLY After ariane/4082391 APPROVAL

Add a logging mechanism and a flag to Log client event.

  • These data will be piped to FM BigQuery Export.
  • Developers should only turn this on once acquired end user permissions.
  • Logs are batch sent every 24 hours with 3 max retries.

@changeset-bot
Copy link

changeset-bot bot commented Jul 10, 2021

🦋 Changeset detected

Latest commit: d073551

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@firebase/messaging Minor
firebase Minor
@firebase/rules-unit-testing Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@zwu52 zwu52 changed the title Create a logging service Create a logging service with flagsetDeliveryMetricsExportedToBigQueryEnabled to enable/disable Jul 10, 2021
@github-actions
Copy link
Contributor

github-actions bot commented Jul 10, 2021

Changeset File Check ⚠️

  • Warning: This PR modifies files in the following packages but they have not been included in the changeset file:

    • @firebase/messaging-exp
    • @firebase/messaging-types

    Make sure this was intentional.

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 10, 2021

Binary Size Report

Affected SDKs

  • @firebase/messaging

    Type Base (f825b1d) Head (461a399) Diff
    esm2017 26.2 kB 26.2 kB +41 B (+0.2%)
    main 34.9 kB 35.0 kB +41 B (+0.1%)
    module 34.4 kB 34.4 kB +41 B (+0.1%)
  • firebase

    Type Base (f825b1d) Head (461a399) Diff
    firebase-messaging.js 40.9 kB 41.0 kB +27 B (+0.1%)
    firebase.js 896 kB 896 kB +27 B (+0.0%)

Test Logs

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jul 10, 2021

Size Analysis Report

Affected Products

  • @firebase/messaging-exp

    • deleteToken

      Size Table

      TypeBase (f825b1d)Head (461a399)Diff
      size
      8.93 kB
      9.43 kB
      +503 B (+5.6%)
      size-with-ext-deps
      27.4 kB
      27.9 kB
      +507 B (+1.9%)

      Dependency Table

      TypeBase (f825b1d)Head (461a399)Diff
      functions

      27 dependencies

      arrayToBase64
      checkTokenDetails
      dbGet
      dbRemove
      dbSet
      deleteToken
      deleteToken$1
      deleteTokenInternal
      externalizePayload
      extractAppConfig
      getDbPromise
      getEndpoint
      getEventType
      getHeaders
      getKey
      getMissingValueError
      isConsoleMessage
      isWindowSupported
      logToScion
      messageEventListener
      migrateOldDatabase
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerDefaultSw
      registerMessagingInWindow
      requestDeleteToken
      

      28 dependencies

      _mergeStrings
      arrayToBase64
      checkTokenDetails
      dbGet
      dbRemove
      dbSet
      deleteToken
      deleteToken$1
      deleteTokenInternal
      externalizePayload
      extractAppConfig
      getDbPromise
      getEndpoint
      getEventType
      getHeaders
      getKey
      getMissingValueError
      isConsoleMessage
      isWindowSupported
      logToScion
      messageEventListener
      migrateOldDatabase
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerDefaultSw
      registerMessagingInWindow
      requestDeleteToken
      

      + _mergeStrings

      variables

      18 dependencies

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      DATABASE_NAME
      DATABASE_VERSION
      DEFAULT_SW_PATH
      DEFAULT_SW_SCOPE
      ENDPOINT
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      OBJECT_STORE_NAME
      OLD_DB_NAME
      OLD_DB_VERSION
      OLD_OBJECT_STORE_NAME
      WindowMessagingFactory
      dbPromise
      

      19 dependencies

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      DATABASE_NAME
      DATABASE_VERSION
      DEFAULT_SW_PATH
      DEFAULT_SW_SCOPE
      ENDPOINT
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      MessageType$1
      OBJECT_STORE_NAME
      OLD_DB_NAME
      OLD_DB_VERSION
      OLD_OBJECT_STORE_NAME
      WindowMessagingFactory
      dbPromise
      

      + MessageType$1

    • getMessaging

      Size Table

      TypeBase (f825b1d)Head (461a399)Diff
      size
      5.09 kB
      5.59 kB
      +501 B (+9.8%)
      size-with-ext-deps
      23.5 kB
      24.0 kB
      +507 B (+2.2%)

      Dependency Table

      TypeBase (f825b1d)Head (461a399)Diff
      functions

      13 dependencies

      externalizePayload
      extractAppConfig
      getEventType
      getMessaging
      getMissingValueError
      isConsoleMessage
      isWindowSupported
      logToScion
      messageEventListener
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerMessagingInWindow
      

      14 dependencies

      _mergeStrings
      externalizePayload
      extractAppConfig
      getEventType
      getMessaging
      getMissingValueError
      isConsoleMessage
      isWindowSupported
      logToScion
      messageEventListener
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerMessagingInWindow
      

      + _mergeStrings

      variables

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      WindowMessagingFactory
      

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      MessageType$1
      WindowMessagingFactory
      

      + MessageType$1

    • getToken

      Size Table

      TypeBase (f825b1d)Head (461a399)Diff
      size
      12.0 kB
      12.5 kB
      +506 B (+4.2%)
      size-with-ext-deps
      30.5 kB
      31.0 kB
      +507 B (+1.7%)

      Dependency Table

      TypeBase (f825b1d)Head (461a399)Diff
      functions

      38 dependencies

      arrayToBase64
      base64ToArray
      checkTokenDetails
      dbGet
      dbRemove
      dbSet
      deleteTokenInternal
      externalizePayload
      extractAppConfig
      getBody
      getDbPromise
      getEndpoint
      getEventType
      getHeaders
      getKey
      getMissingValueError
      getNewToken
      getPushSubscription
      getToken
      getToken$1
      getTokenInternal
      isConsoleMessage
      isTokenValid
      isWindowSupported
      logToScion
      messageEventListener
      migrateOldDatabase
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerDefaultSw
      registerMessagingInWindow
      requestDeleteToken
      requestGetToken
      requestUpdateToken
      updateSwReg
      updateToken
      updateVapidKey
      

      39 dependencies

      _mergeStrings
      arrayToBase64
      base64ToArray
      checkTokenDetails
      dbGet
      dbRemove
      dbSet
      deleteTokenInternal
      externalizePayload
      extractAppConfig
      getBody
      getDbPromise
      getEndpoint
      getEventType
      getHeaders
      getKey
      getMissingValueError
      getNewToken
      getPushSubscription
      getToken
      getToken$1
      getTokenInternal
      isConsoleMessage
      isTokenValid
      isWindowSupported
      logToScion
      messageEventListener
      migrateOldDatabase
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerDefaultSw
      registerMessagingInWindow
      requestDeleteToken
      requestGetToken
      requestUpdateToken
      updateSwReg
      updateToken
      updateVapidKey
      

      + _mergeStrings

      variables

      20 dependencies

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      DATABASE_NAME
      DATABASE_VERSION
      DEFAULT_SW_PATH
      DEFAULT_SW_SCOPE
      DEFAULT_VAPID_KEY
      ENDPOINT
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      OBJECT_STORE_NAME
      OLD_DB_NAME
      OLD_DB_VERSION
      OLD_OBJECT_STORE_NAME
      TOKEN_EXPIRATION_MS
      WindowMessagingFactory
      dbPromise
      

      21 dependencies

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      DATABASE_NAME
      DATABASE_VERSION
      DEFAULT_SW_PATH
      DEFAULT_SW_SCOPE
      DEFAULT_VAPID_KEY
      ENDPOINT
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      MessageType$1
      OBJECT_STORE_NAME
      OLD_DB_NAME
      OLD_DB_VERSION
      OLD_OBJECT_STORE_NAME
      TOKEN_EXPIRATION_MS
      WindowMessagingFactory
      dbPromise
      

      + MessageType$1

    • isSupported

      Size Table

      TypeBase (f825b1d)Head (461a399)Diff
      size
      4.97 kB
      5.47 kB
      +501 B (+10.1%)
      size-with-ext-deps
      23.3 kB
      23.8 kB
      +507 B (+2.2%)

      Dependency Table

      TypeBase (f825b1d)Head (461a399)Diff
      functions

      12 dependencies

      externalizePayload
      extractAppConfig
      getEventType
      getMissingValueError
      isConsoleMessage
      isSupported
      logToScion
      messageEventListener
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerMessagingInWindow
      

      13 dependencies

      _mergeStrings
      externalizePayload
      extractAppConfig
      getEventType
      getMissingValueError
      isConsoleMessage
      isSupported
      logToScion
      messageEventListener
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerMessagingInWindow
      

      + _mergeStrings

      variables

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      WindowMessagingFactory
      

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      MessageType$1
      WindowMessagingFactory
      

      + MessageType$1

    • onMessage

      Size Table

      TypeBase (f825b1d)Head (461a399)Diff
      size
      5.16 kB
      5.66 kB
      +501 B (+9.7%)
      size-with-ext-deps
      23.5 kB
      24.0 kB
      +507 B (+2.2%)

      Dependency Table

      TypeBase (f825b1d)Head (461a399)Diff
      functions

      14 dependencies

      externalizePayload
      extractAppConfig
      getEventType
      getMissingValueError
      isConsoleMessage
      isWindowSupported
      logToScion
      messageEventListener
      onMessage
      onMessage$1
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerMessagingInWindow
      

      15 dependencies

      _mergeStrings
      externalizePayload
      extractAppConfig
      getEventType
      getMissingValueError
      isConsoleMessage
      isWindowSupported
      logToScion
      messageEventListener
      onMessage
      onMessage$1
      propagateDataPayload
      propagateFcmOptions
      propagateNotificationPayload
      registerMessagingInWindow
      

      + _mergeStrings

      variables

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      WindowMessagingFactory
      

      CONSOLE_CAMPAIGN_ANALYTICS_ENABLED
      CONSOLE_CAMPAIGN_ID
      CONSOLE_CAMPAIGN_NAME
      CONSOLE_CAMPAIGN_TIME
      ERROR_FACTORY
      ERROR_MAP
      MessageType
      MessageType$1
      WindowMessagingFactory
      

      + MessageType$1

.changeset/bright-clouds-pretend.md Show resolved Hide resolved
.changeset/quiet-moles-grab.md Outdated Show resolved Hide resolved
packages-exp/messaging-exp/src/api.ts Show resolved Hide resolved
}

if (!messaging.logEvents.length) {
return _processQueue(messaging, LOG_INTERVAL_IN_MS);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it not use offsetInMs? Maybe some comments can help clarify.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about executeAfterMsElapsed or executeAfterMs but they don't have a preference. So made a comment. Let me know if you have any suggestion

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant to ask if it should use the argument offsetInMs instead of using this constant.

packages-exp/messaging-exp/src/interfaces/logging-types.ts Outdated Show resolved Hide resolved
packages-exp/messaging-exp/src/interfaces/logging-types.ts Outdated Show resolved Hide resolved
@Feiyang1 Feiyang1 assigned zwu52 and unassigned Feiyang1 Jul 21, 2021
@zwu52 zwu52 requested a review from Feiyang1 August 3, 2021 22:13
@zwu52 zwu52 assigned Feiyang1 and unassigned zwu52 Aug 3, 2021
@Feiyang1
Copy link
Member

Thanks for addressing most of my comments. However, some of them are resolved without any comments, nor did I see any related code changes, so I'm not sure if there are pending changes you haven't committed, or you decided to not accept them, which is totally fine.

Can you please reply to those comments to clarify?

@Feiyang1 Feiyang1 assigned zwu52 and unassigned Feiyang1 Aug 10, 2021
@zwu52 zwu52 assigned Feiyang1 and unassigned zwu52 Aug 11, 2021
Copy link
Member

@Feiyang1 Feiyang1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved pending CI and one question

@Feiyang1 Feiyang1 assigned zwu52 and unassigned Feiyang1 Aug 12, 2021
@zwu52 zwu52 merged commit d0710d5 into master Aug 17, 2021
@zwu52 zwu52 deleted the js-fcm-firelog branch August 17, 2021 19:22
@google-oss-bot google-oss-bot mentioned this pull request Aug 17, 2021
@zwu52 zwu52 restored the js-fcm-firelog branch August 20, 2021 17:55
@firebase firebase locked and limited conversation to collaborators Sep 17, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants