Documentation
¶
Overview ¶
Package mako provides spec interfaces for all Mako components.
Some components also provide a "Default" implementation which can be embedded to implement optional functions.
See go/mako for help and more information.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrDone = errors.New("CONTEXT_DONE")
ErrDone error will be returned when the Context which is passed is marked as Done() before the respective operation is finished.
Functions ¶
This section is empty.
Types ¶
type Storage ¶
type Storage interface { // CreateProjectInfo creates a new ProjectInfo record. // // The ProjectInfo reference that is passed, should contain all the // information that you wish to have stored in the newly created project. // // The result of the creation request will be placed in the supplied // CreationResponse message. // // The boolean returned represents success (true) or failure (false) of the // operation. More details about the success/failure will be in // CreationResponse.Status. CreateProjectInfo(context.Context, *pgpb.ProjectInfo) (*pgpb.CreationResponse, error) // UpdateProjectInfo updates a ProjectInfo record. // // The ProjectInfo.project_name will be used to select the benchmark that // you wish to update. All information in the provided ProjectInfo // will overwrite the existing record. // // The results of the operation will be placed in ModificationResponse. // // The boolean returned represents success (true) or failure (false) of the // operation. More details about the success/failure will be in // ModificationResponse.Status. UpdateProjectInfo(context.Context, *pgpb.ProjectInfo) (*pgpb.ModificationResponse, error) // GetProjectInfo gets ProjectInfo record that match the ProjectInfo.project_name. // // The ProjectInfoGetResponse will be populated with results. // // The boolean returned represents success (true) or failure (false) of the // operation. More details about the success/failure will be in // ProjectInfoGetResponse.Status. GetProjectInfo(context.Context, *pgpb.ProjectInfo) (*pgpb.ProjectInfoGetResponse, error) // CreateBenchmarkInfo creates a new BenchmarkInfo record. // // The BenchmarkInfo reference that is passed, should contain all the // information that you wish to have stored in the newly created benchmark. // (Although benchmark_info.benchmark_key should not be filled in. That value // will be returned in the CreationResponse and used on subsequent queries.) // // The result of the creation request will be placed in the returned // CreationResponse message. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as CreationResponse.Status.fail_message during error). // // NOTE: Some implementations may not implement this function, and the user // may need to use a tool or dashboard to create the benchmark. // // NOTE: You should not be calling this function often. Benchmarks are meant // to be reused for extended periods see go/mako-help for more information. CreateBenchmarkInfo(context.Context, *pgpb.BenchmarkInfo) (*pgpb.CreationResponse, error) // UpdateBenchmarkInfo updates the specified BenchmarkInfo record. // // The BenchmarkInfo.benchmark_key will be used to select the benchmark that // you wish to update. All information in the provided BenchmarkInfo // will overwrite the existing record. // // The results of the operation will be placed in ModificiationResponse. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as ModificationResponse.Status.fail_message during // error). // // This must be called whenever you modify metric or custom aggregation // information. // // See go/mako-help for more information. // // NOTE: Requires BenchmarkInfo.benchmark_key UpdateBenchmarkInfo(context.Context, *pgpb.BenchmarkInfo) (*pgpb.ModificationResponse, error) // QueryBenchmarkInfo queries the storage system and returns BenchmarkInfo // results. // // You'll always get the best performance when supplying the benchmark_key, if // that is set, all other query params will be ignored. // // The BenchmarkInfoQueryResponse will be populated with results. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as BenchmarkInfoQueryResponse.Status.fail_message // during error). QueryBenchmarkInfo(context.Context, *pgpb.BenchmarkInfoQuery) (*pgpb.BenchmarkInfoQueryResponse, error) // DeleteBenchmarkInfo deletes the specified BenchmarkInfo record. // // Delete requests use the same query messages as normal queries to identify // data that should be deleted although only the benchmark_key field is used. // All other fields are ignored (eg. limit, cursor, project_name, etc). // // The results of the operation will be placed in ModificiationResponse. // // NOTE: Deleting a benchmark requires all child (eg. run info, sample // batches, etc) to first be deleted. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as ModificationResponse.Status.fail_message during // error). DeleteBenchmarkInfo(context.Context, *pgpb.BenchmarkInfoQuery) (*pgpb.ModificationResponse, error) // CountBenchmarkInfo counts BenchmarkInfo records that match the BenchmarkInfoQuery. // // Depending on the implementation, the Count operation may be significantly // cheaper and/or faster than QueryBenchmarkInfo. // // CountResponse will be reset to default values and then populated with the // results of the count. // // The boolean returned represents success (true) or failure (false) of the // operation. More details about the success/failure will be in // CountResponse.Status. CountBenchmarkInfo(context.Context, *pgpb.BenchmarkInfoQuery) (*pgpb.CountResponse, error) // CreateRunInfo creates a new RunInfo record. // // The RunInfo reference that is passed, should contain all the // information that you wish to have stored in the newly created run info. // (Although run_info.run_key should not be filled in. That value // will be returned in the CreationResponse and used on subsequent queries.) // // The result of the creation request will be placed in the returned // CreationResponse message. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as CreationResponse.Status.fail_message during error). CreateRunInfo(context.Context, *pgpb.RunInfo) (*pgpb.CreationResponse, error) // UpdateRunInfo updates the specified RunInfo record. // // The RunInfo.run_key will be used to select the run info that // you wish to update. All information in the provided RunInfo // will overwrite the existing record. // // The results of the operation will be placed in ModificiationResponse. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as ModificationResponse.Status.fail_message during // error). // // This must be called whenever you modify metric or custom aggregation // information. // // NOTE: Requires RunInfo.run_key UpdateRunInfo(context.Context, *pgpb.RunInfo) (*pgpb.ModificationResponse, error) // QueryRunInfo queries the storage system and returns RunInfo // results. // // You'll always get the best performance when supplying the run_key, if // that is set, all other query params will be ignored. // // The RunInfoQueryResponse will be populated with results. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as RunInfoQueryResponse.Status.fail_message // during error). QueryRunInfo(context.Context, *pgpb.RunInfoQuery) (*pgpb.RunInfoQueryResponse, error) // DeleteRunInfo deletes the specified RunInfo and child SampleBatch data. // // Delete requests use the same query messages as normal queries to identify // data that should be deleted. If run_key is provided then all other fields // are ignored. To prevent accidental deletion of large amounts of data the // benchmark_key is also required. // // Also deletes child SampleBatch data for each run that matches the query. // // The results of the operation will be placed in ModificiationResponse. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as ModificationResponse.Status.fail_message during // error). DeleteRunInfo(context.Context, *pgpb.RunInfoQuery) (*pgpb.ModificationResponse, error) // CountRunInfo counts RunInfo records matching the RunInfoQuery. // // Depending on the implementation, the Count operation may be significantly // cheaper and/or faster than the QueryInfo. // // The results of the operation will be placed in CountResponse. // // The boolean returned represents success (true) or failure (false) of the // operation. More details about the success/failure will be in // CountResponse.Status. CountRunInfo(context.Context, *pgpb.RunInfoQuery) (*pgpb.CountResponse, error) // CreateSampleBatch creates a new SampleBatch record. // // The SampleBatch reference that is passed, should contain all the // information that you wish to have stored in the newly created run info. // (Although sample_batch.batch_key should not be filled in. That value // will be returned in the CreationResponse and used on subsequent queries.) // // The result of the creation request will be placed in the returned // CreationResponse message. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as CreationResponse.Status.fail_message during error). CreateSampleBatch(context.Context, *pgpb.SampleBatch) (*pgpb.CreationResponse, error) // QuerySampleBatch queries the storage system and returns SampleBatch // results. // // You'll always get the best performance when supplying the batch_key, if // that is set, all other query params will be ignored. // // The SampleBatchQueryResponse will be populated with results. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as SampleBatchQueryResponse.Status.fail_message // during error). QuerySampleBatch(context.Context, *pgpb.SampleBatchQuery) (*pgpb.SampleBatchQueryResponse, error) // DeleteSampleBatch deletes the specified SampleBatch record. // // Delete requests use the same query messages as normal queries to identify // data that should be deleted. If batch_key is provided then all other fields // are ignored. To prevent accidental deletion of large amounts of data the // benchmark_key is also required. // // Calling this is uncommon. Deleting a RunInfo will delete the child batches. // // The results of the operation will be placed in ModificiationResponse. // // The returned error will be nil if the request was successful, otherwise it // will contain the reason that the request failed (error.Error() contains // the same information as ModificationResponse.Status.fail_message during // error). DeleteSampleBatch(context.Context, *pgpb.SampleBatchQuery) (*pgpb.ModificationResponse, error) // GetMetricValueCountMax returns the max number of metric values that can be // saved per run. GetMetricValueCountMax(context.Context) (int, error) // GetSampleErrorCountMax returns the max number of errors that can be saved // per run. GetSampleErrorCountMax(context.Context) (int, error) // GetBatchSizeMax returns max binary size in base 10 bytes of a SampleBatch. // (eg. 1MB == 1,000,000) GetBatchSizeMax(context.Context) (int, error) // GetHostname returns the hostname backing this Storage implementation. GetHostname(context.Context) string }
Storage interface used to store data inside Mako.
Click to show internal directories.
Click to hide internal directories.