| # 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 |