{"id":27062877,"url":"https://github.com/doganulus/timescales","last_synced_at":"2025-08-20T00:35:59.976Z","repository":{"id":73285458,"uuid":"180840335","full_name":"doganulus/timescales","owner":"doganulus","description":"A benchmark generator for Metric Temporal Logic (MTL) monitoring tools","archived":false,"fork":false,"pushed_at":"2023-12-30T19:02:57.000Z","size":1263,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-29T04:37:53.445Z","etag":null,"topics":["benchmark-generation","benchmark-suite","monitoring","runtime-monitoring","runtime-verification","temporal-logic"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doganulus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-11T17:05:58.000Z","updated_at":"2023-12-30T19:03:01.000Z","dependencies_parsed_at":"2023-12-30T20:19:44.794Z","dependency_job_id":"9ffc7d9f-4230-480f-943b-35647c54cc15","html_url":"https://github.com/doganulus/timescales","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/doganulus/timescales","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doganulus%2Ftimescales","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doganulus%2Ftimescales/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doganulus%2Ftimescales/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doganulus%2Ftimescales/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doganulus","download_url":"https://codeload.github.com/doganulus/timescales/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doganulus%2Ftimescales/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271246912,"owners_count":24725901,"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","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["benchmark-generation","benchmark-suite","monitoring","runtime-monitoring","runtime-verification","temporal-logic"],"created_at":"2025-04-05T15:27:17.600Z","updated_at":"2025-08-20T00:35:59.949Z","avatar_url":"https://github.com/doganulus.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## timescales\r\n\r\n`timescales` is a benchmark generator for Metric Temporal Logic (MTL) monitoring tools. It is originally developed for the monitoring tool [Reelay](https://github.com/doganulus/reelay) but distributed standalone. It generates an MTL specification (as a standard YAML file) and an input trace (as a standard CSV file) that satisfies the formula at every time point. For the benchmark generation, a set of predefined timed properties are available through the interface. Please see the help and documentation for more information.\r\n\r\nThe purpose of these benchmarks is to measure the performance and scalability of MTL monitoring tools with respect to large timing bounds in the specification over some typical cases. Ideally, the performance of real-time monitoring tools should remain constant when the base time unit has changed. This is due to that different (parts of) systems use different time scales up to orders of magnitude and the specification of slower systems contain large timing bounds.\r\n\r\n## Use\r\n\r\nThe generator `timescales` includes a Makefile to demonstrate the generation of benchmarks. For each supported property, the command `make small` generates a benchmark that contains a specification with small timing bounds and a short trace. On the other hand, the command `make large` generates three benchmarks for each property with increasingly larger time bounds (1x, 10x, 100x) over traces with a length of 1 million. The large suite has a size of 400MB and is not included in the distribution. Finally the command `make full` extends the large suite by dense time behaviors. The large suite has a size of 550MB and is not included in the distribution. Besides these default benchkmark suites, the customization of benchmark generation can be done easily using the command line interface of `timescales`.\r\n\r\n## Help\r\n\r\nThe full interface of the benchmark generator `timescales` is as follows:\r\n\r\n    usage: timescales [OPTIONS] PROPERTY\r\n                      \r\n    timescales is a benchmark generator for some pre-defined metric temporal logic properties\r\n         \r\n    positional arguments:\r\n      property            Supported properties are below:\r\n                              absence_after_q                   UBOUND\r\n                              absence_before_r                  UBOUND\r\n                              absence_between_q_and_r    LBOUND UBOUND\r\n     \r\n                              always_after_q                    UBOUND\r\n                              always_before_r                   UBOUND\r\n                              always_between_q_and_r     LBOUND UBOUND\r\n     \r\n                              recurrence_globally               UBOUND\r\n                              recurrence_between_q_and_r        UBOUND MIN_RECUR MAX_RECUR\r\n     \r\n                              response_globally          LBOUND UBOUND\r\n                              response_between_q_and_r   LBOUND UBOUND MIN_RECUR MAX_RECUR\r\n     \r\n    optional arguments:\r\n      -h, --help          show this help message and exit\r\n      -d N, --duration N  define the approximate duration for the trace\r\n      -l N, --lbound N    define the lower bound for the property if available for the property\r\n      -u N, --ubound N    define the upper bound for the property if available for the property\r\n      --persistent        enable persistent trace generation\r\n      --min-recur N       define the minimum number of recurrence in the trace if available for the property\r\n      --max-recur N       define the maximum number of recurrence in the trace if available for the property\r\n      --name STRING       define the name of specification (default: spec)\r\n      --condense N        define the maximum amount of condensation in the generated trace (default: 0)\r\n      --failing-end       disable appending a sequence to the trace to make the spec fail (default: false)\r\n      --future            generate a future MTL formula (default: past)\r\n      --output-dir DIR    use existing DIR as the directory to write output files in (default: current)\r\n      --format FORMAT     select the output format in {csv, json, protobuf, flatbuf} (default: json)\r\n\r\n## Benchmark RV Tools\r\n\r\nThe repository includes containerized benchmark environments for quick benchmarking for some runtime verification tools. Currently we support `reelay`, `monpoly`, `aerial`, and `montre` tools.\r\n\r\n### Reelay (https://github.com/doganulus/reelay)\r\n```\r\ngit clone https://github.com/doganulus/timescales.git\r\ncd timescales\r\nmake full\r\nmake benchmark-reelay\r\n```\r\n\r\n### Monpoly (https://bitbucket.org/monpoly/monpoly)\r\n```\r\ngit clone https://github.com/doganulus/timescales.git\r\ncd timescales\r\nmake full\r\npython scripts/to_monpoly.py\r\nmake benchmark-monpoly\r\n```\r\n\r\n### Aerial (https://bitbucket.org/traytel/aerial)\r\n```\r\ngit clone https://github.com/doganulus/timescales.git\r\ncd timescales\r\nmake full\r\npython scripts/to_monpoly.py\r\nmake benchmark-aerial\r\n```\r\n\r\n### Montre (https://github.com/doganulus/montre)\r\n```\r\ngit clone https://github.com/doganulus/timescales.git\r\ncd timescales\r\nmake full\r\npython scripts/to_montre.py\r\nmake benchmark-montre\r\n```\r\n\r\n## Cite\r\n\r\nDogan Ulus. \"Timescales: A Benchmark Generator for MTL Monitoring Tools\". In: Proceedings of the Conference on Runtime Verification (RV). 2019.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoganulus%2Ftimescales","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoganulus%2Ftimescales","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoganulus%2Ftimescales/lists"}