{"id":15508287,"url":"https://github.com/heubeck/examiner","last_synced_at":"2025-12-25T18:27:34.891Z","repository":{"id":37804447,"uuid":"482070665","full_name":"heubeck/examiner","owner":"heubeck","description":"𝕰𝖝𝖆𝖒𝖎𝖓𝖊𝖗 - Just another K8s test-app","archived":false,"fork":false,"pushed_at":"2024-05-22T09:51:07.000Z","size":206,"stargazers_count":3,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-22T10:41:53.876Z","etag":null,"topics":["kotlin","kubernetes","native-image","quarkus"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heubeck.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-15T19:59:30.000Z","updated_at":"2024-07-31T12:20:16.305Z","dependencies_parsed_at":"2023-02-18T00:55:17.000Z","dependency_job_id":"a9095138-508d-416a-87af-ed3ad7718d1e","html_url":"https://github.com/heubeck/examiner","commit_stats":null,"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heubeck%2Fexaminer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heubeck%2Fexaminer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heubeck%2Fexaminer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heubeck%2Fexaminer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heubeck","download_url":"https://codeload.github.com/heubeck/examiner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244006398,"owners_count":20382443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kotlin","kubernetes","native-image","quarkus"],"created_at":"2024-10-02T09:36:57.151Z","updated_at":"2025-12-25T18:27:34.817Z","avatar_url":"https://github.com/heubeck.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 𝕰𝖝𝖆𝖒𝖎𝖓𝖊𝖗\n\n![Build\u0026Test](https://github.com/heubeck/examiner/actions/workflows/ci.yaml/badge.svg)\n\nProject to experiment with http request scenarios like service-meshs or deployment-strategies.\n\nContainer images for linux/amd64 and linux/arm64 are available from [quay.io/heubeck/examiner](https://quay.io/repository/heubeck/examiner?tab=tags).\n\n## Respond\n\nThe 𝕰𝖝𝖆𝖒𝖎𝖓𝖊𝖗 responds to every GET request at or below the `/examine` path with an optional, preconfigured value, set via the `ECHO_VALUE` environment variable.\n\n## Log\n\nThe 𝕰𝖝𝖆𝖒𝖎𝖓𝖊𝖗 logs every POST request on arbitrary paths to its log output by default.\nThe logging can be customized using the following env:\n* `LOG_METHODS`: Comma separated list of http methods to be logged\n* `LOG_HEADERS`: Comma separated list of regex values for http header names to be logged, defaulting to `X-.*`\n\n## Config\n\nThere are some environment variables to configure default behavior:\n\n* `ECHO_VALUE`: Text value to be responded on GET `/examine` requests\n* `SERVER_ERROR_RATE`: Int value as probability in percent (0 - 100) that HTTP 500 codes are responded.\n* `REQUEST_DELAY`: Default millisecond delay for every request.\n* `HTTP_PORT`: Port to serve on, default: 8080\n\n## Parameter\n\nThe following query parameter are supported and have precedence over the default configuration:\n\n* `status`: Status value used for the response, range: [200-600[\n* `delay`: Milliseconds to delay the response:\n  * a single number e.g. \"1337\" for the given delay of milliseconds\n  * a range e.g. \"42..667\" for a random delay of milliseconds\n* `load`: Stress the CPU at a level from 1 (some load) to 100 (high load) for the given `delay`\n* `allocation`: Create memory pressure at a level from 1 (slow rate) to 100 (get what's there) by running string allocations over the given `delay`.\n\n## K8s probes\n\nLiveness and readiness probes are always successful at `/.well-known/live` and `/.well-known/ready`.\n\n## Silence! I kill you!\n\nThe 𝕰𝖝𝖆𝖒𝖎𝖓𝖊𝖗 dies when called with a DELETE request on the path `/poison-pill`.\nThe exit code can be configured by a query parameter `exit`: `DELETE /poison-pill?exit=1`, default is exit code `0` (in words: zero).\nOnly regular supported query parameter for this method is the `delay` to wait before dying.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheubeck%2Fexaminer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheubeck%2Fexaminer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheubeck%2Fexaminer/lists"}