| # Datastore Composite Index Configuration. |
| # https://developers.google.com/appengine/docs/python/config/indexconfig |
| # Note: To clear old indexes from production after deleting them here, you |
| # can run appcfg.py vacuum_indexes. |
| |
| # Note about composite indexes with the "internal_only" property below: |
| # All queries are filtered by internal_only == False when the user is not |
| # logged in. Therefore, the composite indexes below are grouped into pairs; |
| # the index that's used when the user is not logged in (which includes the |
| # internal_only property), and the one used when the user is logged in. |
| |
| # General note about App Engine Datastore composite indexes: |
| # Indexes must be made 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. |
| |
| indexes: |
| |
| # Used in main.py when fetching top improvements/regressions in past days. |
| - kind: Anomaly |
| properties: |
| - name: internal_only |
| - name: sheriff |
| - name: timestamp |
| direction: asc |
| - kind: Anomaly |
| properties: |
| - name: sheriff |
| - name: timestamp |
| direction: asc |
| |
| # Used in alerts.py for fetching recent un-triaged regressions for one sheriff. |
| - kind: Anomaly |
| properties: |
| - name: bug_id |
| - name: internal_only |
| - name: is_improvement |
| - name: recovered |
| - name: sheriff |
| - name: timestamp |
| direction: desc |
| - kind: Anomaly |
| properties: |
| - 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: internal_only |
| - name: recovered |
| - name: sheriff |
| - name: timestamp |
| direction: desc |
| - kind: Anomaly |
| properties: |
| - 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: internal_only |
| - name: is_improvement |
| - name: sheriff |
| - name: timestamp |
| direction: desc |
| - kind: Anomaly |
| properties: |
| - 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: internal_only |
| - name: sheriff |
| - name: timestamp |
| direction: desc |
| - kind: Anomaly |
| properties: |
| - name: sheriff |
| - name: timestamp |
| direction: desc |
| |
| # Used in group_report.py when querying for anomalies around a revision. |
| - kind: Anomaly |
| properties: |
| - name: internal_only |
| - name: end_revision |
| direction: asc |
| |
| # This *might* be unused. It would be used for querying for non-internal-only |
| # points for a particular test, filtering or sorting (in ascending order) by |
| # revision. |
| - kind: Row |
| properties: |
| - name: internal_only |
| - name: parent_test |
| - name: revision |
| |
| # Used in graph_revisions.py to do a projection query for timestamp, revision |
| # and value for points from a particular test, with filtering for only non- |
| # internal-only points. |
| - kind: Row |
| properties: |
| - name: internal_only |
| - name: parent_test |
| - name: revision |
| - name: timestamp |
| - 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 |
| |
| # This *might* be unused. It would be used for doing a projection query for |
| # value or revision and value, filtering or sorting (in ascending order) by |
| # revision, with filtering for only non-internal-only. |
| - kind: Row |
| properties: |
| - name: internal_only |
| - name: parent_test |
| - name: revision |
| - name: value |
| |
| # Used in find_anomalies.GetRowsToAnalyze when getting latest points, |
| # with projection query for revision and value, with filtering by internal_only |
| # for non-logged-in users. |
| # This *might* be unused if this type of query is only done in find_anomalies |
| # and all requests to find_anomalies are authorized to fetch internal_only. |
| - kind: Row |
| properties: |
| - name: internal_only |
| - name: parent_test |
| - name: revision |
| direction: desc |
| - name: value |
| |
| # This *might* be unused. It would be used for doing a projection query for |
| # value or revision and value, filtering or sorting (in ascending order) by |
| # revision. |
| - kind: Row |
| properties: |
| - name: parent_test |
| - name: revision |
| - name: value |
| |
| # Used in several modules (graph_json.py, graph_csv.py, dump_graph_json.py) |
| # to get the latest points for a test for users who aren't logged in. |
| - kind: Row |
| properties: |
| - name: internal_only |
| - name: parent_test |
| - name: revision |
| direction: desc |
| |
| # Used in several modules (graph_json.py and graph_csv.py) to fetch the latest |
| # points for a test, without filtering by internal_only. |
| - kind: Row |
| properties: |
| - name: parent_test |
| - name: revision |
| direction: desc |
| |
| # Useful for queries on the interactive console. |
| - kind: Row |
| properties: |
| - name: parent_test |
| - name: revision |
| |
| # Used in new_points.py to query newest points for all tests. |
| - kind: Row |
| properties: |
| - name: internal_only |
| - name: timestamp |
| direction: desc |
| |
| # Used in new_points.py to query newest points for test path. |
| - kind: Row |
| properties: |
| - name: parent_test |
| - name: timestamp |
| direction: desc |
| |
| # 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 |
| |
| # 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: internal_only |
| - name: sheriff |
| - name: mail_sent |
| - kind: StoppageAlert |
| properties: |
| - name: sheriff |
| - name: mail_sent |
| |
| # Used in update_test_suites to query keys of non-deprecated test suites |
| # (parent_test == None, deprecated == False). Two separate lists of test suites |
| # are kept, one for external and one for internal. |
| - kind: Test |
| properties: |
| - name: parent_test |
| - name: deprecated |
| - kind: Test |
| properties: |
| - name: internal_only |
| - name: parent_test |
| - name: deprecated |
| |
| # Used in update_test_suites for projection query of the monitored property |
| # non-deprecated test suites (parent_test == None, deprecated == False) |
| - kind: Test |
| properties: |
| - name: deprecated |
| - name: parent_test |
| - name: monitored |
| - kind: Test |
| properties: |
| - name: internal_only |
| - name: deprecated |
| - name: parent_test |
| - name: monitored |
| |
| # Used in list_tests.py to query Test by test path pattern. |
| - 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 |
| - 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 |