package
0.0.0-20241126174157-3642d298bc80
Repository: https://github.com/getsentry/go-load-tester.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Flip returns a randomly generated bool (flips a coin).
No description provided by the author
GetLoadSplitter a loadSplitter for the current type of test.
GetLoadTester returns the TargeterBuilder for a particular type of message.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
RegisterTestType registers the necessary test handlers (LoadTesterBuilder and LoadSplitter) with a test type (a string).
No description provided by the author
SimpleLoadSplitter implements the typical case of load splitting, where there needs to be no special handling of the load (i.e.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
MetricBucketJob is how a metricBucket job is parametrized example: ```json { "numMetricNames": 100, "numProjects": 1000, "numDistributions": 7, "numGauges": 0, "numSets": 3, "numCounters": 8, "minMetricsInDistribution": 4, "maxMetricsInDistribution": 25, "minMetricsInSets": 4, "maxMetricsInSets": 30, "numTagsPerMetric": 5, "numValuesPerTag": 3 } ```.
No description provided by the author
ProjectConfigJob is how a projectConfigJob is parametrized
Here's an example of project config parameters: ```json { "numRelays": 50, "numProjects": 10000, "minBatchSize": 10, "maxBatchSize": 100, "BatchInterval": "5s", "projectInvalidationRatio": 0.001, "RelayPublicKey": "ftFuDNBFm8-kPpuCuaWMio_mJAW2txCFCsaLMHn2vv0", "RelayPrivateKey": "uZUtRaayN8uuuTTOjbs5EDfqWNwyDfFro6TERx6Wfhs", "RelayId": "aaa12340-a123-123b-4567-0afe1f27e066" } ```.
ProjectProfile represents a group of projects with the same relative frequency and the same timestamp histogram A request will get an array of ProjectProfile, the example below further explains how this works: Consider the following example in JSON format (the timestamp histogram was removed since it is not relevant in the current explanation).
Session serialisation format for sessions.
SessionJob is how a session load test is parameterized
Here's an example of session parameters:
```json { "numProjects": 10000, "startedRange": "1m", "durationRange": "2m", "numReleases": 3, "numEnvironments": 4, "numUsers": 5, "okWeight": 6, "exitedWeight": 7, "erroredWeight": 8, "crashedWeight": 9, "abnormalWeight": 10 } ```.
No description provided by the author
TestParams is Implemented by all parameter test classes
This is how commands are passed in http requests There are 3 main parts to the params: 1.
TimestampHistogramBucket represents a bucket in a timestamp histogram An array of buckets fully defines a timestamp histogram as in the example below.
No description provided by the author
Transaction defines the JSON format of a Sentry transactionJob, NOTE: this is just part of a Sentry Event, if we need to emit other Events convert this structure into an Event struct and add the other fields to it .
TransactionJob is how a transactionJob load test is parameterized example: ```json { "numProjects": 10000, "transactionDurationMax":"10m" , "transactionDurationMin": "1m" , "transactionTimestampSpread": "5h" , "minSpans": 5, "maxSpans": 40, "numReleases": 1000 , "numUsers": 2000, "minBreadcrumbs": 5, "maxBreadcrumbs": 25, "breadcrumbCategories": ["auth", "web-request", "query"], "breadcrumbLevels": ["fatal", "error", "warning", "info", "debug"], "breadcrumbsTypes": ["default", "http", "error"] , "breadcrumbMessages": [ "Authenticating the user_name", "IOError: [Errno 2] No such file"], "measurements": ["fp","fcp","lcp","fid","cls","ttfb"], "operations": ["browser","http","db","resource.script"] } ```.
TransactionJobCommon represents the common parameters for transactions jobs (both V1 and V2) NOTE: No YAML support (yaml unlike json does not flatten embedded structures).
TransactionJobV2 is how a transactionJobV2 load test is parameterized example: ```json { "projectDistribution": [ { "numProjects": 100, "relativeFreqWeight" : 1.0, "timestampHistogram": [ { "weight": 5, "maxDelay": "1s"}, { "weight": 3, "maxDelay": "10s"}, { "weight": 2, "maxDelay": "20s"}, ] }, { "numProjects": 200, "relativeFreqWeight" : 4.0, "timestampHistogram": [ { "weight": 20, "maxDelay": "1s"}, { "weight": 1, "maxDelay": "5s"} ] } ], "transactionDurationMax":"10m" , "transactionDurationMin": "1m" , "minSpans": 5, "maxSpans": 40, "numReleases": 1000 , "numUsers": 2000, "minBreadcrumbs": 5, "maxBreadcrumbs": 25, "breadcrumbCategories": ["auth", "web-request", "query"], "breadcrumbLevels": ["fatal", "error", "warning", "info", "debug"], "breadcrumbsTypes": ["default", "http", "error"] , "breadcrumbMessages": [ "Authenticating the user_name", "IOError: [Errno 2] No such file"], "measurements": ["fp","fcp","lcp","fid","cls","ttfb"], "operations": ["browser","http","db","resource.script"] } ```.
No description provided by the author
# Interfaces
LoadTester is an interface implemented by all load tests.
# Type aliases
No description provided by the author
LoadSplitter is a function that knows how to split a load test request between multiple workers.
LoadTesterBuilder is a function that when given a target URL and a read channel of raw JSON messages returns a LoadTester that is able to change the events it generates to reflect the parameter passed through the JSON messages channel.