Skip to content

Add tracking events for the dependency proxy

David Fernandez requested to merge 238056-snowplow-events into master

🥞 Context

The dependency proxy is used to primarily cache the objects (manifests and blobs) from DockerHub (pull-through cache).

This use is currently not tracked at all.

#238056 aims to fill that gap so that we can learn more on how is the dependency proxy used.

What does this MR do?

  • Adds snowplow events in the two main GET requests.
  • We have different events if the object is pulled from the cache or DockerHub.
    • This means that the services that get or read objects from the cache will need to return an addition information: if the object returned is coming from the external world of the cache.
  • Update the related specs.

📷 Screenshots or Screencasts (strongly suggested)

n / a

📏 Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • [-] ~~Label as security and @ mention @gitlab-com/gl-security/appsec~~
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team

🔍 Snowplow micro output

For pull_blob

Raw json
[
  {
    "rawEvent": {
      "api": {
        "vendor": "com.snowplowanalytics.snowplow",
        "version": "tp1"
      },
      "parameters": {
        "e": "se",
        "eid": "dae61d8b-cfc2-4342-a371-c3bb9f56b48c",
        "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC01IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6ImRldmVsb3BtZW50Iiwic291cmNlIjoiZ2l0bGFiLXJhaWxzIiwicGxhbiI6ImRlZmF1bHQiLCJleHRyYSI6e319fV19",
        "tna": "gl",
        "stm": "1626278221543",
        "tv": "rb-0.6.1",
        "se_ac": "pull_blob",
        "se_ca": "Groups::DependencyProxyForContainersController",
        "p": "srv",
        "dtm": "1626278221542"
      },
      "contentType": null,
      "source": {
        "name": "ssc-2.3.0-stdout$",
        "encoding": "UTF-8",
        "hostname": "localhost"
      },
      "context": {
        "timestamp": "2021-07-14T15:57:01.572Z",
        "ipAddress": "172.17.0.1",
        "useragent": "Ruby",
        "refererUri": null,
        "headers": [
          "Timeout-Access: <function1>",
          "Accept-Encoding: gzip, deflate;q=0.6, identity;q=0.3",
          "Accept: */*",
          "User-Agent: Ruby",
          "Connection: close",
          "Host: localhost:9090"
        ],
        "userId": "f075c87a-51bf-4ff1-81e4-6e68d8896640"
      }
    },
    "eventType": "struct",
    "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
    "contexts": [
      "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5"
    ],
    "event": {
      "app_id": null,
      "platform": "srv",
      "etl_tstamp": "2021-07-14T15:57:01.574Z",
      "collector_tstamp": "2021-07-14T15:57:01.572Z",
      "dvce_created_tstamp": "2021-07-14T15:57:01.542Z",
      "event": "struct",
      "event_id": "dae61d8b-cfc2-4342-a371-c3bb9f56b48c",
      "txn_id": null,
      "name_tracker": "gl",
      "v_tracker": "rb-0.6.1",
      "v_collector": "ssc-2.3.0-stdout$",
      "v_etl": "snowplow-micro-1.1.3-rc3-common-2.0.1",
      "user_id": null,
      "user_ipaddress": "172.17.0.1",
      "user_fingerprint": null,
      "domain_userid": null,
      "domain_sessionidx": null,
      "network_userid": "f075c87a-51bf-4ff1-81e4-6e68d8896640",
      "geo_country": null,
      "geo_region": null,
      "geo_city": null,
      "geo_zipcode": null,
      "geo_latitude": null,
      "geo_longitude": null,
      "geo_region_name": null,
      "ip_isp": null,
      "ip_organization": null,
      "ip_domain": null,
      "ip_netspeed": null,
      "page_url": null,
      "page_title": null,
      "page_referrer": null,
      "page_urlscheme": null,
      "page_urlhost": null,
      "page_urlport": null,
      "page_urlpath": null,
      "page_urlquery": null,
      "page_urlfragment": null,
      "refr_urlscheme": null,
      "refr_urlhost": null,
      "refr_urlport": null,
      "refr_urlpath": null,
      "refr_urlquery": null,
      "refr_urlfragment": null,
      "refr_medium": null,
      "refr_source": null,
      "refr_term": null,
      "mkt_medium": null,
      "mkt_source": null,
      "mkt_term": null,
      "mkt_content": null,
      "mkt_campaign": null,
      "contexts": {
        "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
        "data": [
          {
            "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5",
            "data": {
              "environment": "development",
              "source": "gitlab-rails",
              "plan": "default",
              "extra": {}
            }
          }
        ]
      },
      "se_category": "Groups::DependencyProxyForContainersController",
      "se_action": "pull_blob",
      "se_label": null,
      "se_property": null,
      "se_value": null,
      "unstruct_event": null,
      "tr_orderid": null,
      "tr_affiliation": null,
      "tr_total": null,
      "tr_tax": null,
      "tr_shipping": null,
      "tr_city": null,
      "tr_state": null,
      "tr_country": null,
      "ti_orderid": null,
      "ti_sku": null,
      "ti_name": null,
      "ti_category": null,
      "ti_price": null,
      "ti_quantity": null,
      "pp_xoffset_min": null,
      "pp_xoffset_max": null,
      "pp_yoffset_min": null,
      "pp_yoffset_max": null,
      "useragent": "Ruby",
      "br_name": null,
      "br_family": null,
      "br_version": null,
      "br_type": null,
      "br_renderengine": null,
      "br_lang": null,
      "br_features_pdf": null,
      "br_features_flash": null,
      "br_features_java": null,
      "br_features_director": null,
      "br_features_quicktime": null,
      "br_features_realplayer": null,
      "br_features_windowsmedia": null,
      "br_features_gears": null,
      "br_features_silverlight": null,
      "br_cookies": null,
      "br_colordepth": null,
      "br_viewwidth": null,
      "br_viewheight": null,
      "os_name": null,
      "os_family": null,
      "os_manufacturer": null,
      "os_timezone": null,
      "dvce_type": null,
      "dvce_ismobile": null,
      "dvce_screenwidth": null,
      "dvce_screenheight": null,
      "doc_charset": null,
      "doc_width": null,
      "doc_height": null,
      "tr_currency": null,
      "tr_total_base": null,
      "tr_tax_base": null,
      "tr_shipping_base": null,
      "ti_currency": null,
      "ti_price_base": null,
      "base_currency": null,
      "geo_timezone": null,
      "mkt_clickid": null,
      "mkt_network": null,
      "etl_tags": null,
      "dvce_sent_tstamp": "2021-07-14T15:57:01.543Z",
      "refr_domain_userid": null,
      "refr_dvce_tstamp": null,
      "derived_contexts": {},
      "domain_sessionid": null,
      "derived_tstamp": "2021-07-14T15:57:01.571Z",
      "event_vendor": "com.google.analytics",
      "event_name": "event",
      "event_format": "jsonschema",
      "event_version": "1-0-0",
      "event_fingerprint": null,
      "true_tstamp": null
    }
  }
]

For pull_blob_from_cache

Raw json
[
  {
    "rawEvent": {
      "api": {
        "vendor": "com.snowplowanalytics.snowplow",
        "version": "tp1"
      },
      "parameters": {
        "e": "se",
        "eid": "d16ca31a-3525-45dc-9433-0d1325533352",
        "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC01IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6ImRldmVsb3BtZW50Iiwic291cmNlIjoiZ2l0bGFiLXJhaWxzIiwicGxhbiI6ImRlZmF1bHQiLCJleHRyYSI6e319fV19",
        "tna": "gl",
        "stm": "1626278496903",
        "tv": "rb-0.6.1",
        "se_ac": "pull_blob_from_cache",
        "se_ca": "Groups::DependencyProxyForContainersController",
        "p": "srv",
        "dtm": "1626278496902"
      },
      "contentType": null,
      "source": {
        "name": "ssc-2.3.0-stdout$",
        "encoding": "UTF-8",
        "hostname": "localhost"
      },
      "context": {
        "timestamp": "2021-07-14T16:01:36.936Z",
        "ipAddress": "172.17.0.1",
        "useragent": "Ruby",
        "refererUri": null,
        "headers": [
          "Timeout-Access: <function1>",
          "Accept-Encoding: gzip, deflate;q=0.6, identity;q=0.3",
          "Accept: */*",
          "User-Agent: Ruby",
          "Connection: close",
          "Host: localhost:9090"
        ],
        "userId": "aaace5b1-64b4-43de-8dca-6b6433553de5"
      }
    },
    "eventType": "struct",
    "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
    "contexts": [
      "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5"
    ],
    "event": {
      "app_id": null,
      "platform": "srv",
      "etl_tstamp": "2021-07-14T16:01:36.938Z",
      "collector_tstamp": "2021-07-14T16:01:36.936Z",
      "dvce_created_tstamp": "2021-07-14T16:01:36.902Z",
      "event": "struct",
      "event_id": "d16ca31a-3525-45dc-9433-0d1325533352",
      "txn_id": null,
      "name_tracker": "gl",
      "v_tracker": "rb-0.6.1",
      "v_collector": "ssc-2.3.0-stdout$",
      "v_etl": "snowplow-micro-1.1.3-rc3-common-2.0.1",
      "user_id": null,
      "user_ipaddress": "172.17.0.1",
      "user_fingerprint": null,
      "domain_userid": null,
      "domain_sessionidx": null,
      "network_userid": "aaace5b1-64b4-43de-8dca-6b6433553de5",
      "geo_country": null,
      "geo_region": null,
      "geo_city": null,
      "geo_zipcode": null,
      "geo_latitude": null,
      "geo_longitude": null,
      "geo_region_name": null,
      "ip_isp": null,
      "ip_organization": null,
      "ip_domain": null,
      "ip_netspeed": null,
      "page_url": null,
      "page_title": null,
      "page_referrer": null,
      "page_urlscheme": null,
      "page_urlhost": null,
      "page_urlport": null,
      "page_urlpath": null,
      "page_urlquery": null,
      "page_urlfragment": null,
      "refr_urlscheme": null,
      "refr_urlhost": null,
      "refr_urlport": null,
      "refr_urlpath": null,
      "refr_urlquery": null,
      "refr_urlfragment": null,
      "refr_medium": null,
      "refr_source": null,
      "refr_term": null,
      "mkt_medium": null,
      "mkt_source": null,
      "mkt_term": null,
      "mkt_content": null,
      "mkt_campaign": null,
      "contexts": {
        "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
        "data": [
          {
            "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5",
            "data": {
              "environment": "development",
              "source": "gitlab-rails",
              "plan": "default",
              "extra": {}
            }
          }
        ]
      },
      "se_category": "Groups::DependencyProxyForContainersController",
      "se_action": "pull_blob_from_cache",
      "se_label": null,
      "se_property": null,
      "se_value": null,
      "unstruct_event": null,
      "tr_orderid": null,
      "tr_affiliation": null,
      "tr_total": null,
      "tr_tax": null,
      "tr_shipping": null,
      "tr_city": null,
      "tr_state": null,
      "tr_country": null,
      "ti_orderid": null,
      "ti_sku": null,
      "ti_name": null,
      "ti_category": null,
      "ti_price": null,
      "ti_quantity": null,
      "pp_xoffset_min": null,
      "pp_xoffset_max": null,
      "pp_yoffset_min": null,
      "pp_yoffset_max": null,
      "useragent": "Ruby",
      "br_name": null,
      "br_family": null,
      "br_version": null,
      "br_type": null,
      "br_renderengine": null,
      "br_lang": null,
      "br_features_pdf": null,
      "br_features_flash": null,
      "br_features_java": null,
      "br_features_director": null,
      "br_features_quicktime": null,
      "br_features_realplayer": null,
      "br_features_windowsmedia": null,
      "br_features_gears": null,
      "br_features_silverlight": null,
      "br_cookies": null,
      "br_colordepth": null,
      "br_viewwidth": null,
      "br_viewheight": null,
      "os_name": null,
      "os_family": null,
      "os_manufacturer": null,
      "os_timezone": null,
      "dvce_type": null,
      "dvce_ismobile": null,
      "dvce_screenwidth": null,
      "dvce_screenheight": null,
      "doc_charset": null,
      "doc_width": null,
      "doc_height": null,
      "tr_currency": null,
      "tr_total_base": null,
      "tr_tax_base": null,
      "tr_shipping_base": null,
      "ti_currency": null,
      "ti_price_base": null,
      "base_currency": null,
      "geo_timezone": null,
      "mkt_clickid": null,
      "mkt_network": null,
      "etl_tags": null,
      "dvce_sent_tstamp": "2021-07-14T16:01:36.903Z",
      "refr_domain_userid": null,
      "refr_dvce_tstamp": null,
      "derived_contexts": {},
      "domain_sessionid": null,
      "derived_tstamp": "2021-07-14T16:01:36.935Z",
      "event_vendor": "com.google.analytics",
      "event_name": "event",
      "event_format": "jsonschema",
      "event_version": "1-0-0",
      "event_fingerprint": null,
      "true_tstamp": null
    }
  }
]

For pull_manifest

Raw json
[
  {
    "rawEvent": {
      "api": {
        "vendor": "com.snowplowanalytics.snowplow",
        "version": "tp1"
      },
      "parameters": {
        "e": "se",
        "eid": "566b7599-42a1-48c7-8475-314a286b8734",
        "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC01IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6ImRldmVsb3BtZW50Iiwic291cmNlIjoiZ2l0bGFiLXJhaWxzIiwicGxhbiI6ImRlZmF1bHQiLCJleHRyYSI6e319fV19",
        "tna": "gl",
        "stm": "1626278552613",
        "tv": "rb-0.6.1",
        "se_ac": "pull_manifest",
        "se_ca": "Groups::DependencyProxyForContainersController",
        "p": "srv",
        "dtm": "1626278552612"
      },
      "contentType": null,
      "source": {
        "name": "ssc-2.3.0-stdout$",
        "encoding": "UTF-8",
        "hostname": "localhost"
      },
      "context": {
        "timestamp": "2021-07-14T16:02:32.642Z",
        "ipAddress": "172.17.0.1",
        "useragent": "Ruby",
        "refererUri": null,
        "headers": [
          "Timeout-Access: <function1>",
          "Accept-Encoding: gzip, deflate;q=0.6, identity;q=0.3",
          "Accept: */*",
          "User-Agent: Ruby",
          "Connection: close",
          "Host: localhost:9090"
        ],
        "userId": "9d774d49-55c7-42fd-bb68-1e2f8dd0701e"
      }
    },
    "eventType": "struct",
    "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
    "contexts": [
      "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5"
    ],
    "event": {
      "app_id": null,
      "platform": "srv",
      "etl_tstamp": "2021-07-14T16:02:32.643Z",
      "collector_tstamp": "2021-07-14T16:02:32.642Z",
      "dvce_created_tstamp": "2021-07-14T16:02:32.612Z",
      "event": "struct",
      "event_id": "566b7599-42a1-48c7-8475-314a286b8734",
      "txn_id": null,
      "name_tracker": "gl",
      "v_tracker": "rb-0.6.1",
      "v_collector": "ssc-2.3.0-stdout$",
      "v_etl": "snowplow-micro-1.1.3-rc3-common-2.0.1",
      "user_id": null,
      "user_ipaddress": "172.17.0.1",
      "user_fingerprint": null,
      "domain_userid": null,
      "domain_sessionidx": null,
      "network_userid": "9d774d49-55c7-42fd-bb68-1e2f8dd0701e",
      "geo_country": null,
      "geo_region": null,
      "geo_city": null,
      "geo_zipcode": null,
      "geo_latitude": null,
      "geo_longitude": null,
      "geo_region_name": null,
      "ip_isp": null,
      "ip_organization": null,
      "ip_domain": null,
      "ip_netspeed": null,
      "page_url": null,
      "page_title": null,
      "page_referrer": null,
      "page_urlscheme": null,
      "page_urlhost": null,
      "page_urlport": null,
      "page_urlpath": null,
      "page_urlquery": null,
      "page_urlfragment": null,
      "refr_urlscheme": null,
      "refr_urlhost": null,
      "refr_urlport": null,
      "refr_urlpath": null,
      "refr_urlquery": null,
      "refr_urlfragment": null,
      "refr_medium": null,
      "refr_source": null,
      "refr_term": null,
      "mkt_medium": null,
      "mkt_source": null,
      "mkt_term": null,
      "mkt_content": null,
      "mkt_campaign": null,
      "contexts": {
        "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
        "data": [
          {
            "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5",
            "data": {
              "environment": "development",
              "source": "gitlab-rails",
              "plan": "default",
              "extra": {}
            }
          }
        ]
      },
      "se_category": "Groups::DependencyProxyForContainersController",
      "se_action": "pull_manifest",
      "se_label": null,
      "se_property": null,
      "se_value": null,
      "unstruct_event": null,
      "tr_orderid": null,
      "tr_affiliation": null,
      "tr_total": null,
      "tr_tax": null,
      "tr_shipping": null,
      "tr_city": null,
      "tr_state": null,
      "tr_country": null,
      "ti_orderid": null,
      "ti_sku": null,
      "ti_name": null,
      "ti_category": null,
      "ti_price": null,
      "ti_quantity": null,
      "pp_xoffset_min": null,
      "pp_xoffset_max": null,
      "pp_yoffset_min": null,
      "pp_yoffset_max": null,
      "useragent": "Ruby",
      "br_name": null,
      "br_family": null,
      "br_version": null,
      "br_type": null,
      "br_renderengine": null,
      "br_lang": null,
      "br_features_pdf": null,
      "br_features_flash": null,
      "br_features_java": null,
      "br_features_director": null,
      "br_features_quicktime": null,
      "br_features_realplayer": null,
      "br_features_windowsmedia": null,
      "br_features_gears": null,
      "br_features_silverlight": null,
      "br_cookies": null,
      "br_colordepth": null,
      "br_viewwidth": null,
      "br_viewheight": null,
      "os_name": null,
      "os_family": null,
      "os_manufacturer": null,
      "os_timezone": null,
      "dvce_type": null,
      "dvce_ismobile": null,
      "dvce_screenwidth": null,
      "dvce_screenheight": null,
      "doc_charset": null,
      "doc_width": null,
      "doc_height": null,
      "tr_currency": null,
      "tr_total_base": null,
      "tr_tax_base": null,
      "tr_shipping_base": null,
      "ti_currency": null,
      "ti_price_base": null,
      "base_currency": null,
      "geo_timezone": null,
      "mkt_clickid": null,
      "mkt_network": null,
      "etl_tags": null,
      "dvce_sent_tstamp": "2021-07-14T16:02:32.613Z",
      "refr_domain_userid": null,
      "refr_dvce_tstamp": null,
      "derived_contexts": {},
      "domain_sessionid": null,
      "derived_tstamp": "2021-07-14T16:02:32.641Z",
      "event_vendor": "com.google.analytics",
      "event_name": "event",
      "event_format": "jsonschema",
      "event_version": "1-0-0",
      "event_fingerprint": null,
      "true_tstamp": null
    }
  }
]

For pull_manifest_from_cache

Raw json
[
  {
    "rawEvent": {
      "api": {
        "vendor": "com.snowplowanalytics.snowplow",
        "version": "tp1"
      },
      "parameters": {
        "e": "se",
        "eid": "0e338658-44c5-42bd-bde5-aea7b296f52c",
        "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMC01IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6ImRldmVsb3BtZW50Iiwic291cmNlIjoiZ2l0bGFiLXJhaWxzIiwicGxhbiI6ImRlZmF1bHQiLCJleHRyYSI6e319fV19",
        "tna": "gl",
        "stm": "1626278621836",
        "tv": "rb-0.6.1",
        "se_ac": "pull_manifest_from_cache",
        "se_ca": "Groups::DependencyProxyForContainersController",
        "p": "srv",
        "dtm": "1626278621835"
      },
      "contentType": null,
      "source": {
        "name": "ssc-2.3.0-stdout$",
        "encoding": "UTF-8",
        "hostname": "localhost"
      },
      "context": {
        "timestamp": "2021-07-14T16:03:41.873Z",
        "ipAddress": "172.17.0.1",
        "useragent": "Ruby",
        "refererUri": null,
        "headers": [
          "Timeout-Access: <function1>",
          "Accept-Encoding: gzip, deflate;q=0.6, identity;q=0.3",
          "Accept: */*",
          "User-Agent: Ruby",
          "Connection: close",
          "Host: localhost:9090"
        ],
        "userId": "031ad55a-5131-4fbb-b5c0-792a0133c5c3"
      }
    },
    "eventType": "struct",
    "schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
    "contexts": [
      "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5"
    ],
    "event": {
      "app_id": null,
      "platform": "srv",
      "etl_tstamp": "2021-07-14T16:03:41.875Z",
      "collector_tstamp": "2021-07-14T16:03:41.873Z",
      "dvce_created_tstamp": "2021-07-14T16:03:41.835Z",
      "event": "struct",
      "event_id": "0e338658-44c5-42bd-bde5-aea7b296f52c",
      "txn_id": null,
      "name_tracker": "gl",
      "v_tracker": "rb-0.6.1",
      "v_collector": "ssc-2.3.0-stdout$",
      "v_etl": "snowplow-micro-1.1.3-rc3-common-2.0.1",
      "user_id": null,
      "user_ipaddress": "172.17.0.1",
      "user_fingerprint": null,
      "domain_userid": null,
      "domain_sessionidx": null,
      "network_userid": "031ad55a-5131-4fbb-b5c0-792a0133c5c3",
      "geo_country": null,
      "geo_region": null,
      "geo_city": null,
      "geo_zipcode": null,
      "geo_latitude": null,
      "geo_longitude": null,
      "geo_region_name": null,
      "ip_isp": null,
      "ip_organization": null,
      "ip_domain": null,
      "ip_netspeed": null,
      "page_url": null,
      "page_title": null,
      "page_referrer": null,
      "page_urlscheme": null,
      "page_urlhost": null,
      "page_urlport": null,
      "page_urlpath": null,
      "page_urlquery": null,
      "page_urlfragment": null,
      "refr_urlscheme": null,
      "refr_urlhost": null,
      "refr_urlport": null,
      "refr_urlpath": null,
      "refr_urlquery": null,
      "refr_urlfragment": null,
      "refr_medium": null,
      "refr_source": null,
      "refr_term": null,
      "mkt_medium": null,
      "mkt_source": null,
      "mkt_term": null,
      "mkt_content": null,
      "mkt_campaign": null,
      "contexts": {
        "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
        "data": [
          {
            "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-0-5",
            "data": {
              "environment": "development",
              "source": "gitlab-rails",
              "plan": "default",
              "extra": {}
            }
          }
        ]
      },
      "se_category": "Groups::DependencyProxyForContainersController",
      "se_action": "pull_manifest_from_cache",
      "se_label": null,
      "se_property": null,
      "se_value": null,
      "unstruct_event": null,
      "tr_orderid": null,
      "tr_affiliation": null,
      "tr_total": null,
      "tr_tax": null,
      "tr_shipping": null,
      "tr_city": null,
      "tr_state": null,
      "tr_country": null,
      "ti_orderid": null,
      "ti_sku": null,
      "ti_name": null,
      "ti_category": null,
      "ti_price": null,
      "ti_quantity": null,
      "pp_xoffset_min": null,
      "pp_xoffset_max": null,
      "pp_yoffset_min": null,
      "pp_yoffset_max": null,
      "useragent": "Ruby",
      "br_name": null,
      "br_family": null,
      "br_version": null,
      "br_type": null,
      "br_renderengine": null,
      "br_lang": null,
      "br_features_pdf": null,
      "br_features_flash": null,
      "br_features_java": null,
      "br_features_director": null,
      "br_features_quicktime": null,
      "br_features_realplayer": null,
      "br_features_windowsmedia": null,
      "br_features_gears": null,
      "br_features_silverlight": null,
      "br_cookies": null,
      "br_colordepth": null,
      "br_viewwidth": null,
      "br_viewheight": null,
      "os_name": null,
      "os_family": null,
      "os_manufacturer": null,
      "os_timezone": null,
      "dvce_type": null,
      "dvce_ismobile": null,
      "dvce_screenwidth": null,
      "dvce_screenheight": null,
      "doc_charset": null,
      "doc_width": null,
      "doc_height": null,
      "tr_currency": null,
      "tr_total_base": null,
      "tr_tax_base": null,
      "tr_shipping_base": null,
      "ti_currency": null,
      "ti_price_base": null,
      "base_currency": null,
      "geo_timezone": null,
      "mkt_clickid": null,
      "mkt_network": null,
      "etl_tags": null,
      "dvce_sent_tstamp": "2021-07-14T16:03:41.836Z",
      "refr_domain_userid": null,
      "refr_dvce_tstamp": null,
      "derived_contexts": {},
      "domain_sessionid": null,
      "derived_tstamp": "2021-07-14T16:03:41.872Z",
      "event_vendor": "com.google.analytics",
      "event_name": "event",
      "event_format": "jsonschema",
      "event_version": "1-0-0",
      "event_fingerprint": null,
      "true_tstamp": null
    }
  }
]
Edited by David Fernandez

Merge request reports