301 lines
7.8 KiB
YAML
301 lines
7.8 KiB
YAML
# Datastore Composite Index Configuration.
|
|
# https://developers.google.com/appengine/docs/python/config/indexconfig
|
|
#
|
|
# Below, most indexes come in pairs; one with the internal_only property,
|
|
# one without. This is because all queries when the user is not logged in
|
|
# have the filter internal_only == False.
|
|
#
|
|
# Composite index properties must be listed differently depending on how the
|
|
# properties are used. There are three main ways to use properties in a query:
|
|
# (1) In an equality filter.
|
|
# (2) In an inequality filter.
|
|
# (3) In a sort order.
|
|
# The properties below must be listed in this order. The "direction" only needs
|
|
# to be specified for properties used for sort order.
|
|
#
|
|
# To update the indexes in production after editing them here, you must run
|
|
# appcfg.py vacuum_indexes or appcfg.py update_indexes.
|
|
|
|
indexes:
|
|
|
|
# Used in main.py when fetching top improvements/regressions in past N days.
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: sheriff
|
|
- name: timestamp
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: internal_only
|
|
- name: sheriff
|
|
- name: timestamp
|
|
|
|
# Used in alerts.py for fetching recent un-triaged regressions for one sheriff.
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: bug_id
|
|
- name: is_improvement
|
|
- name: recovered
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: internal_only
|
|
- name: bug_id
|
|
- name: is_improvement
|
|
- name: recovered
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
|
|
# Used in alerts.py for fetching recent un-triaged anomalies, both regressions
|
|
# and improvements, for one sheriff, i.e. when the improvements button is on.
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: bug_id
|
|
- name: recovered
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: internal_only
|
|
- name: bug_id
|
|
- name: recovered
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
|
|
# Used in alerts.py for fetching recent regressions for one sheriff, regardless
|
|
# of triaged vs un-triaged status, i.e. when the triaged button is on.
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: is_improvement
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: internal_only
|
|
- name: is_improvement
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
|
|
# Used in alerts.py for fetching recent anomalies for one sheriff, including
|
|
# improvements and triaged, i.e. both improvements and triaged buttons are on.
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: internal_only
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
|
|
# Used in group_report.py when querying for anomalies around a revision.
|
|
# No composite index is required without internal_only because then the
|
|
# query uses only one (indexed) property, end_revision.
|
|
- kind: Anomaly
|
|
properties:
|
|
- name: internal_only
|
|
- name: end_revision
|
|
|
|
# Might be unused!
|
|
# This index would enable querying for points for a particular test,
|
|
# filtering or sorting by revision, and possibly doing a projection
|
|
# query including value.
|
|
- kind: Row
|
|
properties:
|
|
- name: parent_test
|
|
- name: revision
|
|
- name: value
|
|
|
|
# Used in find_anomalies.GetRowsToAnalyze when getting latest points,
|
|
# with projection query for properties revision and value.
|
|
- kind: Row
|
|
properties:
|
|
- name: parent_test
|
|
- name: revision
|
|
direction: desc
|
|
- name: value
|
|
|
|
# Used in graph_revisions.py to do a projection query for timestamp, revision
|
|
# and value for points from a particular test.
|
|
- kind: Row
|
|
properties:
|
|
- name: parent_test
|
|
- name: revision
|
|
- name: timestamp
|
|
- name: value
|
|
|
|
# Used in several modules (graph_json.py and graph_csv.py) to fetch the latest
|
|
# points for a test.
|
|
- kind: Row
|
|
properties:
|
|
- name: parent_test
|
|
- name: revision
|
|
direction: desc
|
|
|
|
# This composite index enables querying for points for a particular test,
|
|
# filtering or sorting by revision. This may be unused, but it may be useful
|
|
# for queries on the interactive console.
|
|
- kind: Row
|
|
properties:
|
|
- name: parent_test
|
|
- name: revision
|
|
|
|
# May be unused!
|
|
# Likely used in new_points.py to query newest points for a particular test.
|
|
# However listing the latest points for a test also works when not logged in
|
|
# currently, although there appears to be no index in this file for that.
|
|
- kind: Row
|
|
properties:
|
|
- name: parent_test
|
|
- name: timestamp
|
|
direction: desc
|
|
|
|
# May be used in send_stoppage_alert_emails to fetch recent StoppageAlert
|
|
# entities for a particular sheriff, for both internal-only and public alerts.
|
|
- kind: StoppageAlert
|
|
properties:
|
|
- name: sheriff
|
|
- name: mail_sent
|
|
- kind: StoppageAlert
|
|
properties:
|
|
- name: internal_only
|
|
- name: sheriff
|
|
- name: mail_sent
|
|
|
|
# Used in alerts to fetch recent StoppageAlert entities for a particular
|
|
# sheriff, for both internal and non-internal users.
|
|
- kind: StoppageAlert
|
|
properties:
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
- kind: StoppageAlert
|
|
properties:
|
|
- name: internal_only
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
|
|
# Used in /alerts to query for stoppage alerts, for internal and external
|
|
# sheriffs.
|
|
- kind: StoppageAlert
|
|
properties:
|
|
- name: bug_id
|
|
- name: internal_only
|
|
- name: recovered
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
- kind: StoppageAlert
|
|
properties:
|
|
- name: bug_id
|
|
- name: recovered
|
|
- name: sheriff
|
|
- name: timestamp
|
|
direction: desc
|
|
|
|
# Used in update_test_suites to query keys of test suites (parent_test == None)
|
|
# with deprecated and description projection. Two separate lists of
|
|
# test suites are kept, one for external and one for internal.
|
|
- kind: Test
|
|
properties:
|
|
- name: parent_test
|
|
- name: deprecated
|
|
- name: description
|
|
- kind: Test
|
|
properties:
|
|
- name: internal_only
|
|
- name: parent_test
|
|
- name: deprecated
|
|
- name: description
|
|
|
|
# Used in update_test_suites to query keys of test suites (parent_test == None)
|
|
# with monitored projection. Two separate lists of test suites are kept, one for
|
|
# external and one for internal.
|
|
- kind: Test
|
|
properties:
|
|
- name: parent_test
|
|
- name: monitored
|
|
- kind: Test
|
|
properties:
|
|
- name: internal_only
|
|
- name: parent_test
|
|
- name: monitored
|
|
|
|
# Used in list_tests.py to query Test by test path pattern.
|
|
- kind: Test
|
|
properties:
|
|
- name: master_name
|
|
- name: bot_name
|
|
- name: suite_name
|
|
- name: test_part1_name
|
|
- name: test_part2_name
|
|
- name: test_part3_name
|
|
- name: test_part4_name
|
|
- kind: Test
|
|
properties:
|
|
- name: internal_only
|
|
- name: master_name
|
|
- name: bot_name
|
|
- name: suite_name
|
|
- name: test_part1_name
|
|
- name: test_part2_name
|
|
- name: test_part3_name
|
|
- name: test_part4_name
|
|
|
|
# Used in update_test_suites to query keys of test suites (parent_test == None)
|
|
# with deprecated and description projection. Two separate lists of
|
|
# test suites are kept, one for external and one for internal.
|
|
- kind: TestMetadata
|
|
properties:
|
|
- name: parent_test
|
|
- name: deprecated
|
|
- name: description
|
|
- kind: TestMetadata
|
|
properties:
|
|
- name: internal_only
|
|
- name: parent_test
|
|
- name: deprecated
|
|
- name: description
|
|
|
|
# Used in update_test_suites to query keys of test suites (parent_test == None)
|
|
# with monitored projection. Two separate lists of test suites are kept, one for
|
|
# external and one for internal.
|
|
- kind: TestMetadata
|
|
properties:
|
|
- name: parent_test
|
|
- name: monitored
|
|
- kind: TestMetadata
|
|
properties:
|
|
- name: internal_only
|
|
- name: parent_test
|
|
- name: monitored
|
|
|
|
# Used in list_tests.py to query Test by test path pattern.
|
|
- kind: TestMetadata
|
|
properties:
|
|
- name: master_name
|
|
- name: bot_name
|
|
- name: suite_name
|
|
- name: test_part1_name
|
|
- name: test_part2_name
|
|
- name: test_part3_name
|
|
- name: test_part4_name
|
|
- kind: TestMetadata
|
|
properties:
|
|
- name: internal_only
|
|
- name: master_name
|
|
- name: bot_name
|
|
- name: suite_name
|
|
- name: test_part1_name
|
|
- name: test_part2_name
|
|
- name: test_part3_name
|
|
- name: test_part4_name
|