| OLD | NEW |
| (Empty) | |
| 1 # Copyright 2010 Google Inc. All Rights Reserved. |
| 2 # |
| 3 # Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 # you may not use this file except in compliance with the License. |
| 5 # You may obtain a copy of the License at |
| 6 # |
| 7 # http://www.apache.org/licenses/LICENSE-2.0 |
| 8 # |
| 9 # Unless required by applicable law or agreed to in writing, software |
| 10 # distributed under the License is distributed on an "AS IS" BASIS, |
| 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 # See the License for the specific language governing permissions and |
| 13 # limitations under the License. |
| 14 |
| 15 |
| 16 # |
| 17 # PerfTracker Model |
| 18 # |
| 19 |
| 20 from google.appengine.ext import db |
| 21 |
| 22 # The unique list of versions tested |
| 23 class Version(db.Model): |
| 24 version = db.StringProperty(required=True, indexed=True) |
| 25 |
| 26 # The unique list of network types |
| 27 class Network(db.Model): |
| 28 # The network_type is just a pretty name for the overall network |
| 29 # configuration. We use it as the index to avoid the combinatorial |
| 30 # blowout of indexes if we used the individual network settings. |
| 31 network_type = db.StringProperty(required=True, indexed=True) |
| 32 download_bandwidth_kbps = db.IntegerProperty(required=True) |
| 33 upload_bandwidth_kbps = db.IntegerProperty(required=True) |
| 34 round_trip_time_ms = db.IntegerProperty(required=True) |
| 35 packet_loss_rate = db.FloatProperty(required=True) |
| 36 protocol = db.StringProperty(required=True, |
| 37 choices=set([ |
| 38 "http", # HTTP current (adj cwnd) |
| 39 "http-base", # HTTP baseline (cwnd default) |
| 40 "spdy", # SPDY over SSL |
| 41 "spdy-nossl" # SPDY over TCP |
| 42 ])) |
| 43 load_type = db.StringProperty(required=True, |
| 44 choices=set(["cold", "hot", "warm"]), |
| 45 default="cold") |
| 46 |
| 47 # The unique list of CPUs |
| 48 class Cpu(db.Model): |
| 49 cpu = db.StringProperty(required=True, indexed=True) |
| 50 |
| 51 # A TestSet is a set of tests conducted over one or many URLs. |
| 52 # The test setup and configuration is constant across all URLs in the TestSet. |
| 53 class TestSet(db.Model): |
| 54 user = db.UserProperty() |
| 55 date = db.DateTimeProperty(auto_now_add=True) |
| 56 notes = db.StringProperty(multiline=True) |
| 57 version = db.ReferenceProperty(Version, indexed=True) |
| 58 platform = db.StringProperty() |
| 59 client_hostname = db.StringProperty() |
| 60 cpu = db.ReferenceProperty(Cpu, indexed=True) |
| 61 harness_version = db.StringProperty() |
| 62 cmdline = db.StringProperty() |
| 63 |
| 64 network = db.ReferenceProperty(Network, indexed=True) |
| 65 |
| 66 # These fields are summary data for the TestSet. |
| 67 # When the TestSet is created, these fields are blank. |
| 68 # When the TestSet finishes running, these fields will be updated. |
| 69 iterations = db.IntegerProperty() |
| 70 url_count = db.IntegerProperty() |
| 71 start_load_time = db.IntegerProperty() |
| 72 dns_time = db.IntegerProperty() |
| 73 connect_time = db.IntegerProperty() |
| 74 first_byte_time = db.IntegerProperty() |
| 75 last_byte_time = db.IntegerProperty() |
| 76 paint_time = db.IntegerProperty() |
| 77 doc_load_time = db.IntegerProperty() |
| 78 dcl_time = db.IntegerProperty() |
| 79 total_time = db.IntegerProperty() |
| 80 num_requests = db.IntegerProperty() |
| 81 num_connects = db.IntegerProperty() |
| 82 num_sessions = db.IntegerProperty() |
| 83 read_bytes_kb = db.IntegerProperty() |
| 84 write_bytes_kb = db.IntegerProperty() |
| 85 |
| 86 # A TestResult is an individual test result for an individual URL. |
| 87 class TestResult(db.Model): |
| 88 set = db.ReferenceProperty(TestSet, required=True, indexed=True, collection_
name="results") |
| 89 date = db.DateTimeProperty(auto_now_add=True) |
| 90 url = db.StringProperty(required=True, indexed=True) |
| 91 using_spdy = db.BooleanProperty() |
| 92 start_load_time = db.IntegerProperty() |
| 93 dns_time = db.IntegerProperty() |
| 94 connect_time = db.IntegerProperty() |
| 95 first_byte_time = db.IntegerProperty() |
| 96 last_byte_time = db.IntegerProperty() |
| 97 paint_time = db.IntegerProperty() |
| 98 doc_load_time = db.IntegerProperty() |
| 99 dcl_time = db.IntegerProperty() |
| 100 total_time = db.IntegerProperty() |
| 101 num_requests = db.IntegerProperty() |
| 102 num_connects = db.IntegerProperty() |
| 103 num_sessions = db.IntegerProperty() |
| 104 read_bytes_kb = db.IntegerProperty() |
| 105 write_bytes_kb = db.IntegerProperty() |
| 106 |
| 107 # A TestSummary is the aggregate result for a set of TestResults for |
| 108 # a single URL. |
| 109 class TestSummary(db.Model): |
| 110 set = db.ReferenceProperty(TestSet, required=True, indexed=True, collection_
name="summaries") |
| 111 date = db.DateTimeProperty(auto_now_add=True) |
| 112 url = db.StringProperty(required=True, indexed=True) |
| 113 iterations = db.IntegerProperty() |
| 114 start_load_time = db.IntegerProperty() |
| 115 dns_time = db.IntegerProperty() |
| 116 connect_time = db.IntegerProperty() |
| 117 first_byte_time = db.IntegerProperty() |
| 118 last_byte_time = db.IntegerProperty() |
| 119 paint_time = db.IntegerProperty() |
| 120 doc_load_time = db.IntegerProperty() |
| 121 dcl_time = db.IntegerProperty() |
| 122 total_time = db.IntegerProperty() |
| 123 total_time_stddev = db.FloatProperty() |
| 124 num_requests = db.IntegerProperty() |
| 125 num_connects = db.IntegerProperty() |
| 126 num_sessions = db.IntegerProperty() |
| 127 read_bytes_kb = db.IntegerProperty() |
| 128 write_bytes_kb = db.IntegerProperty() |
| OLD | NEW |